GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
gap> RequirePackage("carat"); true gap> names := []; [ ] gap> GROUPS := []; [ ] gap> R := CaratReadBravaisFile("ordnung.16/(2)^2(8)^2/group.1086"); rec( generators := [ [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, -1 ], [ 0, 0, 0, 0, 1, 0 ] ] ], size := 16 ) gap> P1 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.16/(2)^2(8)^2/words.group.1086"]); gap> Append(GROUPS,[P1]); gap> R := CaratReadBravaisFile("ordnung.16/(2)^4(16)^2/group.1087"); rec( generators := [ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ] ], size := 16 ) gap> P2 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.16/(2)^4(16)^2/words.group.1087"]); gap> Append(GROUPS,[P2]); gap> R := CaratReadBravaisFile("ordnung.16/(2)^4(16)^2/min.204"); rec( generators := [ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ -1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 0, 0, -1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ], size := 16 ) gap> P3 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.16/(2)^4(16)^2/words.min.204"]); gap> Append(GROUPS,[P3]); gap> R := CaratReadBravaisFile("ordnung.32/(2)^4(8)^2/group.1088"); rec( generators := [ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ], size := 32 ) gap> P4 := Group(R.generators); <matrix group with 3 generators> gap> Append(names,["ordnung.32/(2)^4(8)^2/words.group.1088"]); gap> Append(GROUPS,[P4]); gap> R := CaratReadBravaisFile("ordnung.8/(2)^2(16)^2/min.205"); rec( generators := [ [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ], size := 8 ) gap> P5 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.8/(2)^2(16)^2/words.min.205"]); gap> Append(GROUPS,[P5]); gap> Print(GROUPS,"\n"); [ Group( [ [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, -1 ], [ 0, 0, 0, 0, 1, 0 ] ] ]), Group([ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ] ]), Group([ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ -1, 0, 0, 0, 0, 0 ] , [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 0, 0, -1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ]), Group([ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ], [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ]), Group([ [ [ 0, -1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, 0, 0 ] , [ 0, -1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1 ], [ 0, 0, 0, 0, 1, 0 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ]) ] gap> Print(names,"\n"); [ "ordnung.16/(2)^2(8)^2/words.group.1086", "ordnung.16/(2)^4(16)^2/words.group.1087", "ordnung.16/(2)^4(16)^2/words.min.204", "ordnung.32/(2)^4(8)^2/words.group.1088", "ordnung.8/(2)^2(16)^2/words.min.205" ] gap> Size(GROUPS); 5 gap> Size(names); 5 gap> Read("../../TGROUPS.GAP"); gap> for i in [1..Size(GROUPS)] do > SubgroupWords(GROUPS[i], names[i]); > od; [ x2, x2^2, x1^2 ] [ x1, x2^2, x1^2 ] [ x1*x2, x2^2, x1^2 ] [ x2, x2^2, x1*x2*x1*x2^3 ] [ x1, x2^2, x1*x2*x1*x2^3 ] [ x2*x1, x2^2, x1*x2*x1*x2^3 ] [ x2, x1^2, x1*x2*x1*x2 ] [ x1, x1^2, x1*x2*x1*x2 ] [ x2*x1, x1^2, x1*x2*x1*x2 ] [ x3, x3*x1*x3, x2^2, x1*x3*x1*x3 ] [ x3, x2, x2^2, x1*x3*x1*x3 ] [ x3, x2*x3*x1*x3, x2^2, x1*x3*x1*x3 ] [ x3*x1*x3, x2, x2^2, x1*x3*x1*x3 ] [ x2*x3, x3*x1*x3, x2^2, x1*x3*x1*x3 ] [ x1*x3, x2, x2^2, x1*x3*x1*x3 ] [ x2*x3, x2*x3*x1*x3, x2^2, x1*x3*x1*x3 ] [ x2, x1^2 ] [ x1, x1^2 ] [ x1*x2, x1^2 ] gap> LogTo();