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

Quelle  acting.tst   Sprache: unbekannt

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

#############################################################################
##
#W  standard/main/acting.tst
#Y  Copyright (C) 2011-2022                              James D. Mitchell
##
##  Licensing information can be found in the README file of this package.
##
#############################################################################
##

#@local R, S, acting, f, gens, iter, r, s, x
gap> START_TEST("Semigroups package: standard/main/acting.tst");
gap> LoadPackage("semigroups", false);;

#
gap> SEMIGROUPS.StartTest();
gap> SEMIGROUPS.DefaultOptionsRec.acting := true;;


gap> s := Semigroup(Transformation([214563]),
>                   Transformation([231541]));;
gap> r := GreensRClassOfElement(s,
> Generators(s)[1] * Generators(s)[2] * Generators(s)[1]);
<Green's R-class: Transformation( [ 416522 ] )>
gap> Transformation([416522]) in r;
true
gap> Representative(r);
Transformation( [ 416522 ] )
gap> AsList(LambdaOrb(r)){OrbSCC(LambdaOrb(r))[LambdaOrbSCCIndex(r)]};
[ [ 12345 ], [ 12456 ], [ 12356 ], [ 12346 ] ]
gap> LambdaOrbMults(LambdaOrb(r),
> LambdaOrbSCCIndex(r)){OrbSCC(LambdaOrb(r))[LambdaOrbSCCIndex(r)]};
[ [ IdentityTransformation, IdentityTransformation ], 
  [ Transformation( [ 612546 ] ), 
      Transformation( [ 231541 ] ) ], 
  [ Transformation( [ 125636 ] ), 
      Transformation( [ 125634 ] ) ], 
  [ Transformation( [ 216346 ] ), 
      Transformation( [ 214563 ] ) ] ]


gap> gens := [Transformation([4336723]),
>   Transformation([6644214])];;
gap> s := Semigroup(gens);;
gap> Length(GreensRClasses(s));
17
gap> r := GreensRClasses(s)[10];;
gap> Representative(r);
Transformation( [ 3333323 ] )
gap> AsList(LambdaOrb(r){OrbSCC(LambdaOrb(r))[LambdaOrbSCCIndex(r)]});
[ [ 23 ], [ 46 ], [ 26 ], [ 16 ], [ 24 ], [ 36 ], [ 14 ] ]
gap> LambdaOrbMults(LambdaOrb(r),
> LambdaOrbSCCIndex(r)){OrbSCC(LambdaOrb(r))[LambdaOrbSCCIndex(r)]};
[ [ IdentityTransformation, IdentityTransformation ], 
  [ Transformation( [ 146456 ] ), 
      Transformation( [ 6332333 ] ) ], 
  [ Transformation( [ 162456 ] ), 
      Transformation( [ 4336723 ] ) ], 
  [ Transformation( [ 116456 ] ), 
      Transformation( [ 2333333 ] ) ], 
  [ Transformation( [ 1424 ] ), 
      Transformation( [ 6332333 ] ) ], 
  [ Transformation( [ 163456 ] ), 
      Transformation( [ 4336723 ] ) ], 
  [ Transformation( [ 1144 ] ), 
      Transformation( [ 2333333 ] ) ] ]


gap> gens := [Transformation([87531388]),
> Transformation([51414478])];;
gap> s := Monoid(gens);;
gap> f := Transformation([88158588]);;
gap> f in SemigroupData(s);
false
gap> iter := IteratorOfRClasses(s);
<iterator>
gap> NextIterator(iter);;
gap> NextIterator(iter);
<Green's R-class: Transformation( [ 87531388 ] )>
gap> f in SemigroupData(s);
false
gap> NextIterator(iter);
<Green's R-class: Transformation( [ 514144 ] )>
gap> f in SemigroupData(s);
true


gap> s := Semigroup([Transformation([2412]),
> Transformation([3341])]);;
gap> RhoOrb(s);
<open orbit, 1 points with Schreier tree with log>
gap> Enumerate(last);
<closed orbit, 9 points with Schreier tree with log>
gap> AsList(last);
[ [ 0 ], [ 1231 ], [ 1123 ], [ 1221 ], [ 1122 ], 
  [ 1211 ], [ 1112 ], [ 1111 ], [ 1121 ] ]

# \in, wrong family relation 1/2
gap> S := Monoid([Transformation([131]),
> Transformation([2131]),
> Transformation([3121]),
> Transformation([3142]),
> Transformation([4444])]);;
gap> Bipartition([[1], [2, -1], [3, -2, -4], [4, -3]]) in S;
false

# \in, wrong family relation 2/2
gap> S := Monoid([Transformation([133])]);;
gap> x := Transformation([2672699115]);;
gap> x in S;
false

