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

Quelle  acting-inverse.tst   Sprache: unbekannt

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

#############################################################################
##
#W  standard/greens/acting-inverse.tst
#Y  Copyright (C) 2015-2022                                Wilf A. Wilson
##
##  Licensing information can be found in the README file of this package.
##
#############################################################################
##

#@local D, L, R, S, acting, an, en, it, x, y
gap> START_TEST("Semigroups package: standard/greens/acting-inverse.tst");
gap> LoadPackage("semigroups", false);;

#
gap> SEMIGROUPS.StartTest();

# SchutzenbergerGroup, for an L-class of an inverse op sgp
gap> S := InverseSemigroup([
>  Bipartition([[1, -4], [2, -2], [3, -3], [45, -1, -5]]),
>  Bipartition([[1, -1], [2, -3], [35, -4, -5], [4, -2]]),
>  Bipartition([[1, -4], [2, -1], [35, -3, -5], [4, -2]])],
>  rec(acting := true));;
gap> x := Bipartition([[1, -2], [2, -4], [345, -1, -3, -5]]);;
gap> L := LClass(S, x);
<Green's L-class: <block bijection: [ 1, -2 ], [ 2, -4 ], 
  [ 345, -1, -3, -5 ]>>
gap> x in L;
true
gap> SchutzenbergerGroup(L);
Group([ (2,3) ])
gap> L := GreensLClassOfElementNC(S, x, true);;
gap> x in L;
true
gap> SchutzenbergerGroup(L);
Group([ (2,3) ])

# DClassOfXClass, for an X=R/L/H-class
gap> S := InverseSemigroup([
>  Bipartition([[1, -4], [2, -2], [3, -3], [45, -1, -5]]),
>  Bipartition([[1, -1], [2, -3], [35, -4, -5], [4, -2]]),
>  Bipartition([[1, -4], [2, -1], [35, -3, -5], [4, -2]])],
>  rec(acting := true));;
gap> x := Bipartition([[1, -1], [2, -4], [3, -2], [45, -3, -5]]);;
gap> D := DClassOfLClass(LClass(S, x));
<Green's D-class: <block bijection: [ 15, -3, -5 ], [ 2, -4 ], [ 3, -2 ], 
  [ 4, -1 ]>>
gap> x in D;
true
gap> D = DClass(S, x);
true
gap> DClassOfRClass(RClass(S, x));
<Green's D-class: <block bijection: [ 1, -4 ], [ 2, -2 ], [ 3, -3 ], 
  [ 45, -1, -5 ]>>
gap> x in D;
true
gap> D = DClass(S, x);
true
gap> DClassOfHClass(HClass(S, x));
<Green's D-class: <block bijection: [ 1, -1 ], [ 2, -4 ], [ 3, -2 ], 
  [ 45, -3, -5 ]>>
gap> x in D;
true
gap> D = DClass(S, x);
true

# LClassOfHClass, for an H-class
gap> S := InverseSemigroup([
>  Bipartition([[1, -4], [2, -2], [3, -3], [45, -1, -5]]),
>  Bipartition([[1, -1], [2, -3], [35, -4, -5], [4, -2]]),
>  Bipartition([[1, -4], [2, -1], [35, -3, -5], [4, -2]])],
>  rec(acting := true));;
gap> x := Bipartition([[1, -4], [235, -2, -3, -5], [4, -1]]);;
gap> L := LClassOfHClass(HClass(S, x));
<Green's L-class: <block bijection: [ 1, -4 ], [ 235, -2, -3, -5 ], 
  [ 4, -1 ]>>
gap> L = LClass(S, x);
true

# GreensHClassOfElement, for a Green's class and an element
gap> S := InverseSemigroup([
> PartialPerm([1234], [4126]),
> PartialPerm([124], [463]),
> PartialPerm([1235], [6451])],
> rec(acting := true));;
gap> x := PartialPerm([4120]);;
gap> GreensHClassOfElement(DClass(S, x), x);
<Green's H-class: [3,2,1,4]>
gap> GreensHClassOfElement(RClass(S, x), x);
<Green's H-class: [3,2,1,4]>
gap> GreensHClassOfElement(LClass(S, x), x);
<Green's H-class: [3,2,1,4]>

# Size, for an inverse op acting D/L-class
gap> S := InverseSemigroup([
> PartialPerm([1234], [4126]),
> PartialPerm([124], [463]),
> PartialPerm([1235], [6451])],
> rec(acting := true));;
gap> x := PartialPerm([4120]);;
gap> Size(DClass(S, x));
36
gap> Size(LClass(S, x));
6

