[GAP Forum] How can I get the elements of a free product?

Erik Postma e.j.postma+gap at gmail.com
Wed Aug 2 21:02:25 BST 2017


Every time you call F, you get a new free product independent of previous
calls. So when you ask if G(3)[2] in G(3), there are two different copies
of F(3) in play, and similar for G(3)[2] in F(3). However, if you do:

F3 := F(3);
G3 := GeneratorsOfGroup(F3);
G3[2] in G3; # true
G3[2] in F3; # true

Erik.

On 2 August 2017 at 15:50, Nikos Apostolakis <nikos.ap at gmail.com> wrote:

> Dear Forum,
>
> I want to construct the free product of n copies of ZZ/2 and work with its
> elements.  I get some strange behavior that I can't quite understand:
>
> F := n -> FreeProduct(List([1..n], i -> CyclicGroup(2))); #==> function( n
> ) ... end
> G := n -> GeneratorsOfGroup(F(n)); #==> function( n ) ... end
> G(3)[2] in G(3); #==> false
> G(3)[2] in F(3); #==> false
>
> However:
>
> GeneratorsOfGroup(F(3)); #==> [ f1, f2, f3 ]
> last[1]^2*last[2] = last[2]; #==> true
>
> which is what I would expect if GeneratorsOfGroup(F(3)) gives elements of
> the free product.
>
> I wonder if somebody could explain this behavior? Also how can I actually
> get what I want?
>
> Thanks a lot for any help,
> Nikos
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
>


More information about the Forum mailing list