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)