# \in, for a D-class and an element, 1
gap> S := InverseSemigroup([
>  Bipartition([[1, -4], [2, -2], [3, -3], [45, -1, -5]]),
>  Bipartition([[1, -1], [2, -3], [35, -4, -5], [4, -2]]),
>  Bipartition([[1, -4], [2, -1], [35, -3, -5], [4, -2]])],
>  rec(acting := true));;
gap> x := Bipartition([[1, -4], [235, -2, -3, -5], [4, -1]]);;
gap> D := DClass(S, x);;
gap> PartialPerm([]) in D;
false
gap> Bipartition([[1, -4], [235, -2, -3, -5], [4, -1], [6, -6]]) in D;
false
gap> Bipartition([[1, -4], [235, -2, -3, -54, -1]]) in D;
false
gap> Bipartition([[1, -4], [235, -2], [-3, -54, -1]]) in D;
false
gap> Bipartition([[1], [2, -3], [3, -4], [4, -5], [5], [-1], [-2]]) in D;
false
gap> Bipartition([[125, -1, -2, -3], [3, -4], [4, -5]]) in D;
false

# \in, for a D-class and an element, 2
gap> S := InverseSemigroup([
>   PartialPerm([123567], [571942]),
>   PartialPerm([12368], [26791]),
>   PartialPerm([123458], [714326]),
>   PartialPerm([1234579], [5381946])]);;
gap> x := PartialPerm([2457], [4167]);;
gap> D := DClass(S, x);;
gap> PartialPerm([2457], [2475]) in D;
false

# \in, for a D-class and an element, 3
gap> S := SymmetricInverseMonoid(5);
<symmetric inverse monoid of degree 5>
gap> x := S.1 * S.2 * S.1;
(1,2,4)(3,5)
gap> x := S.1 * S.2 * S.3 ;
[5,1](2)(3)(4)
gap> D := DClass(S, x);;
gap> x in D;
true

# \in, for an L-class and an element, 1
gap> S := InverseSemigroup([
>  Bipartition([[1, -4], [2, -2], [3, -3], [45, -1, -5]]),
>  Bipartition([[1, -1], [2, -3], [35, -4, -5], [4, -2]]),
>  Bipartition([[1, -4], [2, -1], [35, -3, -5], [4, -2]])],
>  rec(acting := true));;
gap> x := Bipartition([[1, -4], [235, -2, -3, -5], [4, -1]]);;
gap> L := LClass(S, x);;
gap> PartialPerm([]) in L;
false
gap> Bipartition([[1, -4], [235, -2, -3, -5], [4, -1], [6, -6]]) in L;
false
gap> Bipartition([[1, -4], [235, -2, -3, -54, -1]]) in L;
false
gap> Bipartition([[1, -4], [235, -2], [-3, -54, -1]]) in L;
false
gap> Bipartition([[1], [2, -3], [3, -4], [4, -5], [5], [-1], [-2]]) in L;
false
gap> Bipartition([[125, -1, -2, -3], [3, -4], [4, -5]]) in L;
false

# \in, for an L-class and an element, 2
gap> S := InverseSemigroup([PartialPerm([13], [43]),
>   PartialPerm([123], [412]),
>   PartialPerm([124], [451]),
>   PartialPerm([134], [521])],
> rec(acting := true));;
gap> x := PartialPerm([124], [124]);;
gap> L := LClass(S, x);;
gap> PartialPerm([456], [421]) in L;
false
gap> PartialPerm([145], [421]) in L;
false

# \in, for an L-class and an element, 3
gap> S := SymmetricInverseMonoid(5);
<symmetric inverse monoid of degree 5>
gap> x := S.1 * S.2 * S.1;
(1,2,4)(3,5)
gap> x := S.1 * S.2 * S.3 ^ 6;
<empty partial perm>
gap> x := S.1 * S.2 * S.3 ;
[5,1](2)(3)(4)
gap> L := LClass(S, x);;
gap> x in L;
true

# \in, for an L-class and an element, 4
gap> S := InverseSemigroup(PartialPerm([1348], [2784]),
> PartialPerm([123458], [769132]),
> PartialPerm([12345679], [28371596]),
> PartialPerm([1234679], [3572698]),
> PartialPerm([123469], [847536]));;
gap> x := PartialPerm([1234679], [3572698]);;
gap> y := PartialPermNC([2356789], [2356789]);;
gap> x in LClass(S, y);
true

