Dear gap-forum,
consider the following piece of GAP code:
ElAb := function (p) local a, b, g; a := AbstractGenerator("a"); b := AbstractGenerator("b"); g := rec( generators := [a, b], relators := [a^p, b^p] ); return AgGroupFpGroup (g); end;
Now I do
gap> g := ElAb (2); gap> RecFields(g); [ "generators", "identity", "isDomain", "isGroup", "isAgGroup", "cgs", "operations", "1", "2" ]
No relators are stored in the record. GAP knows how to compute with
the group g, which is a Klein four-group as expected, so
gap> Comm(g.1, g.2);
IdAgWord
works, but why are relators not written in the record describing g? I
know I can put the relators in explicitly by doing
ElAb := function (p) local a, b, g, h; a := AbstractGenerator("a"); b := AbstractGenerator("b"); g := rec( generators := [a, b], relators := [a^p, b^p, Comm(a, b)] ); h := AgGroupFpGroup(g); h.relators := g.relators; return h; end;
but this of course would not work when making use of the feature of
omitting trivial commutator relators, as in the first version of ElAb.
So my question is: why exactly are relators not (completed and) copied
in these circumstances?
Thank you very much in advance, yours
A Caranti
--------------------------------------------------------------------- A Caranti Tel ++39 461 881618 Dipartimento di Matematica Fax ++39 461 881624 Universita' degli Studi di Trento I-38050 Povo (Trento) caranti@volterra.cineca.it Italia (preferred email address. Also:) caranti@itnsp2.cineca.it caranti@itncisca.bitnet
Tel ++39 461 916087 (home)