# \in, wrong fixed degree
gap> S := Monoid([Bipartition([[12, -1, -2]])]);;
gap> x := Bipartition([[1, -1], [2, -2], [3, -3]]);;
gap> x in S;
false

# \in, too large rank
gap> S := Monoid([Transformation([122])]);;
gap> x := Transformation([213]);;
gap> x in S;
false

# \in, too small rank
gap> S := RectangularBand(33);
<regular transformation semigroup of size 9, degree 7 with 3 generators>
gap> MinimalIdeal(S);;
gap> x := ConstantTransformation(1010);
Transformation( [ 10101010101010101010 ] )
gap> x in S;
false

# \in, wrong lambda value
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> x := Transformation([12121]);;
gap> x in S;
false

# \in, is existing R-class rep
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> RClassReps(S)[1] in S;
true

# \in, wrong rho value 1/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> Size(S);;
gap> x := Transformation([13344]);;
gap> x in S;
false

# Position, wrong rho value, lambda not in scc 1st place
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> Enumerate(SemigroupData(S));;
gap> Position(SemigroupData(S), Transformation([51113]));
fail
gap> Position(SemigroupData(S), Transformation([15151]));
fail

# \in, wrong rho value 2/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> x := Transformation([13344]);;
gap> x in S;
false

# \in, wrong rho value 2/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> x := Transformation([13344]);;
gap> x in S;
false

# \in, wrong lambda-rho combination 1/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> Size(S);;
gap> x := Transformation([13513]);;
gap> x in S;
false

# Position, wrong lambda-rho combination 1/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> Size(S);;
gap> x := Transformation([13513]);;
gap> Position(SemigroupData(S), x);
fail

# \in, wrong lambda-rho combination 2/2
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> x := Transformation([13513]);;
gap> x in S;
false

# \in, Schutzenberger group is symmetric
gap> S := Semigroup([Transformation([35241]),
> Transformation([35413]),
> Transformation([51351]),
> Transformation([54524])]);;
gap> x := Transformation([34534]);;
gap> x in S;
true

# Position, Schutzenberger group is symmetric
gap> S := Semigroup([Transformation([35241]),
> Transformation([35413]),
> Transformation([51351]),
> Transformation([54524])]);;
gap> Size(S);;
gap> x := Transformation([34534]);;
gap> Position(SemigroupData(S), x);
4

# \in, non-regular all possible reps 1/2
gap> S := Monoid([Transformation([1323]),
> Transformation([1412]),
> Transformation([3422]),
> Transformation([4121])]);;
gap> Size(S);;
gap> Transformation([1242]) in S;
true

# \in, check Schutzenberger group
gap> S := Semigroup([Transformation([1323]),
> Transformation([1412]),
> Transformation([2411]),
> Transformation([3422])]);;
gap> Transformation([1232]) in S;
true

# Position, check Schutzenberger group
gap> S := Semigroup([Transformation([1323]),
> Transformation([1412]),
> Transformation([2411]),
> Transformation([3422])]);;
gap> Size(S);;
gap> Position(SemigroupData(S), Transformation([1232]));
2

# \in, new lambda-rho combo and found rep
gap> S := Semigroup([Transformation([13413]),
> Transformation([55113])]);;
gap> x := Transformation([13413]);;
gap> x in S;
true

# \in, trivial Schutz group
gap> S := Semigroup([Transformation([31131]),
> Transformation([43142]),
> Transformation([43423]),
> Transformation([52121])]);;
gap> Size(S);;
gap> Transformation([13412]) in S;
false

# \in, enumerated non-trivial Schutzenberger group
gap> S := Monoid([Transformation([26726115]),
> Transformation([38145671]),
> Transformation([43277665]),
> Transformation([71742563])]);;
gap> Transformation([53153443]) in S;
true

# \in, enumerated trivial Schutzenberger group
gap> S := Semigroup([
>  Transformation([1562521]),
>  Transformation([1754357]),
>  Transformation([2772411]),
>  Transformation([3224176]),
>  Transformation([3351716]),
>  Transformation([3361752]),
>  Transformation([346544]),
>  Transformation([5245145]),
>  Transformation([5522672]),
>  Transformation([7754532])]);;
gap> Transformation([2667613]) in S;
true

# \in, non-regular all possible reps 2/2
gap> S := Monoid([Transformation([26726115]),
>  Transformation([38145671]),
>  Transformation([43277665]),
>  Transformation([71742563])]);;
gap> Transformation([14135441]) in S;
true

# \in final false.
gap> S := Semigroup(Transformation([23354]),
>   Transformation([55324]));;
gap> Transformation([32254]) in S;
false

# Position final fail.
gap> S := Semigroup(Transformation([23354]),
>   Transformation([55324]));;
gap> Size(S);;
gap> Position(SemigroupData(S), Transformation([32254]));
fail

