Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/semigroups/tst/extreme/   (GAP Algebra Version 4.15.1©)  Datei vom 29.7.2025 mit Größe 10 kB image not shown  

Quelle  semigroups.tst   Sprache: unbekannt

 
Spracherkennung für: .tst vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

#############################################################################
##
#W  extreme/semigroups.tst
#Y  Copyright (C) 2015                                   James D. Mitchell
##
##  Licensing information can be found in the README file of this package.
##
#############################################################################
##


#@local S, acting, f, g, gens, i, inv, iso, s, small, u, x, y, z
gap> START_TEST("Semigroups package: extreme/semigroups.tst");
gap> LoadPackage("semigroups", false);;

# Set info levels and user preferences
gap> SEMIGROUPS.StartTest();
gap> SEMIGROUPS.DefaultOptionsRec.acting := true;;

# previously the second arg here (an ideal) would have been added using
#   AsList to the set of generators of S. This is slow with the acting stuff
#   turned off. 
gap> S := Semigroup(AsSemigroup(IsPartialPermSemigroup, AlternatingGroup(8)),
>                   SemigroupIdeal(SymmetricInverseMonoid(8),
>                                  PartialPerm([1 .. 7])));
<partial perm semigroup of rank 8 with 19 generators>
gap> Size(S);
1421569

# SemigroupsTest1: Inverse semigroup of partial perms
gap> gens := [PartialPermNC([12346710], [5341968]),
> PartialPermNC([1235679], [8967345]),
> PartialPermNC([1235689], [24173108]),
> PartialPermNC([1234568], [84537210]),
> PartialPermNC([1234568], [92810637]),
> PartialPermNC([124678], [3157610]),
> PartialPermNC([12456710], [1825379]),
> PartialPermNC([1234589], [82957610]),
> PartialPermNC([124567], [4810369]),
> PartialPermNC([124689], [2648103]),
> PartialPermNC([1234679], [41095623]),
> PartialPermNC([1234567], [74861510]),
> PartialPermNC([13478], [16359]),
> PartialPermNC([1235679], [65141078]),
> PartialPermNC([1235789], [46251038]),
> PartialPermNC([123469], [3782510]),
> PartialPermNC([12347810], [34215108]),
> PartialPermNC([123458910], [651079148]),
> PartialPermNC([123589], [6107853]),
> PartialPermNC([1234510], [3710826]),
> PartialPermNC([125610], [74832]),
> PartialPermNC([12456810], [6957421]),
> PartialPermNC([123469], [824791]),
> PartialPermNC([123456910], [934261085]),
> PartialPermNC([12310], [49710]),
> PartialPermNC([123457810], [710129835]),
> PartialPermNC([1234567], [96431017]),
> PartialPermNC([12357810], [5948172]),
> PartialPermNC([12367910], [4257369]),
> PartialPermNC([1234589], [98710452]),
> PartialPermNC([1234589], [41012839]),
> PartialPermNC([1245910], [1083712]),
> PartialPermNC([1235910], [6102734]),
> PartialPermNC([123410], [891076]),
> PartialPermNC([1236], [91058]),
> PartialPermNC([123568], [9857610]),
> PartialPermNC([1234567], [18521046]),
> PartialPermNC([1235810], [458792]),
> PartialPermNC([1245689], [81310265]),
> PartialPermNC([123457810], [108376219]),
> PartialPermNC([134610], [72865]),
> PartialPermNC([1234569], [83910215]),
> PartialPermNC([135610], [93486]),
> PartialPermNC([1234579], [73284110]),
> PartialPermNC([123467], [6357108]),
> PartialPermNC([123456], [879436]),
> PartialPermNC([1234568], [2197458]),
> PartialPermNC([12345610], [10261359]),
> PartialPermNC([1234610], [2314610]),
> PartialPermNC([12348910], [8276534]),
> PartialPermNC([12379], [95817]),
> PartialPermNC([1234510], [1069521]),
> PartialPermNC([1234678], [93101746]),
> PartialPermNC([1345710], [1675104]),
> PartialPermNC([134678], [8231107]),
> PartialPermNC([1235810], [265834]),
> PartialPermNC([123589], [1109364]),
> PartialPermNC([12346910], [10261857]),
> PartialPermNC([12357], [121089]),
> PartialPermNC([124569], [9541072]),
> PartialPermNC([12345710], [31024876]),
> PartialPermNC([134567], [6731045]),
> PartialPermNC([123468], [3497101]),
> PartialPermNC([12357], [751031]),
> PartialPermNC([1234567910],
> [5713284610]),
> PartialPermNC([1234679], [6827154]),
> PartialPermNC([1234689], [84659101]),
> PartialPermNC([1234679], [59316810]),
> PartialPermNC([123457], [9374110]),
> PartialPermNC([13457910], [71028916]),
> PartialPermNC([1345789], [72351046]),
> PartialPermNC([123789], [1075419]),
> PartialPermNC([1345689], [81710459]),
> PartialPermNC([12345], [103716]),
> PartialPermNC([123578910], [357610294]),
> PartialPermNC([12349], [58746]),
> PartialPermNC([1234589], [21105896]),
> PartialPermNC([1235678], [8324971]),
> PartialPermNC([1234578], [3519468]),
> PartialPermNC([123568], [3725109]),
> PartialPermNC([12367910], [57246101]),
> PartialPermNC([123568], [7541310]),
> PartialPermNC([123678910], [968357104]),
> PartialPermNC([12358], [825110]),
> PartialPermNC([123789], [537126]),
> PartialPermNC([12349], [691021]),
> PartialPermNC([12359], [83975]),
> PartialPermNC([123468910], [671014285]),
> PartialPermNC([123456], [7103928]),
> PartialPermNC([124568], [918763]),
> PartialPermNC([124567], [641539]),
> PartialPermNC([12356710], [82493710]),
> PartialPermNC([124568], [6238410]),
> PartialPermNC([12367910], [10274918]),
> PartialPermNC([1245678], [2386951]),
> PartialPermNC([134578], [482659]),
> PartialPermNC([1235789], [69735210]),
> PartialPermNC([1247910], [823516]),
> PartialPermNC([1258910], [7131058]),
> PartialPermNC([1234569], [1354967])];;
gap> s := InverseSemigroup(gens, rec(acting := true));
<inverse partial perm semigroup of rank 10 with 100 generators>
gap> Size(s);
89616897
gap> s := InverseSemigroup(gens[1]);
<inverse partial perm semigroup of rank 10 with 1 generator>
gap> for i in [2 .. 100] do
> s := ClosureInverseSemigroup(s, gens[i], rec(acting := true));
> od;
gap> s;
<inverse partial perm semigroup of rank 10 with 54 generators>
gap> Size(s);
89616897
gap> s := InverseMonoid(gens, rec(acting := true));
<inverse partial perm monoid of rank 10 with 100 generators>
gap> Size(s);
89616898
gap> IsSubsemigroup(s, InverseSemigroup(s, rec(small := true, acting := true)));
true
gap> s := InverseMonoid(gens[1]);;
gap> for i in [2 .. 100] do
> s := ClosureInverseSemigroup(s, gens[i], rec(acting := true));
> od;
gap> s;
<inverse partial perm monoid of rank 10 with 54 generators>
gap> Size(s);
89616898
gap> NrDClasses(s);
15
gap> s := InverseSemigroup(gens, rec(small := true, acting := true));;
gap> NrDClasses(s);
14