# XClassReps: for an inverse op acting semigroup
gap> S := InverseSemigroup([
> PartialPerm([1234], [7621]),
> PartialPerm([12356], [13627]),
> PartialPerm([13467], [16354]),
> PartialPerm([12567], [67321])],
> rec(acting := true));;
gap> DClassReps(S);
[ <identity partial perm on [ 1267 ]>, 
  <identity partial perm on [ 12367 ]>, 
  <identity partial perm on [ 13456 ]>, 
  <identity partial perm on [ 67 ]>, <identity partial perm on [ 136 ]>,
  <identity partial perm on [ 2367 ]>, 
  <identity partial perm on [ 1235 ]>, <empty partial perm>, 
  <identity partial perm on [ 7 ]>, <identity partial perm on [ 237 ]> ]
gap> RClassReps(S);
[ <identity partial perm on [ 1267 ]>, [3,2,6][4,1,7], [3,6,7][5,2](1), 
  [3,7][4,6,2](1), [3,2][4,7,6](1), 
  <identity partial perm on [ 12367 ]>, [5,2,3,6,7](1), 
  [5,3](1,6,2,7), <identity partial perm on [ 13456 ]>, 
  [7,4,3,6,5](1), <identity partial perm on [ 67 ]>, [4,7][5,6], 
  [1,7][2,6], [1,7][3,6], [2,6](7), [1,6](7), [1,7](6), [2,6][4,7], [2,7](6), 
  [3,6](7), [2,7][5,6], [2,6][3,7], [3,6,7], [3,6][4,7], [4,6](7), [5,7](6), 
  [1,7][5,6], [4,7](6), [3,6][5,7], [1,7][4,6], [5,6](7), 
  <identity partial perm on [ 136 ]>, [4,3,6](1), [2,6][7,1,3], 
  [2,6,3][7,1], [2,3,6](1), [2,6][5,3](1), [7,6,1](3), [2,3,6,1], [5,6,3](1), 
  [2,6][5,3,1], [4,6,3][5,1], [5,6,3][7,1], [2,3](1,6), [7,1,6](3), 
  [4,1,6,3], [5,3,1,6], [2,1][5,3][7,6], [2,1][4,6](3), [7,6,3](1), 
  [4,6][5,3](1), [2,3][4,1,6], [5,6,1](3), [4,3,1](6), [4,1][7,3,6], 
  [4,6][7,3](1), [5,3][7,1,6], <identity partial perm on [ 2367 ]>, 
  [5,2,3,6,7], [1,6,2,7][5,3], [1,6](2,3,7), [5,7,6,3](2), 
  <identity partial perm on [ 1235 ]>, [6,3,2,5](1), [6,2][7,3,5](1), 
  [4,3][6,5,2](1), [7,1,2,3](5), [6,5,2][7,1,3], <empty partial perm>, 
  <identity partial perm on [ 7 ]>, [4,7], [3,7], [6,7], [1,7], [5,7], [2,7], 
  <identity partial perm on [ 237 ]>, [5,2,3][6,7] ]

# XClassReps: for an inverse op acting Greens class
gap> S := InverseSemigroup([
> PartialPerm([1234], [7621]),
> PartialPerm([12356], [13627]),
> PartialPerm([13467], [16354]),
> PartialPerm([12567], [67321])],
> rec(acting := true));;
gap> x := PartialPerm([13456], [13456]);;
gap> D := DClass(S, x);;
gap> RClassReps(D);
[ <identity partial perm on [ 13456 ]>, [7,4,3,6,5](1) ]
gap> HClassReps(D);
[ <identity partial perm on [ 13456 ]>, [5,6,3,4,7](1), 
  [7,4,3,6,5](1), <identity partial perm on [ 13467 ]> ]
gap> L := LClass(S, x);;
gap> HClassReps(L);
[ <identity partial perm on [ 13456 ]>, [7,4,3,6,5](1) ]

