Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 1902

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<?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">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap4.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chap6.html">Next Chapter</a>&nbsp;  </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">&nbsp;</span><a href="chap5.html#X7DFB63A97E67C0A1">5.1 <span class="Heading">Introduction</span></a>
</div>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap5.html#X86E50CE27AB1317A">5.2 <span class="Heading">Property Tests</span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7AFA23AF819FBF3D">5.2-1 IsCompletelyRegularSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X836F4692839F4874">5.2-2 <span class="Heading">IsSimpleSemigroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X852F29E8795FA489">5.2-3 IsGroupAsSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X843EFDA4807FDC31">5.2-4 IsCommutativeSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7C4663827C5ACEF1">5.2-5 IsRegularSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X83F1529479D56665">5.2-6 IsInverseSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X81DE11987BB81017">5.2-7 IsCliffordSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7C8DB14587D1B55A">5.2-8 IsBand</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7E9B674D781B072C">5.2-9 IsRectangularBand</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X8434E7C287DBFE1B">5.2-10 IsSemiBand</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7935C476808C8773">5.2-11 IsOrthodoxSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7CB099958658F979">5.2-12 IsRightZeroSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7E9261367C8C52C0">5.2-13 IsLeftZeroSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X81A1882181B75CC9">5.2-14 IsZeroSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X85F7E5CD86F0643B">5.2-15 IsZeroGroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</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">&gt; 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&gt; gens:=[ Transformation( [ 1, 2, 4, 3, 6, 5, 4 ] ), 
  &gt;  Transformation( [ 1, 2, 5, 6, 3, 4, 5 ] ), 
  &gt;  Transformation( [ 2, 1, 2, 2, 2, 2, 2 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; IsCompletelyRegularSemigroup(S);
  true
  gap&gt; S:=RandomSemigroup(5,5);;
  gap&gt; 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">&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 2 ] ), 
  &gt;  Transformation( [ 1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 3 ] ), 
  &gt;  Transformation( [ 1, 7, 3, 9, 5, 11, 7, 1, 9, 3, 11, 5, 5 ] ), 
  &gt;  Transformation( [ 7, 7, 9, 9, 11, 11, 1, 1, 3, 3, 5, 5, 7 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; IsSimpleSemigroup(S);
  true
  gap&gt; IsCompletelySimpleSemigroup(S);
  true
  gap&gt; S:=RandomSemigroup(5,5);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), 
  &gt;  Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 2, 4, 5, 3, 7, 8, 6, 9, 1 ] ), 
  &gt;  Transformation( [ 3, 5, 6, 7, 8, 1, 9, 2, 4 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; IsCommutativeSemigroup(S);
  true
  gap&gt; 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">&gt; 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&gt; 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">&gt; 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&gt; gens:=[Transformation([1,2,4,5,6,3,7,8]),
  &gt; Transformation([3,3,4,5,6,2,7,8]),
  &gt;Transformation([1,2,5,3,6,8,4,4])];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[Transformation([1,2,4,5,6,3,7,8]),
  &gt; Transformation([3,3,4,5,6,2,7,8]),
  &gt;Transformation([1,2,5,3,6,8,4,4])];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 1 ] ), 
  &gt; Transformation( [ 2, 2, 2, 5, 5, 5, 8, 8, 8, 2 ] ), 
  &gt; Transformation( [ 3, 3, 3, 6, 6, 6, 9, 9, 9, 3 ] ), 
  &gt; Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 4 ] ), 
  &gt; Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 7 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 1 ] ), 
  &gt; Transformation( [ 2, 2, 2, 5, 5, 5, 8, 8, 8, 2 ] ), 
  &gt; Transformation( [ 3, 3, 3, 6, 6, 6, 9, 9, 9, 3 ] ), 
  &gt; Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 4 ] ), 
  &gt; Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 7, 7 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; S:=FullTransformationSemigroup(4);;
  gap&gt; x:=Transformation( [ 1, 2, 3, 1 ] );;
  gap&gt; D:=GreensDClassOfElement(S, x);;
  gap&gt; T:=Semigroup(Elements(D));;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 1, 1, 1, 4, 5, 4 ] ), 
  &gt;  Transformation( [ 1, 2, 3, 1, 1, 2 ] ), 
  &gt;  Transformation( [ 1, 2, 3, 1, 1, 3 ] ), 
  &gt;  Transformation( [ 5, 5, 5, 5, 5, 5 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), 
  &gt;  Transformation( [ 3, 2, 3, 1, 1 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; IsRightZeroSemigroup(S);
  false
  gap&gt; gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), 
  &gt;  Transformation( [ 1, 2, 4, 4, 1 ] )];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 2, 1, 4, 3, 5 ] ), 
  &gt;  Transformation( [ 3, 2, 3, 1, 1 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; IsRightZeroSemigroup(S);
  false
  gap&gt; gens:=[Transformation( [ 1, 2, 3, 3, 1 ] ), 
  &gt; Transformation( [ 1, 2, 3, 3, 3 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 4, 7, 6, 3, 1, 5, 3, 6, 5, 9 ] ), 
  &gt; Transformation( [ 5, 3, 5, 1, 9, 3, 8, 7, 4, 3 ] ), 
  &gt; Transformation( [ 5, 10, 10, 1, 7, 6, 6, 8, 7, 7 ] ), 
  &gt; Transformation( [ 7, 4, 3, 3, 2, 2, 3, 2, 9, 3 ] ), 
  &gt; Transformation( [ 8, 1, 3, 4, 9, 6, 3, 7, 1, 6 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; 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">&gt; 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&gt; S:=ZeroGroup(DihedralGroup(10));;
  gap&gt; iso:=IsomorphismTransformationSemigroup(S);;
  gap&gt; T:=Range(iso);;
  gap&gt; 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">&gt; 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&gt; gens:=[ Transformation( [ 1, 4, 2, 6, 6, 5, 2 ] ), 
  &gt; Transformation( [ 1, 6, 3, 6, 2, 1, 6 ] ) ];;
  gap&gt; S:=Semigroup(gens);;
  gap&gt; MultiplicativeZero(S);
  Transformation( [ 1, 1, 1, 1, 1, 1, 1 ] )
</pre></td></tr></table>


<div class="chlinkprevnextbot">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap4.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chap6.html">Next Chapter</a>&nbsp;  </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>