Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 2470

gap-system-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 (NumericalSgps) - Chapter 5: 
                Constructing numerical semigroups from others
            </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="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chapA.html">A</a>  <a href="chapB.html">B</a>  <a href="chapC.html">C</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="X8148F05A830EE2D5" name="X8148F05A830EE2D5"></a></p>
<div class="ChapSects"><a href="chap5.html#X8148F05A830EE2D5">5 <span class="Heading">
                Constructing numerical semigroups from others
            </span></a>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap5.html#X782F3AB97ACF84B8">5.1 <span class="Heading">
                    Adding and removing elements of a numerical semigroup
                </span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7C94611F7DD9E742">5.1-1 RemoveMinimalGeneratorFromNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X865EA8377D632F53">5.1-2 AddSpecialGapOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X874494928728023E">5.1-3 IntersectionOfNumericalSemigroups</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X83CCE63C82F34C25">5.1-4 QuotientOfNumericalSemigroup</a></span>
</div>
<div class="ContSect"><span class="nocss">&nbsp;</span><a href="chap5.html#X867D9A9A87CEB869">5.2 <span class="Heading">
                    Constructing the set of all numerical semigroups containing a given numerical semigroup
                </span></a>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X7EEA97AB85FE078C">5.2-1 OverSemigroupsNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X87369D567AA6DBA0">5.2-2 NumericalSemigroupsWithFrobeniusNumber</a></span>
<span class="ContSS"><br /><span class="nocss">&nbsp;&nbsp;</span><a href="chap5.html#X86970F6A868DEA95">5.2-3 NumericalSemigroupsWithGenus</a></span>
</div>
</div>

<h3>5 <span class="Heading">
                Constructing numerical semigroups from others
            </span></h3>

<p><a id="X782F3AB97ACF84B8" name="X782F3AB97ACF84B8"></a></p>

<h4>5.1 <span class="Heading">
                    Adding and removing elements of a numerical semigroup
                </span></h4>

<p>In this section we show how to construct new numerical semigroups from a given numerical semigroup. Two dual operations are presented. The first one removes a minimal generator from a numerical semigroup. The second adds a special gap to a semigroup (see <a href="chapBib.html#biBRGGJ03">[GJ03]</a>).</p>

<p><a id="X7C94611F7DD9E742" name="X7C94611F7DD9E742"></a></p>