# Greens(H/L)Classes, for an inverse op acting D-class
gap> S := InverseSemigroup([
> PartialPerm([12], [32]),
> PartialPerm([14], [13]),
> PartialPerm([135], [431])],
> rec(acting := true));;
gap> GreensLClasses(S);
[ <Green's L-class: <identity partial perm on [ 23 ]>>, 
  <Green's L-class: [3,1](2)>, 
  <Green's L-class: <identity partial perm on [ 13 ]>>, 
  <Green's L-class: [3,4](1)>, <Green's L-class: [3,1,5]>, 
  <Green's L-class: [1,4](3)>, <Green's L-class: [1,5](3)>, 
  <Green's L-class: <identity partial perm on [ 134 ]>>, 
  <Green's L-class: [4,1,5](3)>, 
  <Green's L-class: <identity partial perm on [ 2 ]>>, 
  <Green's L-class: <empty partial perm>>, 
  <Green's L-class: <identity partial perm on [ 4 ]>>, 
  <Green's L-class: [4,3]>, <Green's L-class: [4,1]>, 
  <Green's L-class: [4,5]> ]
gap> x := PartialPerm([14], [51]);;
gap> GreensHClasses(DClass(S, x));
[ <Green's H-class: <identity partial perm on [ 13 ]>>, 
  <Green's H-class: [3,4](1)>, <Green's H-class: [3,1,5]>, 
  <Green's H-class: [1,4](3)>, <Green's H-class: [1,5](3)>, 
  <Green's H-class: [4,3](1)>, 
  <Green's H-class: <identity partial perm on [ 14 ]>>, 
  <Green's H-class: [4,1,5]>, <Green's H-class: [1,4,3]>, 
  <Green's H-class: [1,5][4,3]>, <Green's H-class: [5,1,3]>, 
  <Green's H-class: [5,1,4]>, 
  <Green's H-class: <identity partial perm on [ 15 ]>>, 
  <Green's H-class: [1,3][5,4]>, <Green's H-class: [1,3](5)>, 
  <Green's H-class: [4,1](3)>, <Green's H-class: [3,4,1]>, 
  <Green's H-class: [3,1][4,5]>, 
  <Green's H-class: <identity partial perm on [ 34 ]>>, 
  <Green's H-class: [4,5](3)>, <Green's H-class: [5,1](3)>, 
  <Green's H-class: [3,4][5,1]>, <Green's H-class: [3,1](5)>, 
  <Green's H-class: [5,4](3)>, 
  <Green's H-class: <identity partial perm on [ 35 ]>> ]
gap> GreensHClasses(RClass(S, x));
[ <Green's H-class: [4,3](1)>, 
  <Green's H-class: <identity partial perm on [ 14 ]>>, 
  <Green's H-class: [4,1,5]>, <Green's H-class: [1,4,3]>, 
  <Green's H-class: [1,5][4,3]> ]
gap> GreensHClasses(LClass(S, x));
[ <Green's H-class: [3,1,5]>, <Green's H-class: [4,1,5]>, 
  <Green's H-class: <identity partial perm on [ 15 ]>>, 
  <Green's H-class: [3,1][4,5]>, <Green's H-class: [3,1](5)> ]
gap> GreensHClasses(HClass(S, x));
Error, the argument is not a Green's L-, R-, or D-class

# Nr(H/R/L)Classes, for an inverse op acting semigroup
gap> S := InverseSemigroup([
> PartialPerm([12], [32]),
> PartialPerm([14], [13]),
> PartialPerm([135], [431])],
> rec(acting := true));;
gap> NrRClasses(S);
15
gap> NrLClasses(S);
15
gap> NrHClasses(S);
51

# Nr(R/L)Classes, for an inverse op acting Greens class
gap> S := InverseSemigroup([
> PartialPerm([12], [32]),
> PartialPerm([14], [13]),
> PartialPerm([135], [431])],
> rec(acting := true));;
gap> x := PartialPerm([134], [531]);;
gap> D := DClass(S, x);;
gap> NrRClasses(D);
2
gap> NrLClasses(D);
2
gap> NrHClasses(D);
4
gap> L := LClass(S, x);;
gap> NrHClasses(L);
2
gap> R := LClass(S, x);;
gap> NrHClasses(R);
2

# GroupHClassOfGreensDClass, for an inverse op acting D-class
gap> S := InverseSemigroup([
> PartialPerm([12], [32]),
> PartialPerm([14], [13]),
> PartialPerm([135], [431])],
> rec(acting := true));;
gap> GroupHClassOfGreensDClass(DClass(S, PartialPerm([])));
<Green's H-class: <empty partial perm>>
gap> GroupHClassOfGreensDClass(DClass(S, PartialPerm([35], [41])));
<Green's H-class: <identity partial perm on [ 13 ]>>

# PartialOrderOfDClasses, for an inverse op acting semigroup
gap> S := SymmetricInverseSemigroup(5);;
gap> S := InverseSemigroup(S, rec(acting := true));;
gap> OutNeighbours(DigraphReflexiveTransitiveReduction(
> PartialOrderOfDClasses(S)));
[ [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [  ] ]

# (Nr)Idempotents, for an inv op acting R/L/D-class
gap> S := InverseSemigroup([
>   Bipartition([[1, -4], [2456, -1, -2, -5, -6], [3, -3]]),
>   Bipartition([[1, -4], [2, -1], [3, -2], [456, -3, -5, -6]]),
>   Bipartition([[1, -4], [2, -5], [356, -2, -3, -6], [4, -1]]),
>   Bipartition([[1, -5], [256, -3, -4, -6], [3, -2], [4, -1]])],
> rec(acting := true));;
gap> x := Bipartition([[1256, -2, -4, -5, -6], [3, -3], [4, -1]]);;
gap> NrIdempotents(HClass(S, x));
0
gap> Idempotents(HClass(S, x));
[  ]
gap> NrIdempotents(RClass(S, x));
1
gap> Idempotents(RClass(S, x));
[ <block bijection: [ 1256, -1, -2, -5, -6 ], [ 3, -3 ], [ 4, -4 ]> ]
gap> NrIdempotents(LClass(S, x));
1
gap> Idempotents(LClass(S, x));
[ <block bijection: [ 1, -1 ], [ 2456, -2, -4, -5, -6 ], [ 3, -3 ]> ]
gap> NrIdempotents(DClass(S, x));
9
gap> Idempotents(DClass(S, x));
[ <block bijection: [ 1256, -1, -2, -5, -6 ], [ 3, -3 ], [ 4, -4 ]>, 
  <block bijection: [ 1, -1 ], [ 2456, -2, -4, -5, -6 ], [ 3, -3 ]>, 
  <block bijection: [ 1356, -1, -3, -5, -6 ], [ 2, -2 ], [ 4, -4 ]>, 
  <block bijection: [ 1, -1 ], [ 2346, -2, -3, -4, -6 ], [ 5, -5 ]>, 
  <block bijection: [ 1, -1 ], [ 2356, -2, -3, -5, -6 ], [ 4, -4 ]>, 
  <block bijection: [ 1, -1 ], [ 2, -2 ], [ 3456, -3, -4, -5, -6 ]>, 
  <block bijection: [ 1236, -1, -2, -3, -6 ], [ 4, -4 ], [ 5, -5 ]>, 
  <block bijection: [ 1456, -1, -4, -5, -6 ], [ 2, -2 ], [ 3, -3 ]>, 
  <block bijection: [ 1346, -1, -3, -4, -6 ], [ 2, -2 ], [ 5, -5 ]> ]

# (Nr)Idempotents, for an inverse op acting semigroup
gap> S := InverseSemigroup(SymmetricInverseSemigroup(5),
> rec(acting := true));;
gap> Idempotents(S, 3);
[ <identity partial perm on [ 123 ]>, 
  <identity partial perm on [ 345 ]>, 
  <identity partial perm on [ 234 ]>, 
  <identity partial perm on [ 245 ]>, 
  <identity partial perm on [ 145 ]>, 
  <identity partial perm on [ 134 ]>, 
  <identity partial perm on [ 235 ]>, 
  <identity partial perm on [ 135 ]>, 
  <identity partial perm on [ 125 ]>, 
  <identity partial perm on [ 124 ]> ]
gap> Length(last) = Binomial(53);
true
gap> S := InverseSemigroup([
>  PartialPerm([123], [134]),
>  PartialPerm([123], [253]),
>  PartialPerm([1234], [2415]),
>  PartialPerm([135], [513])],
> rec(acting := true));;
gap> NrIdempotents(S);
25
gap> Idempotents(S);
[ <identity partial perm on [ 134 ]>, 
  <identity partial perm on [ 235 ]>, 
  <identity partial perm on [ 1245 ]>, 
  <identity partial perm on [ 135 ]>, 
  <identity partial perm on [ 123 ]>, 
  <identity partial perm on [ 1234 ]>, 
  <identity partial perm on [ 14 ]>, <identity partial perm on [ 23 ]>, 
  <identity partial perm on [ 125 ]>, <identity partial perm on [ 15 ]>,
  <identity partial perm on [ 3 ]>, <identity partial perm on [ 34 ]>, 
  <identity partial perm on [ 35 ]>, <identity partial perm on [ 13 ]>, 
  <identity partial perm on [ 2 ]>, <identity partial perm on [ 25 ]>, 
  <identity partial perm on [ 245 ]>, <identity partial perm on [ 12 ]>,
  <identity partial perm on [ 124 ]>, <identity partial perm on [ 1 ]>, 
  <identity partial perm on [ 5 ]>, <empty partial perm>, 
  <identity partial perm on [ 24 ]>, <identity partial perm on [ 4 ]>, 
  <identity partial perm on [ 45 ]> ]
gap> Length(Idempotents(S)) = NrIdempotents(S);
true
gap> Idempotents(S, 4);
[ <identity partial perm on [ 1245 ]>, 
  <identity partial perm on [ 1234 ]> ]
gap> Idempotents(S, -1);
Error, the 2nd argument (an int) is not non-negative

# IteratorOfRClassReps
gap> S := InverseSemigroup(SymmetricInverseSemigroup(5),
> rec(acting := true));;
gap> it := IteratorOfRClassReps(S);
<iterator>
gap> NextIterator(it);
<identity partial perm on [ 12345 ]>
gap> NextIterator(it);
<identity partial perm on [ 1234 ]>
gap> for x in it do od;
gap> IsDoneIterator(it);
true
gap> RClassReps(S);;
gap> it := IteratorOfRClassReps(S);
<iterator>
gap> NextIterator(it);
<identity partial perm on [ 12345 ]>
gap> NextIterator(it);
<identity partial perm on [ 1234 ]>
gap> for x in it do od;
gap> IsDoneIterator(it);
true

# Enumerator for an L-class
gap> S := InverseSemigroup(SymmetricInverseSemigroup(5),
> rec(acting := true));;
gap> x := PartialPerm([1235], [2435]);
[1,2,4](3)(5)
gap> L := LClass(S, x);
<Green's L-class: [1,2,4](3)(5)>
gap> en := Enumerator(L);
<enumerator of <Green's L-class: [1,2,4](3)(5)>>
gap> ForAll(en, x -> en[Position(en, x)] = x);
true
gap> ForAll([1 .. Length(en)], i -> Position(en, en[i]) = i);
true
gap> Position(en, PartialPerm([123], [523]));
fail
gap> S := InverseSemigroup(PartialPerm([123], [231]),
> rec(acting := true));
<partial perm group of rank 3 with 1 generator>
gap> x := PartialPerm([123]);
<identity partial perm on [ 123 ]>
gap> y := PartialPerm([124], [123]);
[4,3](1)(2)
gap> en := Enumerator(LClass(S, x));;
gap> Position(en, y);
fail
gap> en[10000];
fail

# Enumerator for a D-class
gap> S := InverseSemigroup(SymmetricInverseSemigroup(5),
> rec(acting := true));;
gap> x := PartialPerm([1235], [2435]);
[1,2,4](3)(5)
gap> D := DClass(S, x);
<Green's D-class: [1,2,4](3)(5)>
gap> en := Enumerator(D);
<enumerator of <Green's D-class: [1,2,4](3)(5)>>
gap> ForAll(en, x -> en[Position(en, x)] = x);
true
gap> ForAll([1 .. Length(en)], i -> Position(en, en[i]) = i);
true
gap> Position(en, PartialPerm([123], [523]));
fail
gap> S := InverseSemigroup(PartialPerm([123], [231]),
> rec(acting := true));
<partial perm group of rank 3 with 1 generator>
gap> x := PartialPerm([123]);
<identity partial perm on [ 123 ]>
gap> y := PartialPerm([124], [123]);
[4,3](1)(2)
gap> en := Enumerator(DClass(S, x));
<enumerator of <Green's D-class: <identity partial perm on [ 123 ]>>>
gap> Position(en, y ^ -1);
fail
gap> Position(en, y);
fail
gap> en[10000];
fail

# Iterator for an L-class
gap> S := InverseSemigroup(SymmetricInverseSemigroup(5),
> rec(acting := true));;
gap> x := PartialPerm([1235], [2435]);
[1,2,4](3)(5)
gap> L := LClass(S, x);
<Green's L-class: [1,2,4](3)(5)>
gap> it := Iterator(L);
<iterator>
gap> for x in it do Assert(0, x in L); od;
gap> L := LClass(S, x);
<Green's L-class: [1,5,2,3,4]>
gap> AsSSortedList(L);;
gap> Iterator(L);
<iterator>


gap> SEMIGROUPS.StopTest();
gap> STOP_TEST("Semigroups package: standard/greens/acting-inverse.tst");

[Dauer der Verarbeitung: 0.28 Sekunden, vorverarbeitet 2026-06-05]