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)^1(4)^2(8)^2/group.1089"); 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, 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 := 16 ) gap> P1 := Group(R.generators); <matrix group with 3 generators> gap> Append(names,["ordnung.16/(2)^1(4)^2(8)^2/words.group.1089"]); gap> Append(GROUPS,[P1]); gap> R := CaratReadBravaisFile("ordnung.8/(2)^1(4)^2(8)^2/min.207"); rec( generators := [ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ], size := 8 ) gap> P2 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.8/(2)^1(4)^2(8)^2/words.min.207"]); gap> Append(GROUPS,[P2]); gap> R := CaratReadBravaisFile("ordnung.8/(2)^1(4)^2(8)^2/min.208"); rec( generators := [ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ], size := 8 ) gap> P3 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.8/(2)^1(4)^2(8)^2/words.min.208"]); gap> Append(GROUPS,[P3]); gap> R := CaratReadBravaisFile("ordnung.8/(2)^1(4)^2(8)^2/min.209"); rec( generators := [ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ], size := 8 ) gap> P4 := Group(R.generators); <matrix group with 2 generators> gap> Append(names,["ordnung.8/(2)^1(4)^2(8)^2/words.min.209"]); gap> Append(GROUPS,[P4]); 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, 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([ [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ] , [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ] ]), Group([ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ]), Group([ [ [ 0, 0, 1, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 0, -1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 0, 0, -1, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ]) ] gap> Print(names,"\n"); [ "ordnung.16/(2)^1(4)^2(8)^2/words.group.1089", "ordnung.8/(2)^1(4)^2(8)^2/words.min.207", "ordnung.8/(2)^1(4)^2(8)^2/words.min.208", "ordnung.8/(2)^1(4)^2(8)^2/words.min.209" ] gap> Size(GROUPS); 4 gap> Size(names); 4 gap> Read("../../TGROUPS.GAP"); gap> for i in [1..Size(GROUPS)] do > SubgroupWords(GROUPS[i], names[i]); > od; [ x3, x1^2*x2, x1^2 ] [ x3, x1, x1^2 ] [ x3, x1*x2, x1^2 ] [ x1^2*x2, x1, x1^2 ] [ x1*x3, x1^2*x2, x1^2 ] [ x1^2*x2*x3, x1, x1^2 ] [ x1*x3, x1*x2, x1^2 ] [ x2, x1*x2*x1*x2 ] [ x1, x1*x2*x1*x2 ] [ x2*x1, x1*x2*x1*x2 ] [ x2, x1*x2*x1*x2 ] [ x2*x1*x2, x1*x2*x1*x2 ] [ x1*x2, x1*x2*x1*x2 ] [ x2, x1*x2*x1*x2 ] [ x2*x1*x2, x1*x2*x1*x2 ] [ x1*x2, x1*x2*x1*x2 ] gap> LogTo();