diff --git a/tst/testinstall/grp/glzmodmz.tst b/tst/testinstall/grp/glzmodmz.tst index dd980eae80..a47ac2323c 100644 --- a/tst/testinstall/grp/glzmodmz.tst +++ b/tst/testinstall/grp/glzmodmz.tst @@ -1,5 +1,33 @@ gap> START_TEST("glzmodmz.tst"); +# +gap> CheckGeneratorsInvertible := function(G) +> return ForAll(GeneratorsOfGroup(G), +> g -> not IsZero(Determinant(g))); +> end;; +gap> CheckGeneratorsSpecial := function(G) +> return ForAll(GeneratorsOfGroup(G), +> g -> IsOne(Determinant(g))); +> end;; +gap> CheckBilinearForm := function(G) +> local M; +> M := InvariantBilinearForm(G).matrix; +> return ForAll(GeneratorsOfGroup(G), +> g -> g*M*TransposedMat(g) = M); +> end;; +gap> frob := function(g,aut) +> return List(g,row->List(row,x->x^aut)); +> end;; +gap> CheckSesquilinearForm := function(G) +> local M, F, aut; +> M := InvariantSesquilinearForm(G).matrix; +> F := FieldOfMatrixGroup(G); +> aut := FrobeniusAutomorphism(F); +> aut := aut^(DegreeOverPrimeField(F)/2); +> return ForAll(GeneratorsOfGroup(G), +> g -> g*M*TransposedMat(frob(g,aut)) = M); +> end;; + # gap> SizeOfGLdZmodmZ(2,2); 6 @@ -12,10 +40,16 @@ Error, GL(2,Integers mod 1) is not a well-defined group, resp. not supported. # gap> G:=GL(4,Integers mod 4); GL(4,Z/4Z) +gap> CheckGeneratorsInvertible(G); +true gap> H:=SL(4,Integers mod 4); SL(4,Z/4Z) +gap> CheckGeneratorsSpecial(H); +true gap> K:=Sp(4,Integers mod 4); Sp(4,Z/4Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true # gap> NrMovedPoints(Image(NiceMonomorphism(G : cheap)));; @@ -34,5 +68,43 @@ gap> Size(G); Size(H); Size(K); 660602880 737280 +# +gap> K:=Sp(4,Integers mod 9); +Sp(4,Z/9Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true +gap> K:=Sp(6,Integers mod 16); +Sp(6,Z/16Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true + +# +gap> K:=GO(3,Integers mod 9); +GO(3,Z/9Z) +gap> CheckGeneratorsInvertible(K) and CheckBilinearForm(K); +true +gap> K:=GO(+1,4,Integers mod 9); +GO(1,4,Z/9Z) +gap> CheckGeneratorsInvertible(K) and CheckBilinearForm(K); +true +gap> K:=GO(-1,4,Integers mod 9); +GO(-1,4,Z/9Z) +gap> CheckGeneratorsInvertible(K) and CheckBilinearForm(K); +true + +# +gap> K:=SO(3,Integers mod 9); +SO(3,Z/9Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true +gap> K:=SO(+1,4,Integers mod 9); +SO(1,4,Z/9Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true +gap> K:=SO(-1,4,Integers mod 9); +SO(-1,4,Z/9Z) +gap> CheckGeneratorsSpecial(K) and CheckBilinearForm(K); +true + # gap> STOP_TEST("glzmodmz.tst", 10000);