<h5>5.1-1 RemoveMinimalGeneratorFromNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; RemoveMinimalGeneratorFromNumericalSemigroup</code>( <var class="Arg">n, S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">n</var> is one if its minimal generators.</p>

<p>The output is the numerical semigroup <var class="Arg">S</var> \{<var class="Arg">n</var>} (see <a href="chapBib.html#biBRGGJ03">[GJ03]</a>; S\{n} is a numerical semigroup if and only if n is a minimal generator of S).</p>


<table class="example">
<tr><td><pre>
gap&gt; s:=NumericalSemigroup(3,5,7);
&lt;Numerical semigroup with 3 generators&gt;
gap&gt; RemoveMinimalGeneratorFromNumericalSemigroup(7,s);
&lt;Numerical semigroup with 3 generators&gt;
gap&gt; MinimalGeneratingSystemOfNumericalSemigroup(last);
[ 3, 5 ]

                        </pre></td></tr></table>

<p><a id="X865EA8377D632F53" name="X865EA8377D632F53"></a></p>

<h5>5.1-2 AddSpecialGapOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; AddSpecialGapOfNumericalSemigroup</code>( <var class="Arg">g, S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">g</var> is a special gap of <var class="Arg">S</var></p>

<p>The output is the numerical semigroup <var class="Arg">S</var> cup{<var class="Arg">g</var>} (see <a href="chapBib.html#biBRGGJ03">[GJ03]</a>, where it is explained why this set is a numerical semigroup).</p>


<table class="example">
<tr><td><pre>
gap&gt; s:=NumericalSemigroup(3,5,7);
&lt;Numerical semigroup with 3 generators&gt;
gap&gt; s2:=RemoveMinimalGeneratorFromNumericalSemigroup(5,s);
&lt;Numerical semigroup with 3 generators&gt;
gap&gt; s3:=AddSpecialGapOfNumericalSemigroup(5,s2);
&lt;Numerical semigroup&gt;
gap&gt; SmallElementsOfNumericalSemigroup(s) =
&gt; SmallElementsOfNumericalSemigroup(s3);
true                
gap&gt; s=s3;
true

                        </pre></td></tr></table>

<p><a id="X874494928728023E" name="X874494928728023E"></a></p>

<h5>5.1-3 IntersectionOfNumericalSemigroups</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; IntersectionOfNumericalSemigroups</code>( <var class="Arg">S, T</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> and <var class="Arg">T</var> are numerical semigroups. Computes the intersection of <var class="Arg">S</var> and <var class="Arg">T</var> (which is a numerical semigroup).</p>


<table class="example">
<tr><td><pre>
gap&gt; S := NumericalSemigroup("modular", 5,53);
&lt;Modular numerical semigroup satisfying 5x mod 53 &lt;= x &gt;
gap&gt; T := NumericalSemigroup(2,17);
&lt;Numerical semigroup with 2 generators&gt;
gap&gt; SmallElementsOfNumericalSemigroup(S);
[ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
gap&gt; SmallElementsOfNumericalSemigroup(T);
[ 0, 2, 4, 6, 8, 10, 12, 14, 16 ]
gap&gt; IntersectionOfNumericalSemigroups(S,T);
&lt;Numerical semigroup&gt;
gap&gt; SmallElementsOfNumericalSemigroup(last);
[ 0, 12, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
</pre></td></tr></table>

<p><a id="X83CCE63C82F34C25" name="X83CCE63C82F34C25"></a></p>

<h5>5.1-4 QuotientOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; QuotientOfNumericalSemigroup</code>( <var class="Arg">S, n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">n</var> is an integer. Computes the quotient of <var class="Arg">S</var> by <var class="Arg">n</var>, that is, the set { xin N | nx in S}, which is again a numerical semigroup. <code class="code">S / n</code> may be used as a short for <code class="code">QuotientOfNumericalSemigroup(S, n)</code>.</p>


<table class="example">
<tr><td><pre>
gap&gt; s:=NumericalSemigroup(3,29);
&lt;Numerical semigroup with 2 generators&gt;
gap&gt; SmallElementsOfNumericalSemigroup(s);
[ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 29, 30, 32, 33, 35, 36, 38, 
  39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56 ]
gap&gt; t:=QuotientOfNumericalSemigroup(s,7);
&lt;Numerical semigroup&gt;
gap&gt; SmallElementsOfNumericalSemigroup(t);
[ 0, 3, 5, 6, 8 ]
gap&gt; u := s / 7;
&lt;Numerical semigroup&gt;
gap&gt; SmallElementsOfNumericalSemigroup(u);
[ 0, 3, 5, 6, 8 ]
</pre></td></tr></table>

<p><a id="X867D9A9A87CEB869" name="X867D9A9A87CEB869"></a></p>

<h4>5.2 <span class="Heading">
                    Constructing the set of all numerical semigroups containing a given numerical semigroup
                </span></h4>

<p>In order to construct the set of numerical semigroups containing a fixed numerical semigroup S, one first constructs its unitary extensions, that is to say, the sets Scup{g} that are numerical semigroups with g a positive integer. This is achieved by constructing the special gaps of the semigroup, and then adding each of them to the numerical semigroup. Then we repeat the process for each of this new numerical semigroups until we reach N.</p>

<p>These procedures are described in <a href="chapBib.html#biBRGGJ03">[GJ03]</a>.</p>

<p><a id="X7EEA97AB85FE078C" name="X7EEA97AB85FE078C"></a></p>

<h5>5.2-1 OverSemigroupsNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; OverSemigroupsNumericalSemigroup</code>( <var class="Arg">s</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">s</var> is a numerical semigroup. The output is the set of numerical semigroups containing it.</p>


<table class="example">
<tr><td><pre>
gap&gt; OverSemigroupsNumericalSemigroup(NumericalSemigroup(3,5,7));
[ &lt;Numerical semigroup with 1 generators&gt;, &lt;Numerical semigroup&gt;,
  &lt;Numerical semigroup&gt;, &lt;Numerical semigroup with 3 generators&gt; ]
gap&gt; List(last,s-&gt;MinimalGeneratingSystemOfNumericalSemigroup(s));
[ [ 1 ], [ 3, 4, 5 ], [ 2, 3 ], [ 3, 5, 7 ] ]
</pre></td></tr></table>

<p><a id="X87369D567AA6DBA0" name="X87369D567AA6DBA0"></a></p>

<h5>5.2-2 NumericalSemigroupsWithFrobeniusNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; NumericalSemigroupsWithFrobeniusNumber</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is an non zero integer greater than or equal to -1. The output is the set of numerical semigroups with Frobenius number <var class="Arg">f</var>. The algorithm implemented is given in <a href="chapBib.html#biBRGGJ04">[GM04]</a>.</p>


<table class="example">
<tr><td><pre>
gap&gt; Length(NumericalSemigroupsWithFrobeniusNumber(20));
900

                        </pre></td></tr></table>

<p>Given a numerical semigroup of genus g, removing minimal generators, one obtains numerical semigroups of genus g+1. In order to avoid repetitions, we only remove minimal generators greater than the frobenius number of the numerical semigroup (this is accomplished with the local function sons).</p>

<p>These procedures are described in <a href="chapBib.html#biBRGGB03">[GB03]</a> and <a href="chapBib.html#biBB-A08">[Bra08]</a>.</p>

<p><a id="X86970F6A868DEA95" name="X86970F6A868DEA95"></a></p>

<h5>5.2-3 NumericalSemigroupsWithGenus</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; NumericalSemigroupsWithGenus</code>( <var class="Arg">g</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">g</var> is a nonnegative integer. The output is the set of numerical semigroups with genus<var class="Arg">g</var> .</p>


<table class="example">
<tr><td><pre>
gap&gt; NumericalSemigroupsWithGenus(5);
[ &lt;Numerical semigroup with 6 generators&gt;, 
  &lt;Numerical semigroup with 5 generators&gt;, 
  &lt;Numerical semigroup with 5 generators&gt;, 
  &lt;Numerical semigroup with 5 generators&gt;, 
  &lt;Numerical semigroup with 5 generators&gt;, 
  &lt;Numerical semigroup with 4 generators&gt;, 
  &lt;Numerical semigroup with 4 generators&gt;, 
  &lt;Numerical semigroup with 4 generators&gt;, 
  &lt;Numerical semigroup with 4 generators&gt;, 
  &lt;Numerical semigroup with 3 generators&gt;, 
  &lt;Numerical semigroup with 3 generators&gt;, 
  &lt;Numerical semigroup with 2 generators&gt; ]
gap&gt; List(last,s-&gt;MinimalGeneratingSystemOfNumericalSemigroup(s));
[ [ 6, 7, 8, 9, 10, 11 ], [ 5, 7, 8, 9, 11 ], [ 5, 6, 8, 9 ], [ 5, 6, 7, 9 ], 
  [ 5, 6, 7, 8 ], [ 4, 6, 7 ], [ 4, 7, 9, 10 ], [ 4, 6, 9, 11 ], 
  [ 4, 5, 11 ], [ 3, 8, 10 ], [ 3, 7, 11 ], [ 2, 11 ] ]
</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="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chapA.html">A</a>  <a href="chapB.html">B</a>  <a href="chapC.html">C</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>