<?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 3: Basic operations with numerical 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="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"> <a href="chap0.html">Top of Book</a> <a href="chap2.html">Previous Chapter</a> <a href="chap4.html">Next Chapter</a> </div> <p><a id="X7A9D13C778697F6C" name="X7A9D13C778697F6C"></a></p> <div class="ChapSects"><a href="chap3.html#X7A9D13C778697F6C">3 <span class="Heading"> Basic operations with numerical semigroups </span></a> <div class="ContSect"><span class="nocss"> </span><a href="chap3.html#X7F15FEA980D637AF">3.1 <span class="Heading"> The definitions </span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X842721EF8145C3D3">3.1-1 MultiplicityOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7A3177E779C49D13">3.1-2 GeneratorsOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X79D6E4727B612B54">3.1-3 SmallElementsOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7F0EDFA77F929120">3.1-4 FirstElementsOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X86C699F2800F9ED0">3.1-5 AperyListOfNumericalSemigroupWRTElement</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X85C89A6B81A07061">3.1-6 DrawAperyListOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X8022CC477E9BF678">3.1-7 AperyListOfNumericalSemigroupAsGraph</a></span> </div> <div class="ContSect"><span class="nocss"> </span><a href="chap3.html#X7F97E0127A1D2835">3.2 <span class="Heading">Frobenius Number</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7828CD2B83E380FA">3.2-1 FrobeniusNumberOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7B7DFAB2834B2B36">3.2-2 FrobeniusNumber</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X829A9C517A83FFD5">3.2-3 PseudoFrobeniusOfNumericalSemigroup</a></span> </div> <div class="ContSect"><span class="nocss"> </span><a href="chap3.html#X787FE6F180C6291F">3.3 <span class="Heading">Gaps</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7B1BEC5786C66244">3.3-1 GapsOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X81EC33E978C73FEA">3.3-2 FundamentalGapsOfNumericalSemigroup</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X7E373952877AC30A">3.3-3 SpecialGapsOfNumericalSemigroup</a></span> </div> </div> <h3>3 <span class="Heading"> Basic operations with numerical semigroups </span></h3> <p><a id="X7F15FEA980D637AF" name="X7F15FEA980D637AF"></a></p> <h4>3.1 <span class="Heading"> The definitions </span></h4> <p><a id="X842721EF8145C3D3" name="X842721EF8145C3D3"></a></p> <h5>3.1-1 MultiplicityOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MultiplicityOfNumericalSemigroup</code>( <var class="Arg">NS</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><var class="Arg">NS</var> is a numerical semigroup. Returns the multiplicity of <var class="Arg">NS</var>, which is the smallest positive integer belonging to <var class="Arg">NS</var>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 7,53); <Modular numerical semigroup satisfying 7x mod 53 <= x > gap> MultiplicityOfNumericalSemigroup(S); 8 </pre></td></tr></table> <p><a id="X7A3177E779C49D13" name="X7A3177E779C49D13"></a></p> <h5>3.1-2 GeneratorsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> GeneratorsOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> GeneratorsOfNumericalSemigroupNC</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MinimalGeneratingSystemOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><var class="Arg">S</var> is a numerical semigroup. <code class="code">GeneratorsOfNumericalSemigroup</code> returns a set of generators of <code class="code">S</code>, which may not be minimal. <code class="code">GeneratorsOfNumericalSemigroupNC</code> returns the set of generators recorded in <code class="code">S!.generators</code>, which may not be minimal. <code class="code">MinimalGeneratingSystemOfNumericalSemigroup</code> returns the minimal set of generators of <code class="code">S</code>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> GeneratorsOfNumericalSemigroup(S); [ 11, 12, 13, 32, 53 ] gap> S := NumericalSemigroup(3, 5, 53); <Numerical semigroup with 3 generators> gap> GeneratorsOfNumericalSemigroup(S); [ 3, 5, 53 ] gap> MinimalGeneratingSystemOfNumericalSemigroup(S); [ 3, 5 ] </pre></td></tr></table> <p><a id="X79D6E4727B612B54" name="X79D6E4727B612B54"></a></p> <h5>3.1-3 SmallElementsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> SmallElementsOfNumericalSemigroup</code>( <var class="Arg">NS</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">NS</code> is a numerical semigroup. It returns the list of small elements of <code class="code">NS</code>. Of course, the time consumed to return a result may depend on the way the semigroup is given.</p> <table class="example"> <tr><td><pre> gap> SmallElementsOfNumericalSemigroup(NumericalSemigroup(3,5,7)); [ 0, 3, 5 ] </pre></td></tr></table> <p><a id="X7F0EDFA77F929120" name="X7F0EDFA77F929120"></a></p> <h5>3.1-4 FirstElementsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> FirstElementsOfNumericalSemigroup</code>( <var class="Arg">n, NS</var> )</td><td class="tdright">( function )</td></tr></table></div> <p><code class="code">NS</code> is a numerical semigroup. It returns the list with the first <var class="Arg">n</var> elements of <code class="code">NS</code>.</p> <table class="example"> <tr><td><pre> gap> FirstElementsOfNumericalSemigroup(2,NumericalSemigroup(3,5,7)); [ 0, 3 ] gap> FirstElementsOfNumericalSemigroup(10,NumericalSemigroup(3,5,7)); [ 0, 3, 5, 6, 7, 8, 9, 10, 11, 12 ] </pre></td></tr></table> <p><a id="X86C699F2800F9ED0" name="X86C699F2800F9ED0"></a></p> <h5>3.1-5 AperyListOfNumericalSemigroupWRTElement</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> AperyListOfNumericalSemigroupWRTElement</code>( <var class="Arg">S, m</var> )</td><td class="tdright">( operation )</td></tr></table></div> <p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">m</var> is a positive element of <var class="Arg">S</var>. Computes the Apéry list of <var class="Arg">S</var> wrt <var class="Arg">m</var>. It contains for every iin {0,...,<var class="Arg">m</var>-1}, in the i+1th position, the smallest element in the semigroup congruent with i modulo <var class="Arg">m</var>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> AperyListOfNumericalSemigroupWRTElement(S,12); [ 0, 13, 26, 39, 52, 53, 54, 43, 32, 33, 22, 11 ] </pre></td></tr></table> <p><a id="X85C89A6B81A07061" name="X85C89A6B81A07061"></a></p> <h5>3.1-6 DrawAperyListOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> DrawAperyListOfNumericalSemigroup</code>( <var class="Arg">ap</var> )</td><td class="tdright">( function )</td></tr></table></div> <p><var class="Arg">ap</var> is the Apéry list of a numerical semigroup. This function draws the graph (ap, E) where the edge u -> v is in E iff v - u is in ap. To use this function, <code class="code">Graphviz</code> (<span class="URL"><a href="http://www.graphviz.org">http://www.graphviz.org</a></span>) should be installed and also <code class="code">Evince</code> (<span class="URL"><a href="http://www.gnome.org/projects/evince/">http://www.gnome.org/projects/evince/</a></span>) or <code class="code">ggv</code> (<span class="URL"><a href="http://directory.fsf.org/ggv.html">http://directory.fsf.org/ggv.html</a></span>).</p> <p><a id="X8022CC477E9BF678" name="X8022CC477E9BF678"></a></p> <h5>3.1-7 AperyListOfNumericalSemigroupAsGraph</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> AperyListOfNumericalSemigroupAsGraph</code>( <var class="Arg">ap</var> )</td><td class="tdright">( function )</td></tr></table></div> <p><var class="Arg">ap</var> is the Apéry list of a numerical semigroup. This function returns the adjacency list of the graph (ap, E) where the edge u -> v is in E iff v - u is in ap. The 0 is ignored.</p> <table class="example"> <tr><td><pre> gap> s:=NumericalSemigroup(3,7); <Numerical semigroup with 2 generators> gap> AperyListOfNumericalSemigroupWRTElement(s,10); [ 0, 21, 12, 3, 14, 15, 6, 7, 18, 9 ] gap> AperyListOfNumericalSemigroupAsGraph(last); [ ,, [ 3, 6, 9, 12, 15, 18, 21 ],,, [ 6, 9, 12, 15, 18, 21 ], [ 7, 14, 21 ],, [ 9, 12, 15, 18, 21 ],,, [ 12, 15, 18, 21 ],, [ 14, 21 ], [ 15, 18, 21 ],,, [ 18, 21 ],,, [ 21 ] ] </pre></td></tr></table> <p><a id="X7F97E0127A1D2835" name="X7F97E0127A1D2835"></a></p> <h4>3.2 <span class="Heading">Frobenius Number</span></h4> <p>The largest nonnegative integer not belonging to a numerical semigroup S is the <em>Frobenius number</em> of S. If S is the set of nonnegative integers, then clearly its Frobenius number is -1, otherwise its Frobenius number coincides with the maximum of the gaps (or fundamental gaps) of S. An integer z is a <em>pseudo-Frobenius number</em> of S if z+S\{0}subseteq S.</p> <p><a id="X7828CD2B83E380FA" name="X7828CD2B83E380FA"></a></p> <h5>3.2-1 FrobeniusNumberOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> FrobeniusNumberOfNumericalSemigroup</code>( <var class="Arg">NS</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">NS</code> is a numerical semigroup. It returns the Frobenius number of <code class="code">NS</code>. Of course, the time consumed to return a result may depend on the way the semigroup is given or on the knowledge already produced on the semigroup.</p> <table class="example"> <tr><td><pre> gap> FrobeniusNumberOfNumericalSemigroup(NumericalSemigroup(3,5,7)); 4 </pre></td></tr></table> <p><a id="X7B7DFAB2834B2B36" name="X7B7DFAB2834B2B36"></a></p> <h5>3.2-2 FrobeniusNumber</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> FrobeniusNumber</code>( <var class="Arg">NS</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p>This is just a synonym of <code class="func">FrobeniusNumberOfNumericalSemigroup</code> (<a href="chap3.html#X7828CD2B83E380FA"><b>3.2-1</b></a>).</p> <p><a id="X829A9C517A83FFD5" name="X829A9C517A83FFD5"></a></p> <h5>3.2-3 PseudoFrobeniusOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> PseudoFrobeniusOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">S</code> is a numerical semigroup. It returns set of pseudo-Frobenius numbers of <var class="Arg">S</var>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> PseudoFrobeniusOfNumericalSemigroup(S); [ 21, 40, 41, 42 ] </pre></td></tr></table> <p><a id="X787FE6F180C6291F" name="X787FE6F180C6291F"></a></p> <h4>3.3 <span class="Heading">Gaps</span></h4> <p>A <em>gap</em> of a numerical semigroup S is a nonnegative integer not belonging to S. The <em>fundamental gaps</em> of S are those gaps that are maximal with respect to the partial order induced by division in N. The <em>special gaps</em> of a numerical semigroup S, are those fundamental gaps such that if they are added to the given numerical semigroup, then the resulting set is again a numerical semigroup.</p> <p><a id="X7B1BEC5786C66244" name="X7B1BEC5786C66244"></a></p> <h5>3.3-1 GapsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> GapsOfNumericalSemigroup</code>( <var class="Arg">NS</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">NS</code> is a numerical semigroup. It returns the set of gaps of <code class="code">NS</code>.</p> <table class="example"> <tr><td><pre> gap> GapsOfNumericalSemigroup(NumericalSemigroup(3,5,7)); [ 1, 2, 4 ] </pre></td></tr></table> <p><a id="X81EC33E978C73FEA" name="X81EC33E978C73FEA"></a></p> <h5>3.3-2 FundamentalGapsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> FundamentalGapsOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">S</code> is a numerical semigroup. It returns the set of fundamental gaps of <var class="Arg">S</var>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> FundamentalGapsOfNumericalSemigroup(S); [ 16, 17, 18, 19, 27, 28, 29, 30, 31, 40, 41, 42 ] gap> GapsOfNumericalSemigroup(S); [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 20, 21, 27, 28, 29, 30, 31, 40, 41, 42 ] </pre></td></tr></table> <p><a id="X7E373952877AC30A" name="X7E373952877AC30A"></a></p> <h5>3.3-3 SpecialGapsOfNumericalSemigroup</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> SpecialGapsOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <p><code class="code">S</code> is a numerical semigroup. It returns the special gaps of <var class="Arg">S</var>.</p> <table class="example"> <tr><td><pre> gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> SpecialGapsOfNumericalSemigroup(S); [ 40, 41, 42 ] </pre></td></tr></table> <div class="chlinkprevnextbot"> <a href="chap0.html">Top of Book</a> <a href="chap2.html">Previous Chapter</a> <a href="chap4.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="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>