# Enumerate, 2 args
gap> S := Semigroup([PartialPerm([124689],
> [7101942]),
> PartialPerm([12345810], [7143265])]);;
gap> Enumerate(SemigroupData(S), 20);
<open semigroup data with 20 reps, 27 lambda-values, 20 rho-values>

# Enumerate, closed and looking
gap> S := Semigroup(IdentityTransformation);;
gap> Enumerate(SemigroupData(S));;
gap> Enumerate(SemigroupData(S), infinity, ReturnTrue);;

# Enumerate, innermost if-condition not IsBound(lambdarhoht[l])
gap> S := Semigroup(Transformation([23354]),
>   Transformation([55324]));;
gap> Enumerate(RhoOrb(S));
<closed orbit, 13 points with Schreier tree with log>
gap> Size(S);
49

# OrbitGraph and OrbitGraphAsSets
gap> S := Semigroup([
> Bipartition([[123, -1, -4], [4], [5, -3], [-2, -5]]),
> Bipartition([[135], [24, -1, -2], [-3], [-4], [-5]]),
> Bipartition([[1, -1, -3, -5], [234, -2, -4], [5]])]);;
gap> Size(S);
18
gap> OrbitGraph(SemigroupData(S));
[ [ 234 ], [ 536 ], [ 537 ], [ 536 ], [ 536 ], 
  [ 536 ], [ 536 ] ]
gap> OrbitGraphAsSets(SemigroupData(S));
[ [ 234 ], [ 356 ], [ 357 ], [ 356 ], [ 356 ], 
  [ 356 ], [ 356 ] ]
gap> PositionOfFound(SemigroupData(S));
Error, not looking for anything

# SizeOfSemigroupData
gap> S := Semigroup([PartialPerm([124689],
> [7101942]),
> PartialPerm([12345810], [7143265])]);;
gap> Enumerate(SemigroupData(S), 20);
<open semigroup data with 20 reps, 27 lambda-values, 20 rho-values>
gap> SizeOfSemigroupData(SemigroupData(S));
22
gap> SizeOfSemigroupData(S);
Error, the argument must be a semigroup data object
gap> Enumerate(SemigroupData(S));
<closed semigroup data with 46 reps, 27 lambda-values, 28 rho-values>
gap> S := Semigroup(S);;
gap> SizeOfSemigroupData(SemigroupData(S));
0

# SEMIGROUPS.UniversalFakeOne
gap> SEMIGROUPS.UniversalFakeOne * RandomMatrix(IsBooleanMat, 4);;
gap> RandomTransformation(4) * SEMIGROUPS.UniversalFakeOne;;
gap> String(SEMIGROUPS.UniversalFakeOne);
"<universal fake one>"
gap> SEMIGROUPS.UniversalFakeOne < SEMIGROUPS.UniversalFakeOne;
false
gap> SEMIGROUPS.UniversalFakeOne < RandomBipartition(4);
true
gap> RandomPartialPerm(4) < SEMIGROUPS.UniversalFakeOne;
false

# \in when HasFroidurePin
gap> S := FullTransformationMonoid(6);
<full transformation monoid of degree 6>
gap> S := Semigroup(S, rec(acting := true));
<transformation monoid of degree 6 with 3 generators>
gap> Enumerate(S, 1000);
<transformation monoid of degree 6 with 3 generators>
gap> ForAll(EnumeratorCanonical(S){[1 .. 1000]}, x -> x in S); 
true
gap> S := SingularTransformationMonoid(5);
<regular transformation semigroup ideal of degree 5 with 1 generator>
gap> S := Semigroup(S, rec(acting := true));
<transformation semigroup of degree 5 with 14 generators>
gap> Enumerate(S);
<transformation semigroup of degree 5 with 14 generators>
gap> IdentityTransformation in S;
false
gap> S := SingularTransformationMonoid(5);
<regular transformation semigroup ideal of degree 5 with 1 generator>
gap> AsSSortedList(S);;
gap> IdentityTransformation in S;
false
gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(4),
> [[(), ()], [(), ()]]);
<Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 4 ] )>
gap> S := Semigroup(GeneratorsOfSemigroup(R), rec(acting := true));
<subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators>
gap> AsSSortedList(S);;
gap> RMSElement(R, 1, (23), 1) in S;
true

# \in for a semigroup with minimal ideal
gap> S := AsSemigroup(IsTransformationSemigroup, SymmetricGroup(3));
<transformation group of size 6, degree 3 with 2 generators>
gap> MinimalIdeal(S);
<transformation group of degree 3>
gap> ConstantTransformation(31) in S;
false

#
gap> SEMIGROUPS.StopTest();
gap> STOP_TEST("Semigroups package: standard/main/acting.tst");

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