Green( sg, string )
Let (S,cdot) be a semigroup and a in S. The set a cdot S^1 := a cdot S cup {a} is called the principal right ideal generated by a. Analogously, S^1 cdot a := S cdot a cup {a} is called the principal left ideal generated by a and S^1 cdot a cdot S^1 := S cdot a cdot S cup S cdot a cup a cdot S cup {a} is called the principal ideal generated by a.
Now, Green's equivalence relation {cal L} on S is defined as: (a,b) in {cal L}: Leftrightarrow S^1 cdot a = S^1 cdot b i.e. a and b generate the same principal left ideal. Similarly: (a,b) in {cal R}: Leftrightarrow a cdot S^1 = b cdot S^1 i.e. a and b generate the same principal right ideal and (a,b) in {cal J}: Leftrightarrow S^1 cdot a cdot S^1 = S^1 cdot b cdot S^1 i.e. a and b generate the same principal ideal. {cal H} is defined as the intersection of {cal L} and {cal R} and {cal D} is defined as the join of {cal L} and {cal R}.
In a finite semigroup, {cal D} = {cal J}.
The arguments of the function Green
are a finite transformation
semigroup sg and a one character string string where
string must be one of the following: "L"
, "R"
,
"D"
, "J"
, "H"
. The return value of Green
is
a list of lists of elements of sg representing the equivalence
classes of the according Green's relation.
gap> s; TransformationSemigroup( Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ) ) gap> Elements( s ); [ Transformation( [ 1, 2, 3 ], [ 1, 1, 1 ] ), Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ), Transformation( [ 1, 2, 3 ], [ 1, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 3 ] ), Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ), Transformation( [ 1, 2, 3 ], [ 3, 3, 3 ] ) ] gap> Green( s, "L" ); [ [ Transformation( [ 1, 2, 3 ], [ 1, 1, 1 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 3, 3, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ) ] ] gap> Green( s, "R" ); [ [ Transformation( [ 1, 2, 3 ], [ 1, 1, 1 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ), Transformation( [ 1, 2, 3 ], [ 1, 2, 2 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 2, 2, 2 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 2, 2, 3 ] ), Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 3, 3, 3 ] ) ] ] gap> Green( s, "H" ); [ [ Transformation( [ 1, 2, 3 ], [ 1, 1, 1 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 2, 2 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 2, 2, 2 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 2, 2, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 3, 3, 3 ] ) ] ] gap> Green( s, "D" ); [ [ Transformation( [ 1, 2, 3 ], [ 1, 1, 1 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 3, 3, 3 ] ) ], [ Transformation( [ 1, 2, 3 ], [ 1, 1, 2 ] ), Transformation( [ 1, 2, 3 ], [ 1, 2, 2 ] ), Transformation( [ 1, 2, 3 ], [ 2, 2, 3 ] ), Transformation( [ 1, 2, 3 ], [ 2, 3, 3 ] ) ] ]
GAP 3.4.4