# SemigroupsTest2: Inverse monoid of partial perms
gap> s := InverseMonoid(PartialPermNC([1235], [5682]),
> PartialPermNC([1235910], [721594]));;
gap> Generators(s);
[ [1,5,2,6][3,8], [3,1,7][10,4](2)(5)(9) ]
gap> GeneratorsOfInverseSemigroup(s);
[ [1,5,2,6][3,8], [3,1,7][10,4](2)(5)(9), 
  <identity partial perm on [ 12345678910 ]> ]
gap> GeneratorsOfInverseMonoid(s);
[ [1,5,2,6][3,8], [3,1,7][10,4](2)(5)(9) ]
gap> GeneratorsOfSemigroup(s);
[ <identity partial perm on [ 12345678910 ]>, 
  [1,5,2,6][3,8], [3,1,7][10,4](2)(5)(9), [6,2,5,1][8,3], 
  [4,10][7,1,3](2)(5)(9) ]
gap> GeneratorsOfMonoid(s);
[ [1,5,2,6][3,8], [3,1,7][10,4](2)(5)(9), [6,2,5,1][8,3], 
  [4,10][7,1,3](2)(5)(9) ]

# SemigroupsTest3: Dihedral (perm) group to a partial perm semigroup
gap> g := DihedralGroup(8);;
gap> g := Range(IsomorphismPermGroup(g));
Group([ (1,2)(3,8)(4,6)(5,7), (1,3,4,7)(2,5,6,8), (1,4)(2,6)(3,7)(5,8) ])
gap> iso := IsomorphismPartialPermSemigroup(g);;
gap> Range(iso);
<partial perm group of size 8, rank 8 with 3 generators>
gap> inv := InverseGeneralMapping(iso);;
gap> f := (15)(23)(48)(67);;
gap> f ^ iso;
(1,5)(2,3)(4,8)(6,7)
gap> (f ^ iso) ^ inv;
(1,5)(2,3)(4,8)(6,7)
gap> ForAll(g, f -> (f ^ iso) ^ inv = f);
true
gap> Size(Range(iso));
8

# SemigroupsTest4: Symmetric (perm) group to a partial perm semigroup
gap> s := Range(IsomorphismPartialPermSemigroup(SymmetricGroup(4)));
<partial perm group of size 24, rank 4 with 2 generators>
gap> iso := IsomorphismPermGroup(s);;
gap> Range(iso);
Group([ (1,2,3,4), (1,2) ])
gap> inv := InverseGeneralMapping(iso);;
gap> f := PartialPerm([1234], [2134]);
(1,2)(3)(4)
gap> f in s;
true
gap> f ^ iso;
(1,2)
gap> (f ^ iso) ^ inv;
(1,2)(3)(4)
gap> ForAll(s, f -> (f ^ iso) ^ inv = f);
true
gap> Size(s);
24
gap> Size(Range(iso));
24

# SemigroupsTest5: FreeInverseSemigroup
gap> S := FreeInverseSemigroup(3);
<free inverse semigroup on the generators [ x1, x2, x3 ]>
gap> Size(S);
infinity
gap> x := S.1;
x1
gap> y := S.2;
x2
gap> z := S.3;
x3
gap> u := x ^ 5 * y ^ 3 * z;
x1*x1*x1*x1*x1*x2*x2*x2*x3
gap> u ^ -1;
x3^-1*x2^-1*x2^-1*x2^-1*x1^-1*x1^-1*x1^-1*x1^-1*x1^-1
gap> x ^ 2 * y = x ^ 2 * y;
true
gap> x * x ^ -1 = y * y ^ -1;
false

#
gap> SEMIGROUPS.StopTest();
gap> STOP_TEST("Semigroups package: extreme/semigroups.tst");

[Dauer der Verarbeitung: 0.52 Sekunden, vorverarbeitet 2026-06-17]