<p>In this chapter we describe the various ways that an ideal of a semigroup can be created and manipulated in <strong class="pkg">Semigroups</strong>.</p>
<p>We write <em>ideal</em> to mean two-sided ideal everywhere in this chapter.</p>
<p>The methods in the <strong class="pkg">Semigroups</strong> package apply to any ideal of a semigroup that is created using the function <code class="func">SemigroupIdeal</code> (<a href="chap9_mj.html#X78E15B0184A1DC14"><span class="RefLink">9.1-1</span></a>) or <code class="code">SemigroupIdealByGenerators</code>. Anything that can be calculated for a semigroup defined by a generating set can also be found for an ideal. This works particularly well for regular ideals, since such an ideal can be represented using a similar data structure to that used to represent a semigroup defined by a generating set but without the necessity to find a generating set for the ideal. Many methods for non-regular ideals rely on first finding a generating set for the ideal, which can be costly (but not nearly as costly as an exhaustive enumeration of the elements of the ideal). We plan to improve the functionality of <strong class="pkg">Semigroups</strong> for non-regular ideals in the future.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupIdeal</code>( <var class="Arg">S</var>, <var class="Arg">obj1</var>, <var class="Arg">obj2</var>, <var class="Arg">..</var>, <var class="Arg">.</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An ideal of a semigroup.</p>
<p>If <var class="Arg">obj1</var>, <var class="Arg">obj2</var>, .. . are (any combination) of elements of the semigroup <var class="Arg">S</var> or collections of elements of <var class="Arg">S</var> (including subsemigroups and ideals of <var class="Arg">S</var>), then <code class="code">SemigroupIdeal</code> returns the 2-sided ideal of the semigroup <var class="Arg">S</var> generated by the union of <var class="Arg">obj1</var>, <var class="Arg">obj2</var>, .. ..</p>
<p>The <code class="func">Parent</code> (<a href="../../../doc/ref/chap31_mj.html#X7BC856CC7F116BB0"><span class="RefLink">Reference: Parent</span></a>) of the ideal returned by this function is <var class="Arg">S</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S := SymmetricInverseMonoid(10);</span>
<symmetric inverse monoid of degree 10>
<span class="GAPprompt">gap></span> <span class="GAPinput">I := SemigroupIdeal(S, PartialPerm([1, 2]));</span>
<inverse partial perm semigroup ideal of rank 10 with 1 generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(I);</span>
4151
<span class="GAPprompt">gap></span> <span class="GAPinput">I := SemigroupIdeal(S, I, Idempotents(S));</span>
<inverse partial perm semigroup ideal of rank 10 with 1025 generators></pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Ideals</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: An list of ideals.</p>
<p>If <var class="Arg">S</var> is a finite non-empty semigroup, then this attribute returns a list of the non-empty two-sided ideals of <var class="Arg">S</var>.</p>
<p>The ideals are returned in no particular order, and each ideal uses the minimum possible number of generators (see <code class="func">GeneratorsOfSemigroupIdeal</code> (<a href="chap9_mj.html#X87BB45DB844D41BC"><span class="RefLink">9.2-1</span></a>)).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S := Semigroup([Transformation([4, 3, 4, 1]),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> Transformation([4, 3, 2, 2])]);</span>
<transformation semigroup of degree 4 with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Ideals(S);</span>
[ <non-regular transformation semigroup ideal of degree 4 with
1 generator>,
<non-regular transformation semigroup ideal of degree 4 with
1 generator>,
<non-regular transformation semigroup ideal of degree 4 with
2 generators>,
<regular transformation semigroup ideal of degree 4 with 1 generator>,
<non-regular transformation semigroup ideal of degree 4 with
1 generator>,
<regular transformation semigroup ideal of degree 4 with 1 generator>
]
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfSemigroupIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: The generators of an ideal of a semigroup.</p>
<p>This function returns the generators of the two-sided ideal <var class="Arg">I</var>, which were used to defined <var class="Arg">I</var> when it was created.</p>
<p>If <var class="Arg">I</var> is an ideal of a semigroup, then <var class="Arg">I</var> is defined to be the least 2-sided ideal of a semigroup <code class="code">S</code> containing a set <code class="code">J</code> of elements of <code class="code">S</code>. The set <code class="code">J</code> is said to <em>generate</em> <var class="Arg">I</var>.</p>
<p>The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use <code class="func">GeneratorsOfSemigroup</code> (<a href="../../../doc/ref/chap51_mj.html#X78147A247963F23B"><span class="RefLink">Reference: GeneratorsOfSemigroup</span></a>) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalIdealGeneratingSet</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: A minimal set ideal generators of an ideal.</p>
<p>This function returns a minimal set of elements of the parent of the semigroup ideal <var class="Arg">I</var> required to generate <var class="Arg">I</var> as an ideal.</p>
<p>The notion of the generators of an ideal is distinct from the notion of the generators of a semigroup or monoid. In particular, the semigroup generated by the generators of an ideal is not, in general, equal to that ideal. Use <code class="func">GeneratorsOfSemigroup</code> (<a href="../../../doc/ref/chap51_mj.html#X78147A247963F23B"><span class="RefLink">Reference: GeneratorsOfSemigroup</span></a>) to obtain a semigroup generating set for an ideal, but beware that this can be very costly.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SupersemigroupOfIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: An ideal of a semigroup.</p>
<p>The <code class="func">Parent</code> (<a href="../../../doc/ref/chap31_mj.html#X7BC856CC7F116BB0"><span class="RefLink">Reference: Parent</span></a>) of an ideal is the semigroup in which the ideal was created, i.e. the first argument of <code class="func">SemigroupIdeal</code> (<a href="chap9_mj.html#X78E15B0184A1DC14"><span class="RefLink">9.1-1</span></a>) or <code class="code">SemigroupIdealByGenerators</code>. This function returns the semigroup containing the generators of the semigroup (i.e. <code class="func">GeneratorsOfSemigroup</code> (<a href="../../../doc/ref/chap51_mj.html#X78147A247963F23B"><span class="RefLink">Reference: GeneratorsOfSemigroup</span></a>)) which are used to compute the ideal.</p>
<p>For a regular semigroup ideal, <code class="code">SupersemigroupOfIdeal</code> will always be the top most semigroup used to create any of the predecessors of the current ideal. For example, if <code class="code">S</code> is a semigroup, <code class="code">I</code> is a regular ideal of <code class="code">S</code>, and <code class="code">J</code> is an ideal of <code class="code">I</code>, then <code class="code">Parent(J)</code> is <code class="code">I</code> and <code class="code">SupersemigroupOfIdeal(J)</code> is <code class="code">S</code>. This is to avoid computing a generating set for <code class="code">I</code>, in this example, which is expensive and unnecessary since <code class="code">I</code> is regular (in which case the Green's relations of I are just restrictions of the Green's relations on <code class="code">S</code>).</p>
<p>If <code class="code">S</code> is a semigroup, <code class="code">I</code> is a non-regular ideal of <code class="code">S</code>, <code class="code">J</code> is an ideal of <code class="code">I</code>, then <code class="code">SupersemigroupOfIdeal(J)</code> is <code class="code">I</code>, since we currently have to use <code class="code">GeneratorsOfSemigroup(I)</code> to compute anything about <code class="code">I</code> other than its size and membership.</p>
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.