First of all, if one needs to run this code correctly, one should read in a file in order to make the command NaturalHomomorphismByIdeal run correctly as explained in the answer here. This is the original setup:
x := X(Rationals, "x");; y := X(Rationals, "y");; z := X(Rationals, "z");; P := PolynomialRing(Rationals, [x,y,z]);; I := Ideal(P, [ x^3-3*x-1, x^2+x*y+y^2-3, x+y+z ]);; pr := NaturalHomomorphismByIdeal(P, I);; Q := Image(pr);; xx := Image(pr, x);; yy := Image(pr, y);; zz := Image(pr, z);; sig := AlgebraHomomorphismByImages(Q, Q, [xx, yy], [yy, zz]);;
From time to time I issue a command that I think maybe should work but will not scare me if it spits out error messages. But to my astonishment the following worked:
gap> Order(sig); 3 gap> sig^3; [ (-1)*(z)+(-1)*(y), (y), (3)*(1)+(yz), (-3)*(1)+(z2), (3)*(1)+(-1)*(z2)+(-1)*(yz), (-1)*(1)+(3)*(y)+(-1)*(yz2) ] -> [ (-1)*(z)+(-1)*(y), (y), (3)*(1)+(yz), (-3)*(1)+(z2), (3)*(1)+(-1)*(z2)+(-1)*(yz), (-1)*(1)+(3)*(y)+(-1)*(yz2) ] gap> sig^0; IdentityMapping( <ring Rationals,(1),(z),(z2),(y),(yz),(yz2)> ) gap> G := Group(sig); <group with 1 generators>
Unluckily it seems that $sig^3$ is not recognized as the identity and moreover the following does not give what I expected:
gap> StructureDescription(G); Error, resulting list would be too large (length infinity) called from ConstantTimeAccessList( enum ) at /proc/cygdrive/C/gap4r8/lib/coll.gi:506 called from AsList( l ) at /proc/cygdrive/C/gap4r8/lib/list.gi:612 called from AsPlist( l ) at /proc/cygdrive/C/gap4r8/lib/list.gi:673 called from EnumeratorSorted( Enumerator( D ) ) at /proc/cygdrive/C/gap4r8/lib/domain.gi:231 called from EnumeratorSorted( Union( PreImagesRange( map1 ), PreImagesRange( map2 ) ) ) at /proc/cygdrive/C/gap4r8/lib/mapping.gi:1420 called from ... at line 213 of *stdin* you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk>
Is there a way to construct some group so that it acts on $Q$ by automorphisms?