<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>GAP (MONOID) - Chapter 5: Properties of Semigroups</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="generator" content="GAPDoc2HTML" /> <link rel="stylesheet" type="text/css" href="manual.css" /> </head> <body> <div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <div class="chlinkprevnexttop"> <a href="chap0.html">Top of Book</a> <a href="chap4.html">Previous Chapter</a> <a href="chap6.html">Next Chapter</a> </div> <p><a id="X78274024827F306D" name="X78274024827F306D"></a></p> <div class="ChapSects"><a href="chap5.html#X78274024827F306D">5 <span class="Heading">Properties of Semigroups</span></a> <div class="ContSect"><span class="nocss"> </span><a href="chap5.html#X7DFB63A97E67C0A1">5.1 <span class="Heading">Introduction</span></a> </div> <div class="ContSect"><span class="nocss"> </span><a href="chap5.html#X86E50CE27AB1317A">5.2 <span class="Heading">Property Tests</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7AFA23AF819FBF3D">5.2-1 IsCompletelyRegularSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X836F4692839F4874">5.2-2 <span class="Heading">IsSimpleSemigroup</span></a> </span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X852F29E8795FA489">5.2-3 IsGroupAsSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X843EFDA4807FDC31">5.2-4 IsCommutativeSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7C4663827C5ACEF1">5.2-5 IsRegularSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X83F1529479D56665">5.2-6 IsInverseSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X81DE11987BB81017">5.2-7 IsCliffordSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7C8DB14587D1B55A">5.2-8 IsBand</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E9B674D781B072C">5.2-9 IsRectangularBand</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X8434E7C287DBFE1B">5.2-10 IsSemiBand</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7935C476808C8773">5.2-11 IsOrthodoxSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7CB099958658F979">5.2-12 IsRightZeroSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E9261367C8C52C0">5.2-13 IsLeftZeroSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X81A1882181B75CC9">5.2-14 IsZeroSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X85F7E5CD86F0643B">5.2-15 IsZeroGroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B39F93C8136D642">5.2-16 MultiplicativeZero</a></span> </div> </div> <h3>5 <span class="Heading">Properties of Semigroups</span></h3> <p><a id="X7DFB63A97E67C0A1" name="X7DFB63A97E67C0A1"></a></p> <h4>5.1 <span class="Heading">Introduction</span></h4> <p>In this section we give the theoretical results and the corresponding <strong class="pkg">GAP</strong> functions that can be used to determine whether a set of transformations generates a semigroup of a given type. Let <code class="code">S</code> be a semigroup. Then</p> <ul> <li><p><code class="code">S</code> is a <em>left zero semigroup</em> if <code class="code">xy=x</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> </li> <li><p><code class="code">S</code> is a <em>right zero semigroup</em> if <code class="code">xy=y</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> </li> <li><p><code class="code">S</code> is <em>commutative</em> if <code class="code">xy=yx</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> </li> <li><p><code class="code">S</code> is <em>simple</em> if it has no proper two-sided ideals.</p> </li> <li><p><code class="code">S</code> is <em>regular</em> if for all <code class="code">x</code> in <code class="code">S</code> there exists <code class="code">y</code> in <code class="code">S</code> such that <code class="code">xyx=x</code>.</p> </li> <li><p><code class="code">S</code> is <em>completely regular</em> if every element of <code class="code">S</code> lies in a subgroup.</p> </li> <li><p><code class="code">S</code> is an <em>inverse semigroup</em> if for all elements <code class="code">x</code> in <code class="code">S</code> there exists a unique semigroup inverse, that is, a unique element <code class="code">y</code> such that <code class="code">xyx=x</code> and <code class="code">yxy=y</code>.</p> </li> <li><p><code class="code">S</code> is a <em>Clifford semigroup</em> if it is a regular semigroup whose idempotents are central, that is, for all <code class="code">e</code> in <code class="code">S</code> with <code class="code">e^2=e</code> and <code class="code">x</code> in <code class="code">S</code> we have that <code class="code">ex=xe</code>.</p> </li> <li><p><code class="code">S</code> is a <em>band</em> if every element is an idempotent, that is, <code class="code">x^2=x</code> for all <code class="code">x</code> in <code class="code">S</code>.</p> </li> <li><p><code class="code">S</code> is a <em>rectangular band</em> if for all <code class="code">x,y,z</code> in <code class="code">S</code> we have that <code class="code">x^2=x</code> and <code class="code">xyz=xz</code>.</p> </li> <li><p><code class="code">S</code> is a <em>semiband</em> if it is generated by its idempotent elements, that is, elements satisfying <code class="code">x^2=x</code>.</p> </li> <li><p><code class="code">S</code> is an <em>orthodox semigroup</em> if its idempotents (elements satisfying <code class="code">x^2=x</code>) form a subsemigroup.</p> </li> <li><p><code class="code">S</code> is a <em>zero semigroup</em> if there exists an element <code class="code">0</code> in <code class="code">S</code> such that <code class="code">xy=0</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> </li> <li><p><code class="code">S</code> is a <em>zero group</em> if there exists an element <code class="code">0</code> in <code class="code">S</code> such that <code class="code">S</code> without <code class="code">0</code> is a group and for all <code class="code">x</code> in <code class="code">S</code> we have that <code class="code">x0=0x=0</code>.</p> </li> </ul> <p>The following results provide efficient methods to determine if an arbitrary transformation semigroup is a left zero, right zero, simple, completely regular, inverse or Clifford semigroup. Proofs of these results can be found in <a href="chapBib.html#biBlargest">[GM05]</a>.</p> <p>Let <code class="code">S</code> be a semigroup generated by a set of transformations <code class="code">U</code> on a finite set. Then the following hold:</p> <ul> <li><p><code class="code">S</code> is a left zero semigroup if and only if for all <code class="code">f, g</code> in <code class="code">U</code> the image of <code class="code">f</code> equals the image of <code class="code">g</code> and <code class="code">f^2=f</code>.</p> </li> <li><p><code class="code">S</code> is a right zero semigroup if and only if for all <code class="code">f, g</code> in <code class="code">U</code> the kernel of <code class="code">f</code> equals the kernel of <code class="code">g</code> and <code class="code">f^2=f</code>.</p> </li> <li><p><code class="code">S</code> is simple if and only if for all <code class="code">f, g</code> in <code class="code">U</code> every class of the kernel of <code class="code">f</code> contains exactly <code class="code">1</code> element of the image of <code class="code">g</code>.</p> </li> <li><p><code class="code">S</code> is completely regular if and only if for all <code class="code">f</code> in <code class="code">U</code> and <code class="code">g</code> in <code class="code">S</code>, every class of the kernel of <code class="code">f</code> contains at most <code class="code">1</code> element of the set found by applying <code class="code">g</code> to the image of <code class="code">f</code>.</p> </li> <li><p><code class="code">S</code> is inverse if and only if it is regular and there is a bijection <code class="code">\phi</code> from the set of kernels of elements of <code class="code">S</code> to the set of images of elements of <code class="code">S</code> such that every class of a kernel <code class="code">K</code> contains exactly <code class="code">1</code> element in <code class="code">(K)\phi</code>.</p> </li> <li><p><code class="code">S</code> is a Clifford semigroup if and only if for all <code class="code">f, g</code> in <code class="code">U</code></p> <ul> <li><p><code class="code">f</code> permutes its image</p> </li> <li><p><code class="code">f</code> commutes with the power of <code class="code">g</code> that acts as the identity on its image.</p> </li> </ul> </li> </ul> <p>It is straightforward to verify that a transformation semigroup <code class="code">S</code> generated by <code class="code">U</code> is a group if and only if for all <code class="code">f, g</code> in <code class="code">U</code></p> <ul> <li><p>the kernel of <code class="code">f</code> equals the kernel of <code class="code">g</code>.</p> </li> <li><p>the image of <code class="code">f</code> equals the image of <code class="code">g</code>.</p> </li> <li><p><code class="code">f</code> permutes its image.</p> </li> </ul> <p>At first glance it might not be obvious why these conditions are an improvement over the original definitions. The main point is that it can be easily determined whether a semigroup <code class="code">S</code> generated by a set <code class="code">U</code> of mappings satisfies these conditions by considering the generators <code class="code">U</code> and their action on the underlying set only.</p> <p><a id="X86E50CE27AB1317A" name="X86E50CE27AB1317A"></a></p> <h4>5.2 <span class="Heading">Property Tests</span></h4> <p><a id="X7AFA23AF819FBF3D" name="X7AFA23AF819FBF3D"></a></p> <h5>5.2-1 IsCompletelyRegularSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsCompletelyRegularSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is completely regular and <code class="code">false</code> otherwise.</p> <p>A semigroup is <em>completely regular</em> if every element is contained in a subgroup.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 1, 2, 4, 3, 6, 5, 4 ] ), > Transformation( [ 1, 2, 5, 6, 3, 4, 5 ] ), > Transformation( [ 2, 1, 2, 2, 2, 2, 2 ] ) ];; gap> S:=Semigroup(gens);; gap> IsCompletelyRegularSemigroup(S); true gap> S:=RandomSemigroup(5,5);; gap> IsSimpleSemigroup(S); false </pre></td></tr></table> <p><a id="X836F4692839F4874" name="X836F4692839F4874"></a></p> <h5>5.2-2 <span class="Heading">IsSimpleSemigroup</span></h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsSimpleSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsCompletelySimpleSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is simple and <code class="code">false</code> otherwise.</p> <p>A semigroup is <em>simple</em> if it has no proper 2-sided ideals. A semigroup is <em>completely simple</em> if it is simple and possesses minimal left and right ideals. A finite semigroup is simple if and only if it is completely simple.</p> <table class="example"> <tr><td><pre> gap> gens:=[ 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> S:=Semigroup(gens);; gap> IsSimpleSemigroup(S); true gap> IsCompletelySimpleSemigroup(S); true gap> S:=RandomSemigroup(5,5);; gap> IsSimpleSemigroup(S); false </pre></td></tr></table> <p><a id="X852F29E8795FA489" name="X852F29E8795FA489"></a></p> <h5>5.2-3 IsGroupAsSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsGroupAsSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a group and <code class="code">false</code> otherwise.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), > Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];; gap> S:=Semigroup(gens);; gap> IsGroupAsSemigroup(S); true </pre></td></tr></table> <p><a id="X843EFDA4807FDC31" name="X843EFDA4807FDC31"></a></p> <h5>5.2-4 IsCommutativeSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsCommutativeSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is commutative and <code class="code">false</code> otherwise. The function <code class="func">IsCommutative</code> (<a href="/Users/jdm/Maths/Computation/GAP/gapdev/doc/ref/chap33.html#X830A4A4C795FBC2D"><b>Reference: IsCommutative</b></a>) can also be used to test if a semigroup is commutative.</p> <p>A semigroup <code class="code">S</code> is <em>commutative</em> if <code class="code">xy=yx</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), > Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];; gap> S:=Semigroup(gens);; gap> IsCommutativeSemigroup(S); true gap> IsCommutative(S); true </pre></td></tr></table> <p><a id="X7C4663827C5ACEF1" name="X7C4663827C5ACEF1"></a></p> <h5>5.2-5 IsRegularSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsRegularSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a regular semigroup and <code class="code">false</code> otherwise. The algorithm used here is essentially the same algorithm as that used for <code class="func">GreensRClasses</code> (<a href="/Users/jdm/Maths/Computation/GAP/gapdev/doc/ref/chap49.html#X844D20467A644811"><b>Reference: GreensRClasses</b></a>) in <strong class="pkg">MONOID</strong>. If <code class="code">S</code> is regular, then <code class="code">S</code> will have the attribute <code class="code">GreensRClasses</code> after <code class="code">IsRegularSemigroup</code> is invoked.</p> <p>A semigroup <code class="code">S</code> is <em>regular</em> if for all <code class="code">x</code> in <code class="code">S</code> there exists <code class="code">y</code> in <code class="code">S</code> such that <code class="code">xyx=x</code>.</p> <table class="example"> <tr><td><pre> gap> IsRegularSemigroup(FullTransformationSemigroup(5)); true </pre></td></tr></table> <p><a id="X83F1529479D56665" name="X83F1529479D56665"></a></p> <h5>5.2-6 IsInverseSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsInverseSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is an inverse semigroup and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is an <em>inverse semigroup</em> if every element <code class="code">x</code> in <code class="code">S</code> has a unique semigroup inverse, that is, a unique element <code class="code">y</code> such that <code class="code">xyx=x</code> and <code class="code">yxy=y</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[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> S:=Semigroup(gens);; gap> IsInverseSemigroup(S); true </pre></td></tr></table> <p><a id="X81DE11987BB81017" name="X81DE11987BB81017"></a></p> <h5>5.2-7 IsCliffordSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsCliffordSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a Clifford semigroup and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>Clifford semigroup</em> if it is a regular semigroup whose idempotents are central, that is, for all <code class="code">e</code> in <code class="code">S</code> with <code class="code">e^2=e</code> and <code class="code">x</code> in <code class="code">S</code> we have that <code class="code">ex=xe</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[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> S:=Semigroup(gens);; gap> IsCliffordSemigroup(S); true </pre></td></tr></table> <p><a id="X7C8DB14587D1B55A" name="X7C8DB14587D1B55A"></a></p> <h5>5.2-8 IsBand</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsBand</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a band and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>band</em> if every element is an idempotent, that is, <code class="code">x^2=x</code> for all <code class="code">x</code> in <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ 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> S:=Semigroup(gens);; gap> IsBand(S); true </pre></td></tr></table> <p><a id="X7E9B674D781B072C" name="X7E9B674D781B072C"></a></p> <h5>5.2-9 IsRectangularBand</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsRectangularBand</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a rectangular band and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>rectangular band</em> if for all <code class="code">x,y,z</code> in <code class="code">S</code> we have that <code class="code">x^2=x</code> and <code class="code">xyz=xz</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ 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> S:=Semigroup(gens);; gap> IsRectangularBand(S); true </pre></td></tr></table> <p><a id="X8434E7C287DBFE1B" name="X8434E7C287DBFE1B"></a></p> <h5>5.2-10 IsSemiBand</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsSemiBand</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a semiband and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>semiband</em> if it is generated by its idempotent elements, that is, elements satisfying <code class="code">x^2=x</code>.</p> <table class="example"> <tr><td><pre> gap> S:=FullTransformationSemigroup(4);; gap> x:=Transformation( [ 1, 2, 3, 1 ] );; gap> D:=GreensDClassOfElement(S, x);; gap> T:=Semigroup(Elements(D));; gap> IsSemiBand(T); true </pre></td></tr></table> <p><a id="X7935C476808C8773" name="X7935C476808C8773"></a></p> <h5>5.2-11 IsOrthodoxSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsOrthodoxSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is orthodox and <code class="code">false</code> otherwise.</p> <p>A semigroup is an <em>orthodox semigroup</em> if its idempotent elements form a subsemigroup.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 1, 1, 1, 4, 5, 4 ] ), > Transformation( [ 1, 2, 3, 1, 1, 2 ] ), > Transformation( [ 1, 2, 3, 1, 1, 3 ] ), > Transformation( [ 5, 5, 5, 5, 5, 5 ] ) ];; gap> S:=Semigroup(gens);; gap> IsOrthodoxSemigroup(S); true </pre></td></tr></table> <p><a id="X7CB099958658F979" name="X7CB099958658F979"></a></p> <h5>5.2-12 IsRightZeroSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsRightZeroSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a right zero semigroup and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>right zero semigroup</em> if <code class="code">xy=y</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), > Transformation( [ 3, 2, 3, 1, 1 ] ) ];; gap> S:=Semigroup(gens);; gap> IsRightZeroSemigroup(S); false gap> gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), > Transformation( [ 1, 2, 4, 4, 1 ] )];; gap> S:=Semigroup(gens);; gap> IsRightZeroSemigroup(S); true </pre></td></tr></table> <p><a id="X7E9261367C8C52C0" name="X7E9261367C8C52C0"></a></p> <h5>5.2-13 IsLeftZeroSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsLeftZeroSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a left zero semigroup and <code class="code">false</code> otherwise.</p> <p>A semigroup <code class="code">S</code> is a <em>left zero semigroup</em> if <code class="code">xy=x</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), > Transformation( [ 3, 2, 3, 1, 1 ] ) ];; gap> S:=Semigroup(gens);; gap> IsRightZeroSemigroup(S); false gap> gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), > Transformation( [ 1, 2, 3, 3, 3 ] ) ];; gap> S:=Semigroup(gens);; gap> IsLeftZeroSemigroup(S); true </pre></td></tr></table> <p><a id="X81A1882181B75CC9" name="X81A1882181B75CC9"></a></p> <h5>5.2-14 IsZeroSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsZeroSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a zero semigroup or if <code class="code">S</code> was created using the <code class="func">ZeroSemigroup</code> (<a href="chap6.html#X801FC1D97D832A6F"><b>6.2-1</b></a>) command. Otherwise <code class="code">false</code> is returned.</p> <p>A semigroup <code class="code">S</code> is a <em>zero semigroup</em> if there exists an element <code class="code">0</code> in <code class="code">S</code> such that <code class="code">xy=0</code> for all <code class="code">x,y</code> in <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 4, 7, 6, 3, 1, 5, 3, 6, 5, 9 ] ), > Transformation( [ 5, 3, 5, 1, 9, 3, 8, 7, 4, 3 ] ), > Transformation( [ 5, 10, 10, 1, 7, 6, 6, 8, 7, 7 ] ), > Transformation( [ 7, 4, 3, 3, 2, 2, 3, 2, 9, 3 ] ), > Transformation( [ 8, 1, 3, 4, 9, 6, 3, 7, 1, 6 ] ) ];; gap> S:=Semigroup(gens);; gap> IsZeroSemigroup(S); false </pre></td></tr></table> <p><a id="X85F7E5CD86F0643B" name="X85F7E5CD86F0643B"></a></p> <h5>5.2-15 IsZeroGroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsZeroGroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns <code class="code">true</code> if the transformation semigroup <code class="code">S</code> is a zero group or if <code class="code">S</code> was created using the <code class="func">ZeroGroup</code> (<a href="chap6.html#X81E319198527F824"><b>6.2-3</b></a>) command. Otherwise <code class="code">false</code> is returned.</p> <p>A semigroup <code class="code">S</code> <code class="code">S</code> is a <em>zero group</em> if there exists an element <code class="code">0</code> in <code class="code">S</code> such that <code class="code">S</code> without <code class="code">0</code> is a group and for all <code class="code">x</code> in <code class="code">S</code> we have that <code class="code">x0=0x=0</code>.</p> <table class="example"> <tr><td><pre> gap> S:=ZeroGroup(DihedralGroup(10));; gap> iso:=IsomorphismTransformationSemigroup(S);; gap> T:=Range(iso);; gap> IsZeroGroup(T); true </pre></td></tr></table> <p><a id="X7B39F93C8136D642" name="X7B39F93C8136D642"></a></p> <h5>5.2-16 MultiplicativeZero</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MultiplicativeZero</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>returns the multiplicative zero of the transformation semigroup <code class="code">S</code> if it has one and returns <code class="code">fail</code> otherwise.</p> <table class="example"> <tr><td><pre> gap> gens:=[ Transformation( [ 1, 4, 2, 6, 6, 5, 2 ] ), > Transformation( [ 1, 6, 3, 6, 2, 1, 6 ] ) ];; gap> S:=Semigroup(gens);; gap> MultiplicativeZero(S); Transformation( [ 1, 1, 1, 1, 1, 1, 1 ] ) </pre></td></tr></table> <div class="chlinkprevnextbot"> <a href="chap0.html">Top of Book</a> <a href="chap4.html">Previous Chapter</a> <a href="chap6.html">Next Chapter</a> </div> <div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <hr /> <p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p> </body> </html>