0

I have the following setup:

gap> a := X(Rationals,"a");; b := X(Rationals,"b");;c := X(Rationals,"c");;
gap> M := [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ],
>      [ -b, -a, -1, -a, -1, 0 ], [ -a, -1, 0, -1, 0, 0 ],
>      [ b, a, 1, 0, 0, 0 ], [ 0, 0, 0, b, a, 1 ] ]*a^0;;
gap> N := [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ],
>      [ -b, -a, -1, -a, -1, 0 ], [ 0, 1, 0, 0, 0, 0 ],
>      [ 0, 0, 0, 0, 1, 0 ], [ c, 0, 0, 0, -a, -1 ] ]*a^0;;
gap> G := Group(M,N);
<matrix group with 2 generators>
gap> IsGroup(G);
true
gap> Order(M); Order(N);
3
2
gap> Comm(M,N);
[ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ],
[ -b, -a, -1, -a, -1, 0 ], [ -a, -1, 0, -1, 0, 0 ],
[ b, a, 1, 0, 0, 0 ], [ 0, 0, 0, b, a, 1 ] ]

So some functions on matrix groups seem to work but others don't, like "List", "Size", "IsSolvable", "DerivedSubgroup", etc.. They all break on the same line 3928 in "matrix.gi" (in my version). There, a function tries to verify if all the matrix entries concerned are in the same coefficient field, but it fails. Indeed if I try "a in Field([a]); " I get a method not found (2nd choice) error. There is no problem with the group itself, but I have to create the set manually. The set is closed for product and taking of the inverse. The group should be isomorphic to $S_3$.

1 Answers1

1

The problem is that GAP currently does not implement objects that are formal function fields -- basically because they so far never really were needed. Implementing them yourself is not inherently hard, but there are a lot of small issues that potentially need work on.

What I would do is to compute a faithful permutatiuon representation "by hand": Compute orbits on vectors that form a basis, and take the action on these orbits, getting a faithful permutation action.

gap> dom:=Union(List(G.1,x->Orbit(G,x,OnRight)));
[ [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 1, 0, 0 ],
  [ 0, 0, 0, b, a, 1 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ],
  [ 0, -a, -1, 0, -1, 0 ], [ 0, a^2-b, a, 0, a, 1 ], [ 1, 0, 0, 0, 0, 0 ],
  [ c, 0, 0, 0, -a, -1 ], [ c, b, 0, 0, 0, -1 ], [ -b, -a, -1, -a, -1, 0 ],
  [ b, a, 1, 0, 0, 0 ], [ -a, -1, 0, -1, 0, 0 ],
  [ -a*b+c, -a^2, -a, -b, -a, -1 ], [ a^2-b, a, 0, a, 1, 0 ] ]
gap> act:=ActionHomomorphism(G,dom,OnRight,"surjective");
<action epimorphism>
gap> p:=Range(act);
Group([ (1,4,8)(2,13,7)(3,14,6)(5,12,16)(10,15,11), (1,10)(3,6)(4,11)(5,12)
(7,13)(8,15) ])

Then work with the isomorphic permutation group and if necessary use the homomorphism to obtain matrices back. (Clearly this assumes that your group is finite and not too large.)

ahulpke
  • 18,416
  • 1
  • 21
  • 38
  • Sorry but I tried in vain "Image(act, G.1);" and "PreImagesRepresentative(act, p.1);" but all in vain (method not found error). What am I doing wrong?What I do is to construct a list of words of $S_3$ factored in generators and reconstruct the corresponding matrices with MappedWord, and link the two with the Position function, but that seems rather crude and cumbersome to me.. – Marc Bogaerts Apr 24 '17 at 17:13
  • Ah -- the mappings always want to go to linear algebra. The best I can come up with is to map from a free group to p and to G and to use both homomorphisms (i.e. first preimage and then image). Not elegant, but will do the work. – ahulpke Apr 25 '17 at 03:28