SSL properties.xml
Interaktion und PortierbarkeitXML
#############################################################################
##
#W properties.xml
#Y Copyright (C) 2011-13 James D. Mitchell
##
## Licensing information can be found in the README file of this package.
##
#############################################################################
##
<#GAPDoc Label="IsRectangularGroup">
<ManSection>
<Prop Name="IsRectangularGroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
A semigroup is <E>rectangular group</E> if it is the direct product of a
group and a rectangular band. Or equivalently, if it is orthodox and simple.
<Example><![CDATA[
gap> G := AsSemigroup(IsTransformationSemigroup, MathieuGroup(11));
<transformation group of size 7920, degree 11 with 2 generators>
gap> R := RectangularBand(3, 2);
<regular transformation semigroup of size 6, degree 6 with 3
generators>
gap> S := DirectProduct(G, R);;
gap> IsRectangularGroup(R);
true
gap> IsRectangularGroup(G);
true
gap> IsRectangularGroup(S);
true
gap> IsRectangularGroup(JonesMonoid(3));
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsUnitRegularMonoid">
<ManSection>
<Prop Name="IsUnitRegularMonoid" Arg="S"/>
<Returns><K>true</K> if the semigroup <A>S</A> is unit regular
and <K>false</K> if it is not.
</Returns>
<Description>
A monoid is <E>unit regular</E> if and only if for every <C>>x</C> in
<A>S</A> there exists an element <C>y</C> in the group of units of
<A>S</A> such that <C>x*y*x=x</C>.
<#GAPDoc Label="IsBand">
<ManSection>
<Prop Name="IsBand" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsBand</C> returns <K>true</K> if every element of the semigroup
<A>S</A> is an idempotent and <K>false</K> if it is not. An inverse
semigroup is band if and only if it is a semilattice; see
<Ref Prop="IsSemilattice"/>.
<#GAPDoc Label="IsBlockGroup">
<ManSection>
<Prop Name = "IsBlockGroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsBlockGroup</C> returns <K>true</K> if the semigroup <A>S</A> is a
block group and <K>false</K> if it is not.<P/>
A semigroup <A>S</A> is a <E>block group</E> if every &L;-class and every
&R;-class of <A>S</A> contains at most one idempotent. Every semigroup
of partial permutations is a block group.
<Example><![CDATA[
gap> S := Semigroup(Transformation([5, 6, 7, 3, 1, 4, 2, 8]),
> Transformation([3, 6, 8, 5, 7, 4, 2, 8]));;
gap> IsBlockGroup(S);
true
gap> S := Semigroup(
> Transformation([2, 1, 10, 4, 5, 9, 7, 4, 8, 4]),
> Transformation([10, 7, 5, 6, 1, 3, 9, 7, 10, 2]));;
gap> IsBlockGroup(S);
false
gap> S := Semigroup(PartialPerm([1, 2], [5, 4]),
> PartialPerm([1, 2, 3], [1, 2, 5]),
> PartialPerm([1, 2, 3], [2, 1, 5]),
> PartialPerm([1, 3, 4], [3, 1, 2]),
> PartialPerm([1, 3, 4, 5], [5, 4, 3, 2]));;
gap> T := AsSemigroup(IsBlockBijectionSemigroup, S);
<block bijection semigroup of degree 6 with 5 generators>
gap> IsBlockGroup(T);
true
gap> IsBlockGroup(AsSemigroup(IsBipartitionSemigroup, S));
true
gap> S := Semigroup(
> Bipartition([[1, -2], [2, -3], [3, -4], [4, -1]]),
> Bipartition([[1, -2], [2, -1], [3, -3], [4, -4]]),
> Bipartition([[1, 2, -3], [3, -1, -2], [4, -4]]),
> Bipartition([[1, -1], [2, -2], [3, -3], [4, -4]]));;
gap> IsBlockGroup(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsBrandtSemigroup">
<ManSection>
<Prop Name = "IsBrandtSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsBrandtSemigroup</C> return <K>true</K> if the semigroup <A>S</A> is
a finite 0-simple inverse semigroup, and <K>false</K> if it is not. See
also <Ref Prop = "IsZeroSimpleSemigroup"/> and <Ref
Prop = "IsInverseSemigroup" BookName = "ref" />.
<Example><![CDATA[
gap> S := Semigroup(
> Transformation([2, 8, 8, 8, 8, 8, 8, 8]),
> Transformation([5, 8, 8, 8, 8, 8, 8, 8]),
> Transformation([8, 3, 8, 8, 8, 8, 8, 8]),
> Transformation([8, 6, 8, 8, 8, 8, 8, 8]),
> Transformation([8, 8, 1, 8, 8, 8, 8, 8]),
> Transformation([8, 8, 8, 1, 8, 8, 8, 8]),
> Transformation([8, 8, 8, 8, 4, 8, 8, 8]),
> Transformation([8, 8, 8, 8, 8, 7, 8, 8]),
> Transformation([8, 8, 8, 8, 8, 8, 2, 8]));;
gap> IsBrandtSemigroup(S);
true
gap> T := Range(IsomorphismPartialPermSemigroup(S));;
gap> IsBrandtSemigroup(T);
true
gap> S := DualSymmetricInverseMonoid(4);;
gap> D := DClass(S,
> Bipartition([[1, 2, 3, -1, -2, -3], [4, -4]]));;
gap> R := InjectionPrincipalFactor(D);;
gap> S := Semigroup(PreImages(R, GeneratorsOfSemigroup(Range(R))));;
gap> IsBrandtSemigroup(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsCliffordSemigroup">
<ManSection>
<Prop Name = "IsCliffordSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsCliffordSemigroup</C> returns <K>true</K> if the semigroup <A>S</A>
is regular and its idempotents are central, and <K>false</K> if it is
not.
<Example><![CDATA[
gap> S := Semigroup(Transformation([1, 2, 4, 5, 6, 3, 7, 8]),
> Transformation([3, 3, 4, 5, 6, 2, 7, 8]),
> Transformation([1, 2, 5, 3, 6, 8, 4, 4]));;
gap> IsCliffordSemigroup(S);
true
gap> T := Range(IsomorphismPartialPermSemigroup(S));;
gap> IsCliffordSemigroup(S);
true
gap> S := DualSymmetricInverseMonoid(5);;
gap> T := IdempotentGeneratedSubsemigroup(S);;
gap> IsCliffordSemigroup(T);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsCommutativeSemigroup">
<ManSection>
<Prop Name = "IsCommutativeSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsCommutativeSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is commutative and <K>false</K> if it is not. The function <Ref
Prop = "IsCommutative" BookName = "ref"/> can also be used to test if a
semigroup is commutative.<P/>
A semigroup <A>S</A> is <E>commutative</E> if
<C>x * y = y * x</C> for all <C>x, y</C> in <A>S</A>.
<#GAPDoc Label="IsCompletelyRegularSemigroup">
<ManSection>
<Prop Name = "IsCompletelyRegularSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsCompletelyRegularSemigroup</C> returns <K>true</K> if every element
of the semigroup <A>S</A> is contained in a subgroup of <A>S</A>.<P/>
An inverse semigroup is completely regular if and only if it is a
Clifford semigroup; see <Ref Prop = "IsCliffordSemigroup"/>.
<#GAPDoc Label="IsRTrivial">
<ManSection><Heading>IsXTrivial</Heading>
<Prop Name = "IsRTrivial" Arg = "S"/>
<Prop Name = "IsLTrivial" Arg = "S"/>
<Prop Name = "IsHTrivial" Arg = "S"/>
<Prop Name = "IsDTrivial" Arg = "S"/>
<Prop Name = "IsAperiodicSemigroup" Arg = "S"/>
<Prop Name = "IsCombinatorialSemigroup" Arg = "S"/>
<Returns>
<K>true</K> or <K>false</K>.
</Returns>
<Description>
<C>IsXTrivial</C> returns <K>true</K> if Green's &R;-relation,
&L;-relation, &H;-relation, &D;-relation, respectively, on the
semigroup <A>S</A> is trivial and <K>false</K> if it is not.
These properties can also be applied to a Green's class instead of a
semigroup where applicable.
<P/>
For inverse semigroups, the properties of being
&R;-trivial, &L;-trivial, &D;-trivial, and a semilattice are equivalent;
see <Ref Prop="IsSemilattice"/>.
<P/>
A semigroup is <E>aperiodic</E> if its contains no non-trivial
subgroups (equivalently, all of its group &H;-classes
are trivial). A finite semigroup is aperiodic if and only if it is
&H;-trivial. <P/>
<E>Combinatorial</E> is a synonym for aperiodic in this context.
<Example><![CDATA[
gap> S := Semigroup(
> Transformation([1, 5, 1, 3, 7, 10, 6, 2, 7, 10]),
> Transformation([4, 4, 5, 6, 7, 7, 7, 4, 3, 10]));;
gap> IsHTrivial(S);
true
gap> Size(S);
108
gap> IsRTrivial(S);
false
gap> IsLTrivial(S);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsEUnitaryInverseSemigroup">
<ManSection>
<Prop Name = "IsEUnitaryInverseSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
As described in Section 5.9 of <Cite Key="Howie1995aa"/>, an inverse semigroup
<A>S</A> with semilattice of idempotents <A>E</A> is <E>E-unitary</E> if
for
<Alt Not = "Text">
<Display>
s \in S\textrm{ and }e \in E\textrm{: }es \in E \Rightarrow s \in E.
</Display>
</Alt>
<Alt Only = "Text">
for s in S and e in E, es in E implies s in E.
</Alt><P/>
Equivalently, <A>S</A> is <E>E-unitary</E> if <A>E</A> is closed in the
natural partial order (see Proposition 5.9.1 in <Cite Key="Howie1995aa"/>):
<Alt Not = "Text">
<Display>
\textrm{for } s \in S\textrm{ and }e \in E\textrm{: }e \le s \Rightarrow s
\in E.
</Display>
</Alt>
<Alt Only = "Text">
for s in S and e in E, e less than s implies s in E.
</Alt><P/>
This condition is equivalent to <A>E</A> being majorantly closed in
<A>S</A>. See <Ref Attr = "IdempotentGeneratedSubsemigroup"/> and <Ref
Oper = "IsMajorantlyClosed"/>.
Hence an inverse semigroup of partial permutations, block bijections or
partial permutation bipartitions is <E>E-unitary</E> if and only if the
idempotent semilattice is majorantly closed.
<Example><![CDATA[
gap> S := InverseSemigroup(
> PartialPerm([1, 2, 3, 4], [2, 3, 1, 6]),
> PartialPerm([1, 2, 3, 5], [3, 2, 1, 6]));;
gap> IsEUnitaryInverseSemigroup(S);
true
gap> e := IdempotentGeneratedSubsemigroup(S);;
gap> ForAll(Difference(S, e), x -> not ForAny(e, y -> y * x in e));
true
gap> T := InverseSemigroup([
> PartialPerm([1, 3, 4, 6, 8], [2, 5, 10, 7, 9]),
> PartialPerm([1, 2, 3, 5, 6, 7, 8], [5, 8, 9, 2, 10, 1, 3]),
> PartialPerm([1, 2, 3, 5, 6, 7, 9], [9, 8, 4, 1, 6, 7, 2])]);;
gap> IsEUnitaryInverseSemigroup(T);
false
gap> U := InverseSemigroup([
> PartialPerm([1, 2, 3, 4, 5], [2, 3, 4, 5, 1]),
> PartialPerm([1, 2, 3, 4, 5], [2, 1, 3, 4, 5])]);;
gap> IsEUnitaryInverseSemigroup(U);
true
gap> IsGroupAsSemigroup(U);
true
gap> StructureDescription(U); "S5"]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsFactorisableInverseMonoid">
<ManSection>
<Prop Name = "IsFactorisableInverseMonoid" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
An inverse monoid is <E>factorisable</E> if every element is the product
of an element of the group of units and an idempotent; see also
<Ref Attr = "GroupOfUnits"/> and <Ref Attr = "Idempotents"/>. Hence an
inverse semigroup of partial permutations is factorisable if and only if
each of its generators is the restriction of some element in the group of
units.
<#GAPDoc Label="IsGroupAsSemigroup">
<ManSection>
<Prop Name = "IsGroupAsSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsGroupAsSemigroup</C> returns <K>true</K> if and only if the
semigroup <A>S</A> is mathematically a group.
<Example><![CDATA[
gap> S := Semigroup(Transformation([2, 4, 5, 3, 7, 8, 6, 9, 1]),
> Transformation([3, 5, 6, 7, 8, 1, 9, 2, 4]));;
gap> IsGroupAsSemigroup(S);
true
gap> G := SymmetricGroup(5);;
gap> IsGroupAsSemigroup(G);
true
gap> S := AsSemigroup(IsPartialPermSemigroup, G);
<partial perm group of size 120, rank 5 with 2 generators>
gap> IsGroupAsSemigroup(S);
true
gap> G := SymmetricGroup([1, 2, 10]);;
gap> T := AsSemigroup(IsBlockBijectionSemigroup, G);
<inverse block bijection semigroup of size 6, degree 11 with 2
generators>
gap> IsGroupAsSemigroup(T);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsIdempotentGenerated">
<ManSection><Heading>IsIdempotentGenerated</Heading>
<Prop Name = "IsIdempotentGenerated" Arg = "S"/>
<Prop Name = "IsSemiband" Arg = "S"/>
<Returns>
<K>true</K> or <K>false</K>.
</Returns>
<Description>
<C>IsIdempotentGenerated</C> and <C>IsSemiband</C> return
<K>true</K> if the semigroup <A>S</A> is generated by its idempotents and
<K>false</K> if it is not. See also <Ref Attr = "Idempotents"/> and
<Ref Attr = "IdempotentGeneratedSubsemigroup"/>. <P/>
An inverse semigroup is idempotent-generated if and only if it is a
semilattice; see <Ref Prop = "IsSemilattice"/>.<P/>
The terms semiband and idempotent-generated are synonymous in this
context.
<Example><![CDATA[
gap> S := SingularTransformationSemigroup(4);
<regular transformation semigroup ideal of degree 4 with 1 generator>
gap> IsIdempotentGenerated(S);
true
gap> S := SingularBrauerMonoid(5);
<regular bipartition *-semigroup ideal of degree 5 with 1 generator>
gap> IsIdempotentGenerated(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsInverseSemigroup">
<ManSection>
<Prop Name="IsInverseSemigroup" Arg="S"/>
<Prop Name="IsInverseMonoid" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
If <A>S</A> is a semigroup, then <C>IsInverseSemigroup</C> returns
<K>true</K> if <A>S</A> is an inverse semigroup and <K>false</K> if it is
not. If <A>S</A> is monoid, then <C>IsInverseMonoid</C> returns <K>true</K>
if <A>S</A> is an inverse monoid and <K>false</K> if it is not.<P/>
A semigroup is an <E>inverse semigroup</E> if every element
<C>x</C> has a unique semigroup inverse, that is, a unique element <C>y</C> such that <C>x * y * x = x</C> and <C>y * x * y = y</C>.
<#GAPDoc Label="IsLeftSimple">
<ManSection>
<Prop Name = "IsLeftSimple" Arg = "S"/>
<Prop Name = "IsRightSimple" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsLeftSimple</C> and <C>IsRightSimple</C> returns <K>true</K> if the
semigroup <A>S</A> has only one &L;-class or one &R;-class,
respectively, and returns <K>false</K> if it has more than one. <P/>
<#GAPDoc Label="IsLeftZeroSemigroup">
<ManSection>
<Prop Name="IsLeftZeroSemigroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsLeftZeroSemigroup</C> returns <K>true</K> if the semigroup <A>S</A>
is a left zero semigroup and <K>false</K> if it is not. <P/>
A semigroup is a <E>left zero semigroup</E> if <C>x*y=x</C> for
all <C>x,y</C>. An inverse semigroup is a left zero semigroup if and only
if it is trivial.
<#GAPDoc Label="IsMonogenicSemigroup">
<ManSection>
<Prop Name = "IsMonogenicSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsMonogenicSemigroup</C> returns <K>true</K> if the semigroup <A>S</A>
is monogenic and it returns <K>false</K> if it is not. <P/>
<#GAPDoc Label="IsMonogenicInverseSemigroup">
<ManSection>
<Prop Name = "IsMonogenicInverseSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsMonogenicInverseSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is a monogenic inverse semigroup and it returns <K>false</K> if
it is not. <P/>
A inverse semigroup is <E>monogenic</E> if it is generated as an inverse
semigroup by a single element. See also <Ref Prop = "IsMonogenicSemigroup"/> and <Ref Prop = "IsMonogenicInverseMonoid"/>.
<Example><![CDATA[
gap> x := PartialPerm([1, 2, 3, 6, 8, 10], [2, 6, 7, 9, 1, 5]);;
gap> S := InverseSemigroup(x, x ^ 2, x ^ 3);;
gap> IsMonogenicSemigroup(S);
false
gap> IsMonogenicInverseSemigroup(S);
true
gap> x := RandomBlockBijection(100);;
gap> S := InverseSemigroup(x, x ^ 2, x ^ 20);;
gap> IsMonogenicInverseSemigroup(S);
true
gap> S := SymmetricInverseSemigroup(5);;
gap> IsMonogenicInverseSemigroup(S);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsMonogenicMonoid">
<ManSection>
<Prop Name = "IsMonogenicMonoid" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsMonogenicMonoid</C> returns <K>true</K> if the monoid <A>S</A> is a
monogenic monoid and it returns <K>false</K> if it is not. <P/>
A monoid is <E>monogenic</E> if it is generated as a monoid by a single element. See also <Ref Prop = "IsMonogenicSemigroup"/> and <Ref Prop = "IsMonogenicInverseMonoid"/>.
<Example><![CDATA[
gap> x := PartialPerm([1, 2, 3, 6, 8, 10], [2, 6, 7, 9, 1, 5]);;
gap> S := Monoid(x, x ^ 2, x ^ 3);;
gap> IsMonogenicSemigroup(S);
false
gap> IsMonogenicMonoid(S);
true
gap> S := FullTransformationMonoid(5);;
gap> IsMonogenicMonoid(S);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsMonogenicInverseMonoid">
<ManSection>
<Prop Name = "IsMonogenicInverseMonoid" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsMonogenicInverseMonoid</C> returns <K>true</K> if the monoid
<A>S</A> is a monogenic inverse monoid and it returns <K>false</K> if
it is not. <P/>
A inverse monoid is <E>monogenic</E> if it is generated as an inverse
monoid by a single element. See also <Ref Prop = "IsMonogenicInverseSemigroup"/> and <Ref Prop = "IsMonogenicMonoid"/>.
<Example><![CDATA[
gap> x := PartialPerm([1, 2, 3, 6, 8, 10], [2, 6, 7, 9, 1, 5]);;
gap> S := InverseMonoid(x, x ^ 2, x ^ 3);;
gap> IsMonogenicMonoid(S);
false
gap> IsMonogenicInverseSemigroup(S);
false
gap> IsMonogenicInverseMonoid(S);
true
gap> x := RandomBlockBijection(100);;
gap> S := InverseMonoid(x, x ^ 2, x ^ 20);;
gap> IsMonogenicInverseMonoid(S);
true
gap> S := SymmetricInverseMonoid(5);;
gap> IsMonogenicInverseMonoid(S);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsMonoidAsSemigroup">
<ManSection>
<Prop Name = "IsMonoidAsSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsMonoidAsSemigroup</C> returns <K>true</K> if and only if the
semigroup <A>S</A> is mathematically a monoid, i.e. if and only if it
contains a <Ref Meth = "MultiplicativeNeutralElement" BookName = "ref"/>.
<P/>
It is possible that a semigroup which satisfies
<C>IsMonoidAsSemigroup</C> is not in the &GAP; category <Ref
Prop = "IsMonoid" BookName = "ref"/>. This is possible if the <Ref
Meth = "MultiplicativeNeutralElement" BookName = "ref"/> of <A>S</A> is not
equal to the <Ref Attr = "One" BookName = "ref"/> of any element in <A>S</A>.
Therefore a semigroup satisfying <C>IsMonoidAsSemigroup</C> may not
possess the attributes of a monoid (such as, <Ref
Attr = "GeneratorsOfMonoid" BookName = "ref"/>).<P/>
<#GAPDoc Label="IsOrthodoxSemigroup">
<ManSection>
<Prop Name = "IsOrthodoxSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsOrthodoxSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is orthodox and <K>false</K> if it is not.<P/>
A semigroup is <E>orthodox</E> if it is regular and its idempotent
elements form a subsemigroup. Every inverse semigroup is also an
orthodox semigroup.<P/>
See also <Ref Prop="IsRegularSemigroup"/> and
<Ref Prop="IsRegularSemigroup" BookName="ref"/>.
<#GAPDoc Label="IsRectangularBand">
<ManSection>
<Prop Name = "IsRectangularBand" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsRectangularBand</C> returns <K>true</K> if the semigroup <A>S</A>
is a rectangular band and <K>false</K> if it is not.<P/>
A semigroup <A>S</A> is a <E>rectangular band</E> if for all
<M>x, y, z</M> in <A>S</A>
we have that <M>x ^ 2 = x</M> and <M>xyz = xz</M>.<P/>
Equivalently, <A>S</A> is a <E>rectangular band</E> if
<A>S</A> is isomorphic to a semigroup of the form
<M>I \times \Lambda</M> with multiplication
<M>(i, \lambda)(j, \mu) = (i, \mu)</M>.
In this case, <A>S</A> is called an
<M>|I| \times |\Lambda|</M> <E>rectangular band</E>.<P/>
An inverse semigroup is a rectangular band if and only if it is a group.
<Example><![CDATA[
gap> S := Semigroup(
> Transformation([1, 1, 1, 4, 4, 4, 7, 7, 7, 1]),
> Transformation([2, 2, 2, 5, 5, 5, 8, 8, 8, 2]),
> Transformation([3, 3, 3, 6, 6, 6, 9, 9, 9, 3]),
> Transformation([1, 1, 1, 4, 4, 4, 7, 7, 7, 4]),
> Transformation([1, 1, 1, 4, 4, 4, 7, 7, 7, 7]));;
gap> IsRectangularBand(S);
true
gap> IsRectangularBand(MinimalIdeal(PartitionMonoid(4)));
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsRegularSemigroup">
<ManSection>
<Prop Name = "IsRegularSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsRegularSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is regular and <K>false</K> if it is not. <P/>
A semigroup <C>S</C> is <E>regular</E> if for all <C>x</C> in <C>S</C>
there exists <C>y</C> in <C>S</C> such that <C>x * y * x = x</C>. Every
inverse semigroup is regular, and a semigroup of partial permutations is
regular if and only if it is an inverse semigroup.<P/>
See also <Ref Prop = "IsRegularDClass" BookName = "ref"/>,
<Ref Prop = "IsRegularGreensClass"/>,
and <Ref Func = "IsRegularSemigroupElement" BookName = "ref"/>.
<#GAPDoc Label="IsRightZeroSemigroup">
<ManSection>
<Prop Name = "IsRightZeroSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsRightZeroSemigroup</C> returns <K>true</K> if the <A>S</A> is a
right zero semigroup and <K>false</K> if it is not.<P/>
A semigroup <C>S</C> is a <E>right zero semigroup</E> if <C>x * y = y</C>
for all <C>x, y</C> in <C>S</C>. An inverse semigroup is a right zero
semigroup if and only if it is trivial.
<Example><![CDATA[
gap> S := Semigroup(Transformation([2, 1, 4, 3, 5]),
> Transformation([3, 2, 3, 1, 1]));;
gap> IsRightZeroSemigroup(S);
false
gap> S := Semigroup(Transformation([1, 2, 3, 3, 1]),
> Transformation([1, 2, 4, 4, 1]));;
gap> IsRightZeroSemigroup(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsSemigroupWithClosedIdempotents">
<ManSection>
<Prop Name = "IsSemigroupWithClosedIdempotents" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsSemigroupWithClosedIdempotents</C> returns <K>true</K> if the
idempotents of the semigroup <A>S</A> form a subsemigroup of <A>S</S>,
and <K>false</K> if they do not.
<Example><![CDATA[
gap> x := Transformation([2, 2]);;
gap> y := Transformation([1, 3, 3]);;
gap> S := Semigroup(x, y);
<transformation semigroup of degree 3 with 2 generators>
gap> IsSemigroupWithClosedIdempotents(S);
true
gap> S := FullTransformationMonoid(4);
<full transformation monoid of degree 4>
gap> IsSemigroupWithClosedIdempotents(S);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsSemigroupWithCommutingIdempotents">
<ManSection>
<Prop Name = "IsSemigroupWithCommutingIdempotents" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsSemigroupWithCommutingIdempotents</C> returns <K>true</K> if the
idempotents
of the semigroup <A>S</A> commute, and <K>false</K> if they do not. Note
that such an semigroup is also a block group; see <Ref
Prop="IsBlockGroup"/>. <P/>
Note that the idempotents commute in any inverse semigroup, in any
semigroup of partial permutations, and in any semigroup of block
bijections.
<Example><![CDATA[
gap> x := Transformation([2, 2]);;
gap> y := Transformation([1, 3, 3]);;
gap> S := Semigroup(x, y);
<transformation semigroup of degree 3 with 2 generators>
gap> IsSemigroupWithCommutingIdempotents(S);
true
gap> S := FullTransformationMonoid(4);
<full transformation monoid of degree 4>
gap> IsSemigroupWithCommutingIdempotents(S);
false
gap> W := Semigroup([
> Bipartition([[1, 2, 3, -1, -2, -4], [4, -3]]),
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]])]);
<block bijection semigroup of degree 4 with 2 generators>
gap> IsSemigroupWithCommutingIdempotents(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsSemilattice">
<ManSection>
<Prop Name = "IsSemilattice" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsSemilattice</C> returns <K>true</K> if the semigroup
<A>S</A> is a semilattice and <K>false</K> if it is not. <P/>
A semigroup is a <E>semilattice</E> if it is commutative and every element is an idempotent. The idempotents of an inverse semigroup form a
semilattice.
<Example><![CDATA[
gap> S := Semigroup(Transformation([2, 5, 1, 7, 3, 7, 7]),
> Transformation([3, 6, 5, 7, 2, 1, 7]));;
gap> Size(S);
631
gap> IsInverseSemigroup(S);
true
gap> A := Semigroup(Idempotents(S));
<transformation semigroup of degree 7 with 32 generators>
gap> IsSemilattice(A);
true
gap> S := FactorisableDualSymmetricInverseMonoid(5);;
gap> S := IdempotentGeneratedSubsemigroup(S);;
gap> IsSemilattice(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsSimpleSemigroup">
<ManSection><Heading>IsSimpleSemigroup</Heading>
<Prop Name="IsSimpleSemigroup" Arg="S"/>
<Prop Name="IsCompletelySimpleSemigroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsSimpleSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is simple and <K>false</K> if it is not.<P/>
A semigroup is <E>simple</E> if it has no proper 2-sided ideals. A
semigroup is <E>completely simple</E> if it is simple and possesses
minimal left and right ideals. A finite semigroup is simple if and only
if it is completely simple. An inverse semigroup is simple if and only
if it is a group.
<Example><![CDATA[
gap> S := Semigroup(
> Transformation([2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 2]),
> Transformation([1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 3]),
> Transformation([1, 7, 3, 9, 5, 11, 7, 1, 9, 3, 11, 5, 5]),
> Transformation([7, 7, 9, 9, 11, 11, 1, 1, 3, 3, 5, 5, 7]));;
gap> IsSimpleSemigroup(S);
true
gap> IsCompletelySimpleSemigroup(S);
true
gap> IsSimpleSemigroup(MinimalIdeal(BrauerMonoid(6)));
true
gap> R := Range(IsomorphismReesMatrixSemigroup(
> MinimalIdeal(BrauerMonoid(6))));
<Rees matrix semigroup 15x15 over Group(())>]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsZeroGroup">
<ManSection>
<Prop Name="IsZeroGroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsZeroGroup</C> returns <K>true</K> if the semigroup
<A>S</A> is a zero group and <K>false</K> if it is not.<P/>
A semigroup <C>S</C> is a <E>zero group</E> if there exists an element <C>z</C> in <C>S</C> such that <C>S</C> without <C>z</C> is a
group and <C>x*z=z*x=z</C> for all <C>x</C> in <C>S</C>.
Every zero group is an inverse semigroup.
<Example><![CDATA[
gap> S := Semigroup(Transformation([2, 2, 3, 4, 6, 8, 5, 5, 9]),
> Transformation([3, 3, 8, 2, 5, 6, 4, 4, 9]),
> ConstantTransformation(9, 9));;
gap> IsZeroGroup(S);
true
gap> T := Range(IsomorphismPartialPermSemigroup(S));;
gap> IsZeroGroup(T);
true
gap> IsZeroGroup(JonesMonoid(2));
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsZeroRectangularBand">
<ManSection>
<Prop Name = "IsZeroRectangularBand" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsZeroRectangularBand</C> returns <K>true</K> if the semigroup
<A>S</A> is a zero rectangular band and <K>false</K> if it is not.<P/>
A semigroup is a <E>0-rectangular band</E> if it is 0-simple and
&H;-trivial; see also <Ref Prop="IsZeroSimpleSemigroup"/>
and <Ref Prop="IsHTrivial"/>.
An inverse semigroup is a 0-rectangular band if and only if it is a
0-group; see <Ref Prop="IsZeroGroup"/>.
<Example><![CDATA[
gap> S := Semigroup(
> Transformation([1, 3, 7, 9, 1, 12, 13, 1, 15, 9, 1, 18, 1, 1, 13,
> 1, 1, 21, 1, 1, 1, 1, 1, 25, 26, 1]),
> Transformation([1, 5, 1, 5, 11, 1, 1, 14, 1, 16, 17, 1, 1, 19, 1,
> 11, 1, 1, 1, 23, 1, 16, 19, 1, 1, 1]),
> Transformation([1, 4, 8, 1, 10, 1, 8, 1, 1, 1, 10, 1, 8, 10, 1, 1,
> 20, 1, 22, 1, 8, 1, 1, 1, 1, 1]),
> Transformation([1, 6, 6, 1, 1, 1, 6, 1, 1, 1, 1, 1, 6, 1, 6, 1, 1,
> 6, 1, 1, 24, 1, 1, 1, 1, 6]));;
gap> D := DClass(S,
> Transformation([1, 8, 1, 1, 8, 1, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1]));;
gap> IsZeroRectangularBand(Semigroup(D));
true
gap> IsZeroRectangularBand(Semigroup(GreensDClasses(S)[1]));
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsZeroSemigroup">
<ManSection>
<Prop Name = "IsZeroSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsZeroSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is a zero semigroup and <K>false</K> if it is not.<P/>
A semigroup <C>S</C> is a <E>zero semigroup</E> if there exists an element <C>z</C> in <C>S</C> such that <C>x*y=z</C> for all <C>x,y</C>
in <C>S</C>. An inverse semigroup is a zero semigroup if and only if it
is trivial.
<#GAPDoc Label="IsZeroSimpleSemigroup">
<ManSection>
<Prop Name = "IsZeroSimpleSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsZeroSimpleSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is 0-simple and <K>false</K> if it is not.<P/>
A semigroup is a <E>0-simple</E> if it has no two-sided ideals other than
itself and the set containing the zero element; see also <Ref
Attr = "MultiplicativeZero"/>. An inverse semigroup is 0-simple if and
only if it is a Brandt semigroup; see <Ref Prop = "IsBrandtSemigroup"/>.
<#GAPDoc Label="IsCongruenceFreeSemigroup">
<ManSection>
<Prop Name = "IsCongruenceFreeSemigroup" Arg = "S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
<C>IsCongruenceFreeSemigroup</C> returns <K>true</K> if the semigroup
<A>S</A> is a congruence-free semigroup and <K>false</K> if it is
not.<P/>
A semigroup <A>S</A> is <E>congruence-free</E> if it has no non-trivial
proper congruences.<P/>
A semigroup with zero is congruence-free if and only if it is isomorphic
to a regular Rees 0-matrix semigroup <C>R</C> whose underlying semigroup
is the trivial group, no two rows of the matrix of <C>R</C> are identical,
and no two columns are identical; see Theorem 3.7.1 in
<Cite Key = "Howie1995aa"/>.<P/>
A semigroup without zero is congruence-free if and only if it is a simple
group or has order 2; see Theorem 3.7.2 in <Cite Key = "Howie1995aa"/>.
<#GAPDoc Label="IsSemigroupWithAdjoinedZero">
<ManSection>
<Prop Name="IsSemigroupWithAdjoinedZero" Arg="S"/>
<Returns><K>true</K> or <K>false</K>. </Returns>
<Description>
<C>IsSemigroupWithAdjoinedZero</C> returns <K>true</K> if the semigroup
<A>S</A> can be expressed as the disjoint union of subsemigroups
<M><A>S</A> \setminus \{ 0 \}</M> and <M>\{ 0 \}</M> (where <M>0</M> is
the <Ref Attr="MultiplicativeZero"/> of <A>S</A>). <P/>
If this is not the case, then either <A>S</A> lacks a multiplicative
zero, or the set <M><A>S</A> \setminus \{ 0 \}</M> is not a subsemigroup
of <A>S</A>, and so <C>IsSemigroupWithAdjoinedZero</C> returns
<K>false</K>.
<#GAPDoc Label="IsSurjectiveSemigroup">
<ManSection>
<Prop Name="IsSurjectiveSemigroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
A semigroup is <E>surjective</E> if each of its elements can be written as
a product of two elements in the semigroup.
<C>IsSurjectiveSemigroup(<A>S</A>)</C> returns <K>true</K> if the
semigroup <A>S</A> is surjective, and <K>false</K> if it is not. <P/>
See also <Ref Attr="IndecomposableElements" />. <P/>
Note that every monoid, and every regular semigroup, is surjective.
<Example><![CDATA[
gap> S := FullTransformationMonoid(100);
<full transformation monoid of degree 100>
gap> IsSurjectiveSemigroup(S);
true
gap> F := FreeSemigroup(3);;
gap> P := F / [[F.1, F.2 * F.1], [F.3 ^ 3, F.3]];
<fp semigroup with 3 generators and 2 relations of length 10>
gap> IsSurjectiveSemigroup(P);
false
gap> I := SingularTransformationMonoid(5);
<regular transformation semigroup ideal of degree 5 with 1 generator>
gap> IsSurjectiveSemigroup(I);
true
gap> M := MonogenicSemigroup(IsBipartitionSemigroup, 3, 2);
<commutative non-regular block bijection semigroup of size 4,
degree 6 with 1 generator>
gap> IsSurjectiveSemigroup(M);
false]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
<#GAPDoc Label="IsSelfDualSemigroup">
<ManSection>
<Prop Name="IsSelfDualSemigroup" Arg="S"/>
<Returns><K>true</K> or <K>false</K>.</Returns>
<Description>
Returns <K>true</K> if the semigroup <A>S</A> is self dual and
<K>false</K> otherwise.
<P/>
A semigroup is <E>self dual</E> if it is isomorphic to its dual,
that is, the semigroup <C>T</C> with multiplication <C>*</C> defined
by <C>x*y=yx</C> where <C>yx</C> denotes the product in <A>S</A>.
<Example><![CDATA[
gap> F := FreeSemigroup("a", "b");
<free semigroup on the generators [ a, b ]>
gap> AssignGeneratorVariables(F);
gap> R := [[a ^ 3, a], [b ^ 2, b], [(a * b) ^ 2, a]];
[ [ a^3, a ], [ b^2, b ], [ (a*b)^2, a ] ]
gap> S := F / R;
<fp semigroup with 2 generators and 3 relations of length 14>
gap> IsSelfDualSemigroup(S);
false
gap> IsSelfDualSemigroup(FreeBand(3));
true
gap> S := DualSymmetricInverseMonoid(3);
<inverse block bijection monoid of degree 3 with 3 generators>
gap> IsSelfDualSemigroup(S);
true]]></Example>
</Description>
</ManSection>
<#/GAPDoc>
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.56Angebot
Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.