Quelle AddToIgs.tst Sprache: unbekannt
|
|
Spracherkennung für: .tst vermutete Sprache: Lisp {Lisp[93] Masm[93] MT940[45]} [Methode: maximale Elemente, drei Dimensionen]
gap> START_TEST( "AddToIgs.tst") ;
# This example was sent to us by Heiko Dietrich. It formerly was very slow to
# compute and suffered from exponent size explosion.
# See also < https://github.com/gap-packages/polycyclic/issues/17>.
gap> ftl := FromTheLeftCollector( 26 ) ;
<<from the left collector with 26 generators>>
gap> SetRelativeOrder( ftl, 1, 5 ) ;
gap> SetPower( ftl, 1, [ 2, 1, 3, 1, 4, 1, 5, 1, 6, 1 ] ) ;
gap> SetRelativeOrder( ftl, 2, 5 ) ;
gap> SetPower( ftl, 2, [] ) ;
gap> SetRelativeOrder( ftl, 3, 5 ) ;
gap> SetPower( ftl, 3, [] ) ;
gap> SetRelativeOrder( ftl, 4, 5 ) ;
gap> SetPower( ftl, 4, [] ) ;
gap> SetRelativeOrder( ftl, 5, 5 ) ;
gap> SetPower( ftl, 5, [] ) ;
gap> SetRelativeOrder( ftl, 6, 5 ) ;
gap> SetPower( ftl, 6, [] ) ;
gap> SetConjugate( ftl, 2, 1, [ 6, 1 ] ) ;
gap> SetConjugate( ftl, 3, 1, [ 2, 1 ] ) ;
gap> SetConjugate( ftl, 4, 1, [ 3, 1 ] ) ;
gap> SetConjugate( ftl, 5, 1, [ 4, 1 ] ) ;
gap> SetConjugate( ftl, 6, 1, [ 5, 1 ] ) ;
gap> SetConjugate( ftl, 7, 1, [ 26, - 1 ] ) ;
gap> SetConjugate( ftl, 7, 6, [ 22, - 1 ] ) ;
gap> SetConjugate( ftl, 8, 1, [ 7, 1 ] ) ;
gap> SetConjugate( ftl, 8, 2, [ 23, - 1 ] ) ;
gap> SetConjugate( ftl, 9, 1, [ 8, 1 ] ) ;
gap> SetConjugate( ftl, 9, 3, [ 24, - 1 ] ) ;
gap> SetConjugate( ftl, 10, 1, [ 9, 1 ] ) ;
gap> SetConjugate( ftl, 10, 4, [ 25, - 1 ] ) ;
gap> SetConjugate( ftl, 11, 1, [ 10, 1 ] ) ;
gap> SetConjugate( ftl, 11, 5, [ 26, - 1 ] ) ;
gap> SetConjugate( ftl, 12, 1, [ 11, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, 12, 6, [ 7, 1, 22, - 1 ] ) ;
gap> SetConjugate( ftl, 13, 1, [ 12, 1 ] ) ;
gap> SetConjugate( ftl, 13, 2, [ 8, 1, 23, - 1 ] ) ;
gap> SetConjugate( ftl, 14, 1, [ 13, 1 ] ) ;
gap> SetConjugate( ftl, 14, 3, [ 9, 1, 24, - 1 ] ) ;
gap> SetConjugate( ftl, 15, 1, [ 14, 1 ] ) ;
gap> SetConjugate( ftl, 15, 4, [ 10, 1, 25, - 1 ] ) ;
gap> SetConjugate( ftl, 16, 1, [ 15, 1 ] ) ;
gap> SetConjugate( ftl, 16, 5, [ 11, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, 17, 1, [ 16, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, 17, 6, [ 12, 1, 22, - 1 ] ) ;
gap> SetConjugate( ftl, 18, 1, [ 17, 1 ] ) ;
gap> SetConjugate( ftl, 18, 2, [ 13, 1, 23, - 1 ] ) ;
gap> SetConjugate( ftl, 19, 1, [ 18, 1 ] ) ;
gap> SetConjugate( ftl, 19, 3, [ 14, 1, 24, - 1 ] ) ;
gap> SetConjugate( ftl, 20, 1, [ 19, 1 ] ) ;
gap> SetConjugate( ftl, 20, 4, [ 15, 1, 25, - 1 ] ) ;
gap> SetConjugate( ftl, 21, 1, [ 20, 1 ] ) ;
gap> SetConjugate( ftl, 21, 5, [ 16, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, 22, 1, [ 21, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, 22, 6, [ 17, 1, 22, - 1 ] ) ;
gap> SetConjugate( ftl, 23, 1, [ 22, 1 ] ) ;
gap> SetConjugate( ftl, 23, 2, [ 18, 1, 23, - 1 ] ) ;
gap> SetConjugate( ftl, 24, 1, [ 23, 1 ] ) ;
gap> SetConjugate( ftl, 24, 3, [ 19, 1, 24, - 1 ] ) ;
gap> SetConjugate( ftl, 25, 1, [ 24, 1 ] ) ;
gap> SetConjugate( ftl, 25, 4, [ 20, 1, 25, - 1 ] ) ;
gap> SetConjugate( ftl, 26, 1, [ 25, 1 ] ) ;
gap> SetConjugate( ftl, 26, 5, [ 21, 1, 26, - 1 ] ) ;
gap> SetConjugate( ftl, - 7, 1, [ 26, 1 ] ) ;
gap> SetConjugate( ftl, - 7, 6, [ 22, 1 ] ) ;
gap> SetConjugate( ftl, - 8, 1, [ 7, - 1 ] ) ;
gap> SetConjugate( ftl, - 8, 2, [ 23, 1 ] ) ;
gap> SetConjugate( ftl, - 9, 1, [ 8, - 1 ] ) ;
gap> SetConjugate( ftl, - 9, 3, [ 24, 1 ] ) ;
gap> SetConjugate( ftl, - 10, 1, [ 9, - 1 ] ) ;
gap> SetConjugate( ftl, - 10, 4, [ 25, 1 ] ) ;
gap> SetConjugate( ftl, - 11, 1, [ 10, - 1 ] ) ;
gap> SetConjugate( ftl, - 11, 5, [ 26, 1 ] ) ;
gap> SetConjugate( ftl, - 12, 1, [ 11, - 1, 26, 1 ] ) ;
gap> SetConjugate( ftl, - 12, 6, [ 7, - 1, 22, 1 ] ) ;
gap> SetConjugate( ftl, - 13, 1, [ 12, - 1 ] ) ;
gap> SetConjugate( ftl, - 13, 2, [ 8, - 1, 23, 1 ] ) ;
gap> SetConjugate( ftl, - 14, 1, [ 13, - 1 ] ) ;
gap> SetConjugate( ftl, - 14, 3, [ 9, - 1, 24, 1 ] ) ;
gap> SetConjugate( ftl, - 15, 1, [ 14, - 1 ] ) ;
gap> SetConjugate( ftl, - 15, 4, [ 10, - 1, 25, 1 ] ) ;
gap> SetConjugate( ftl, - 16, 1, [ 15, - 1 ] ) ;
gap> SetConjugate( ftl, - 16, 5, [ 11, - 1, 26, 1 ] ) ;
gap> SetConjugate( ftl, - 17, 1, [ 16, - 1, 26, 1 ] ) ;
gap> SetConjugate( ftl, - 17, 6, [ 12, - 1, 22, 1 ] ) ;
gap> SetConjugate( ftl, - 18, 1, [ 17, - 1 ] ) ;
gap> SetConjugate( ftl, - 18, 2, [ 13, - 1, 23, 1 ] ) ;
gap> SetConjugate( ftl, - 19, 1, [ 18, - 1 ] ) ;
gap> SetConjugate( ftl, - 19, 3, [ 14, - 1, 24, 1 ] ) ;
gap> SetConjugate( ftl, - 20, 1, [ 19, - 1 ] ) ;
gap> SetConjugate( ftl, - 20, 4, [ 15, - 1, 25, 1 ] ) ;
gap> SetConjugate( ftl, - 21, 1, [ 20, - 1 ] ) ;
gap> SetConjugate( ftl, - 21, 5, [ 16, - 1, 26, 1 ] ) ;
gap> SetConjugate( ftl, - 22, 1, [ 21, - 1, 26, 1 ] ) ;
gap> SetConjugate( ftl, - 22, 6, [ 17, - 1, 22, 1 ] ) ;
gap> SetConjugate( ftl, - 23, 1, [ 22, - 1 ] ) ;
gap> SetConjugate( ftl, - 23, 2, [ 18, - 1, 23, 1 ] ) ;
gap> SetConjugate( ftl, - 24, 1, [ 23, - 1 ] ) ;
gap> SetConjugate( ftl, - 24, 3, [ 19, - 1, 24, 1 ] ) ;
gap> SetConjugate( ftl, - 25, 1, [ 24, - 1 ] ) ;
gap> SetConjugate( ftl, - 25, 4, [ 20, - 1, 25, 1 ] ) ;
gap> SetConjugate( ftl, - 26, 1, [ 25, - 1 ] ) ;
gap> SetConjugate( ftl, - 26, 5, [ 21, - 1, 26, 1 ] ) ;
#
gap> g := PcpGroupByCollector(ftl) ;
Pcp-group with orders [ 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 ]
gap> gen:=[ g. 1, g. 1^ 4*g. 2^ 4*g. 3^ 4*g. 4^ 4*g. 6*g. 7*g. 25^- 1*g. 26^ 2 ] ;;
gap> U := Subgroup(g,gen) ;
Pcp-group with orders [ 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 ]
gap> Igs(gen) ;
[ g1, g2*g3*g4*g5*g6, g3*g4*g5^ 3*g23^- 1*g24^ 3*g25^ 2*g26,
g4*g5^ 2*g24^- 1*g25^ 2*g26^- 1, g5*g6^ 4*g22*g23^- 1*g24^ 2*g26^- 2,
g6*g22*g23^ 2*g24*g25^ 3*g26^- 2, g7*g22^- 4, g8*g23^- 4, g9*g24, g10*g25,
g11*g26^- 4, g12*g22^- 3, g13*g23^- 3, g14*g24^ 2, g15*g25^- 3, g16*g26^- 3,
g17*g22^- 2, g18*g23^- 2, g19*g24^- 2, g20*g25^ 3, g21*g26^ 3, g22^ 5, g23^ 5,
g24^ 5, g25^ 5, g26^ 5 ]
#
# Fix a bug in AddToIgs
# See https://github.com/gap-packages/polycyclic/issues/66
#
gap> G := PcGroupToPcpGroup( SmallGroup( 36, 9 ) ) ;;
gap> gensG := [ G. 1, G. 4 ] ;;
gap> G = Subgroup( G, gensG ) ;
true
# second example for issue # 66
gap> G := ExamplesOfSomePcpGroups( 10 ) ;;
gap> S := Subgroup( G, [ G. 1, G. 2, G. 4 ] ) ;;
gap> Igs(S) ;
[ g1, g2, g3^ 3, g4 ]
gap> G. 3^ 3 in S ;
true
gap> G. 2^- 1*G. 4*G. 2*G. 4^- 2;
g3^ 3
#
# third example for issue # 66
#
gap> H := SmallGroup( 36, 9 ) ;;
gap> gensH := [ H. 1, H. 4 ] ;;
gap> H = Subgroup( H, gensH ) ;
true
gap> iso := IsomorphismPcpGroup( H ) ;;
gap> G := Range( iso ) ;;
gap> gensG := List( gensH, h -> h^iso ) ;;
gap> S := Subgroup( G, gensG ) ;;
gap> Igs( S ) ;
[ g1, g2, g3*g4^ 2, g4 ]
gap> G = S ;
true
# another example, this time from issue # 56
gap> A:=AbelianPcpGroup([ 3, 2, 12]) ;;
gap> m:=MinimalGeneratingSet(A) ;;
gap> Length(m) ;
2
gap> List(AddToIgs([],m), Depth) ;
[ 1, 2, 3 ]
#
gap> STOP_TEST( "AddToIgs.tst", 1) ;
[Dauer der Verarbeitung: 0.3 Sekunden, vorverarbeitet 2026-10-24]
|
2026-11-01
|