Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


SSL chap7_mj.html

  Interaktion und
PortierbarkeitHTML
 

 products/Sources/formale Sprachen/GAP/pkg/numericalsgps/doc/chap7_mj.html


<?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>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (NumericalSgps) - Chapter 7: 
                Ideals of 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" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap7"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap6_mj.html">[Previous Chapter]</a>    <a href="chap8_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap7.html">[MathJax off]</a></p>
<p><a id="X83C2F0CF825B3869" name="X83C2F0CF825B3869"></a></p>
<div class="ChapSects"><a href="chap7_mj.html#X83C2F0CF825B3869">7 <span class="Heading">
                Ideals of numerical semigroups
            </span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X84B6453A8015B40B">7.1 <span class="Heading">
                    Definitions and basic operations
                </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X78E5F44E81485C17">7.1-1 IdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X85BD6FAD7EA3B5DD">7.1-2 IsIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X85144E0F791038AE">7.1-3 MinimalGenerators</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A842A4385B73C63">7.1-4 Generators</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X81E445518529C175">7.1-5 AmbientNumericalSemigroupOfIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7B0343BF794AC7EA">7.1-6 IsIntegral</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X80233A6F80CA0615">7.1-7 IsComplementOfIntegralIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8774724085D3371D">7.1-8 IdealByDivisorClosedSet</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7811E92487110941">7.1-9 SmallElements</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7EDDC78883A98A6E">7.1-10 Conductor</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A8AF91C7D1F1B4E">7.1-11 FrobeniusNumber</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X805149CA847F6461">7.1-12 PseudoFrobenius</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7D4C7C997EEAADF7">7.1-13 Type</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X821919B47D3D191A">7.1-14 Minimum</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X87508E7A7CFB0B20">7.1-15 BelongsToIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X83D0996D811A35C6">7.1-16 ElementNumber_IdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7B8B46CF7E81513D">7.1-17 NumberElement_IdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X79DFDCA27D3268FD"><code>7.1-18 <span>\</span>[ <span>\</span>]</code></a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8341AE847D005E9F"><code>7.1-19 \{ \}</code></a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A55BD4D82580537">7.1-20 Iterator</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7B39610D7AD5A654">7.1-21 SumIdealsOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X857FE5C57EE98F5E">7.1-22 MultipleOfIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X78743CE2845B5860">7.1-23 SubtractIdealsOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8321A10885D2DEF8">7.1-24 Difference</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X803921F97BEDCA88">7.1-25 TranslationOfIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7CD66453842CD0AD">7.1-26 Union</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7B34033979009F64">7.1-27 Intersection</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7D77F1BA7F22DA70">7.1-28 MaximalIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X85975C3C86C2BC53">7.1-29 CanonicalIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7D15FA4C843A13B7">7.1-30 IsCanonicalIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X829C9685798BB553">7.1-31 IsAlmostCanonicalIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X811B096B87636B8E">7.1-32 TraceIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7BB2A1B28139AA7E">7.1-33 TypeSequence</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X7F09B9A085E226EF">7.2 <span class="Heading">
        Decomposition into irreducibles
    </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7B83DEAC866B65E8">7.2-1 IrreducibleZComponents</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X83E064C684FA534C">7.2-2 DecomposeIntegralIdealIntoIrreducibles</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X81CD9B12807EEA85">7.3 <span class="Heading">
                    Blow ups and closures
                </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X82156F18807B00BF">7.3-1 HilbertFunctionOfIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X81F1F3EB868D2117">7.3-2 HilbertFunction</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X79A1A22D8615BF78">7.3-3 BlowUp</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7FAABCBF8299B12F">7.3-4 ReductionNumber</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7BFC52B7804542F5">7.3-5 BlowUp</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8799F0347FF0D510">7.3-6 LipmanSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7D6F643687DF8724">7.3-7 RatliffRushNumber</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X82C2329380B9882D">7.3-8 RatliffRushClosure</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X79494A587A549E15">7.3-9 AsymptoticRatliffRushNumber</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8344B30D7EDE3B04">7.3-10 MultiplicitySequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X87AC917578976B1E">7.3-11 MicroInvariants</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X805C984685EBC65C">7.3-12 AperyList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X82D2784B813C67D8">7.3-13 AperyList</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X8244CCAE7D957F46">7.3-14 AperyTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A16238D7EDB2AB3">7.3-15 StarClosureOfIdealOfNumericalSemigroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X78F124CC82E7B585">7.4 <span class="Heading">
    Patterns for ideals
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X865042FD7EBD15EE">7.4-1 IsAdmissiblePattern</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7ED8306681407D0F">7.4-2 IsStronglyAdmissiblePattern</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X799542C57E4E0D5E">7.4-3 AsIdealOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7F13F7CB7FBCF006">7.4-4 BoundForConductorOfImageOfPattern</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7F4E597278AF31C8">7.4-5 ApplyPatternToIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7CFDFF6D7B9B595B">7.4-6 ApplyPatternToNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7F9232047F85C4D8">7.4-7 IsAdmittedPatternByIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X827BB22083390CB9">7.4-8 IsAdmittedPatternByNumericalSemigroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap7_mj.html#X79C6CE8D7EF1632D">7.5 <span class="Heading">Graded associated ring of numerical semigroup</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7876199778D6B320">7.5-1 IsGradedAssociatedRingNumericalSemigroupCM</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X782D557583CEDD04">7.5-2 IsGradedAssociatedRingNumericalSemigroupBuchsbaum</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X78E57B9982F6E1DC">7.5-3 TorsionOfAssociatedGradedRingNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7E16B6947BE375B2">7.5-4 BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7A5752C0836370FA">7.5-5 IsGradedAssociatedRingNumericalSemigroupGorenstein</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap7_mj.html#X7800C5D68641E2B7">7.5-6 IsGradedAssociatedRingNumericalSemigroupCI</a></span>
</div></div>
</div>

<h3>7 <span class="Heading">
                Ideals of numerical semigroups
            </span></h3>

<p>Let <span class="SimpleMath">\(S\)</span> be a numerical semigroup. A set <span class="SimpleMath">\(I\)</span> of integers is an <em>ideal relative</em> to a numerical semigroup <span class="SimpleMath">\(S\)</span> provided that <span class="SimpleMath">\(I+S\subseteq I\)</span> and that there exists <span class="SimpleMath">\(d\in S\)</span> such that <span class="SimpleMath">\(d+I\subseteq S\)</span>.</p>

<p>If <span class="SimpleMath">\(\{i_1,\ldots,i_k\}\)</span> is a subset of <span class="SimpleMath">\({\mathbb Z}\)</span>, then the set <span class="SimpleMath">\(I=\{i_1,\ldots,i_k\}+S=\bigcup_{n=1}^k i_n+S\)</span> is an ideal relative to <span class="SimpleMath">\(S\)</span>, and <span class="SimpleMath">\(\{i_1,\ldots, i_k\}\)</span> is a system of generators of <span class="SimpleMath">\(I\)</span>. A system of generators <span class="SimpleMath">\(M\)</span> is minimal if no proper subset of <span class="SimpleMath">\(M\)</span> generates the same ideal. Usually, ideals are specified by means of its generators and the ambient numerical semigroup to which they are ideals (for more information see for instance <a href="chapBib_mj.html#biBBDF97">[BDF97]</a>).</p>

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

<h4>7.1 <span class="Heading">
                    Definitions and basic operations
                </span></h4>

<p>We describe in this section the basic functions to create and compute notable elements of ideals of numerical semigroups. We also include iterators and functions to treat ideals as lists, which easies the access to its elements.</p>

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

<h5>7.1-1 IdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IdealOfNumericalSemigroup</code>( <var class="Arg">l</var>, <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">‣ +</code>( <var class="Arg">l</var>, <var class="Arg">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">l</var> a list of integers. The output is the ideal of <var class="Arg">S</var> generated by <var class="Arg">l</var>.</p>

<p>There are several shortcuts for this function, as shown in the example.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IdealOfNumericalSemigroup([3,5],NumericalSemigroup(9,11));</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">[3,5]+NumericalSemigroup(9,11);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">last=last2;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">3+NumericalSemigroup(5,9);</span>
<Ideal of numerical semigroup>
</pre></div>

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

<h5>7.1-2 IsIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsIdealOfNumericalSemigroup</code>( <var class="Arg">Obj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Tests if the object <var class="Arg">Obj</var> is an ideal of a numerical semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[1..7]+NumericalSemigroup(7,19);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIdealOfNumericalSemigroup(I);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIdealOfNumericalSemigroup(2);</span>
false
</pre></div>

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

<h5>7.1-3 MinimalGenerators</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGenerators</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGeneratingSystem</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGeneratingSystemOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the minimal system of generators of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators([3,5]+NumericalSemigroup(2,11));</span>
[ 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[3,5,9]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystem(I);</span>
[ 3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I);</span>
[ 3 ]
</pre></div>

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

<h5>7.1-4 Generators</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Generators</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is a system of generators of the ideal.</p>

<p>Remark: from Version 1.0.1 on, this value does not change even when a set of minimal generators is computed.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[3,5,9]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Generators(I);</span>
[ 3, 5, 9 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfIdealOfNumericalSemigroup(I);</span>
[ 3, 5, 9 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(I);</span>
[ 3 ]
</pre></div>

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

<h5>7.1-5 AmbientNumericalSemigroupOfIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AmbientNumericalSemigroupOfIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup, say <span class="SimpleMath">\(S\)</span>. The output is <span class="SimpleMath">\(S\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[3,5,9]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientNumericalSemigroupOfIdeal(I);</span>
<Numerical semigroup with 2 generators>
</pre></div>

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

<h5>7.1-6 IsIntegral</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsIntegral</code>( <var class="Arg">I</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">‣ IsIntegralIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup, say <span class="SimpleMath">\(S\)</span>. Detects if <span class="SimpleMath">\(I\subseteq S\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegral(10+s);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegral(4+s);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegralIdealOfNumericalSemigroup(10+s);</span>
true
</pre></div>

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

<h5>7.1-7 IsComplementOfIntegralIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsComplementOfIntegralIdeal</code>( <var class="Arg">X</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">X</var> is a subset of <var class="Arg">S</var>. Determines if the subset <var class="Arg">X</var> of <var class="Arg">S</var> is the complement of an integral ideal of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(10,11,15,19);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[20,21,25]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=Difference(0+s,i);</span>
[ 0, 10, 11, 15, 19, 22, 26, 29, 33, 34, 37, 38, 48 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsComplementOfIntegralIdeal(d,s);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=DivisorsOfElementInNumericalSemigroup(50,s);</span>
[ 0, 10, 11, 15, 19, 20, 21, 25, 29, 30, 31, 35, 39, 40, 50 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsComplementOfIntegralIdeal(d,s);</span>
true            
</pre></div>

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

<h5>7.1-8 IdealByDivisorClosedSet</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IdealByDivisorClosedSet</code>( <var class="Arg">X</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">X</var> is a subset of <var class="Arg">S</var> with the following property: for all <span class="SimpleMath">\(x\)</span> in <var class="Arg">X</var> and every <span class="SimpleMath">\(y\)</span> in <var class="Arg">S</var> with <span class="SimpleMath">\(x-y\)</span> in <var class="Arg">S</var>, the integer <span class="SimpleMath">\(y\)</span> is also in <var class="Arg">X</var>. The output is the integral ideal <span class="SimpleMath">\(\textit{S}\setminus \textit{X}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(10,11,15,19);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[20,21,25]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=Difference(0+s,i);</span>
[ 0, 10, 11, 15, 19, 22, 26, 29, 33, 34, 37, 38, 48 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">i=IdealByDivisorClosedSet(d,s);</span>
true
</pre></div>

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

<h5>7.1-9 SmallElements</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallElements</code>( <var class="Arg">I</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">‣ SmallElementsOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is a list with the elements in <var class="Arg">I</var> that are less than or equal to the greatest integer not belonging to the ideal plus one.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[3,5,9]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(I);</span>
[ 3, 5, 7, 9, 11, 13 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(I) = SmallElementsOfIdealOfNumericalSemigroup(I);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">J:=[2,11]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(J);</span>
[ 2, 4, 6, 8, 10 ]
</pre></div>

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

<h5>7.1-10 Conductor</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Conductor</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConductorOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the largest element in <var class="Arg">SmallElements(I)</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Conductor(10+s);</span>
15
<span class="GAPprompt">gap></span> <span class="GAPinput">ConductorOfIdealOfNumericalSemigroup(10+s);</span>
15
</pre></div>

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

<h5>7.1-11 FrobeniusNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FrobeniusNumber</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FrobeniusNumberOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the largest element not belonging to <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">FrobeniusNumber(0+s);</span>
4
</pre></div>

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

<h5>7.1-12 PseudoFrobenius</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PseudoFrobenius</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PseudoFrobeniusOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the set of pseudo-Frobenius numbers of <var class="Arg">I</var>, that is the set <span class="SimpleMath">\(\textit{I}-M\setminus \textit{I}\)</span>, with <span class="SimpleMath">\(M\)</span> the maximal ideal of the ambient semigroup of <var class="Arg">I</var> (see <a href="chapBib_mj.html#biBnsapp2">[ADG20]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=4+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">PseudoFrobenius(i);</span>
[ 6, 8 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">PseudoFrobenius(s)=PseudoFrobenius(0+s);</span>
true
</pre></div>

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

<h5>7.1-13 Type</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Type</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the cardinality of the set of pseudo-Frobenius numbers of <var class="Arg">I</var> (see <a href="chapBib_mj.html#biBgas-semigroups">[DS21]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">k:=CanonicalIdeal(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Type(k);</span>
1
</pre></div>

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

<h5>7.1-14 Minimum</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Minimum</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the minimum of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">J:=[2,11]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Minimum(J);</span>
2
</pre></div>

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

<h5>7.1-15 BelongsToIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BelongsToIdealOfNumericalSemigroup</code>( <var class="Arg">n</var>, <var class="Arg">I</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">‣ \in</code>( <var class="Arg">n</var>, <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup, <var class="Arg">n</var> is an integer. The output is <code class="code">true</code> if <var class="Arg">n</var> belongs to <var class="Arg">I</var>.</p>

<p><var class="Arg"> n in I</var> can be used for short.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">J:=[2,11]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BelongsToIdealOfNumericalSemigroup(9,J);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">9 in J;</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">BelongsToIdealOfNumericalSemigroup(10,J);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">10 in J;</span>
true
</pre></div>

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

<h5>7.1-16 ElementNumber_IdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ElementNumber_IdealOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">r</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup and <var class="Arg">r</var> is an integer. It returns the <var class="Arg">r</var>-th element of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I := [2,5]+ NumericalSemigroup(7,8,17);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ElementNumber_IdealOfNumericalSemigroup(I,10);</span>
19
</pre></div>

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

<h5>7.1-17 NumberElement_IdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NumberElement_IdealOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">r</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup and <var class="Arg">r</var> is an integer. It returns the position of <var class="Arg">r</var> in <var class="Arg">I</var> (and <code class="code">fail</code> if the integer is not in the ideal).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I := [2,5]+ NumericalSemigroup(7,8,17);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">NumberElement_IdealOfNumericalSemigroup(I,19);</span>
10
</pre></div>

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

<h5><code>7.1-18 <span>\</span>[ <span>\</span>]</code></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ <span>\</span>[ <span>\</span>]</code>( <var class="Arg">I</var>, <var class="Arg">r</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup and <var class="Arg">r</var> is an integer. It returns the <var class="Arg">r</var>-th element of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I := [2,5]+ NumericalSemigroup(7,8,17);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I[10];</span>
19
</pre></div>

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

<h5><code>7.1-19 \{ \}</code></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ \{ \}</code>( <var class="Arg">I</var>, <var class="Arg">ls</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup and <var class="Arg">ls</var> is a list of integers. It returns the list <var class="Arg">[I[r] : r in ls]</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I := [2,5]+ NumericalSemigroup(7,8,17);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I{[10..13]};</span>
[ 19, 20, 21, 22 ]
</pre></div>

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

<h5>7.1-20 Iterator</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Iterator</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. It returns an iterator over <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,10,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[2,3]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">iter:=Iterator(i);</span>
<iterator>
<span class="GAPprompt">gap></span> <span class="GAPinput">NextIterator(iter);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">NextIterator(iter);</span>
3
<span class="GAPprompt">gap></span> <span class="GAPinput">NextIterator(iter);</span>
6
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(i);</span>
[ 2, 3, 6, 7, 10 ]
</pre></div>

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

<h5>7.1-21 SumIdealsOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SumIdealsOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">J</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">‣ +</code>( <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I, J</var> are ideals of a numerical semigroup. The output is the sum of both ideals <span class="SimpleMath">\(\{ i+j \ |\ i\in \textit{I}, j\in \textit{J}\}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[3,5,9]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">J:=[2,11]+NumericalSemigroup(2,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I+J;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);</span>
[ 5, 14 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SumIdealsOfNumericalSemigroup(I,J);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);</span>
[ 5, 14 ]
</pre></div>

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

<h5>7.1-22 MultipleOfIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MultipleOfIdealOfNumericalSemigroup</code>( <var class="Arg">n</var>, <var class="Arg">I</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">‣ *</code>( <var class="Arg">n</var>, <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup, <var class="Arg">n</var> is a non negative integer. The output is the ideal <span class="SimpleMath">\(\textit{I}+\cdots+\textit{I}\)</span> (<var class="Arg">n</var> times).</p>

<p><var class="Arg"> n * I</var> can be used for short.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[0,1]+NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MultipleOfIdealOfNumericalSemigroup(2,I) = 2*I;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystemOfIdealOfNumericalSemigroup(2*I);</span>
[ 0, 1, 2 ]
</pre></div>

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

<h5>7.1-23 SubtractIdealsOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubtractIdealsOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">J</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">‣ -</code>( <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I, J</var> are ideals of a numerical semigroup. The output is the ideal <span class="SimpleMath">\(\{ z\in {\mathbb Z}\ |\ z+\textit{J}\subseteq \textit{I}\}\)</span>.</p>

<p><span class="SimpleMath">\(I - J\)</span> can be used as a short for <code class="code">SubtractIdealsOfNumericalSemigroup(I,J)</code>.</p>

<p><span class="SimpleMath">\(S-\)</span><var class="Arg">J</var> is a synonym of <span class="SimpleMath">\((0+S)-\)</span><var class="Arg">J</var>, if <span class="SimpleMath">\(S\)</span> is the ambient semigroup of <var class="Arg">I</var> and <var class="Arg">J</var>. The following example appears in <a href="chapBib_mj.html#biBHS04">[HS04]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=NumericalSemigroup(14, 15, 20, 21, 25);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[0,1]+S;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">II:=S-I;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(I);</span>
[ 0, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(II);</span>
[ 14, 20 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(I+II);</span>
[ 14, 15, 20, 21 ]
</pre></div>

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

<h5>7.1-24 Difference</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Difference</code>( <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DifferenceOfIdealsOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">J</var)</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I, J</var> are ideals of a numerical semigroup. <var class="Arg">J</var> must be contained in <var class="Arg">I</var>. The output is the set <span class="SimpleMath">\(\textit{I}\setminus \textit{J}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=NumericalSemigroup(14, 15, 20, 21, 25);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[0,1]+S;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">2*I-2*I;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">I-I;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">ii := 2*I-2*I;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">i := I-I;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput"> Difference(last2,last);</span>
[ 26, 27, 37, 38 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">DifferenceOfIdealsOfNumericalSemigroup(ii,i);</span>
[ 26, 27, 37, 38 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Difference(i,ii);</span>
[  ]
</pre></div>

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

<h5>7.1-25 TranslationOfIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TranslationOfIdealOfNumericalSemigroup</code>( <var class="Arg">k</var>, <var class="Arg">I</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">‣ +</code>( <var class="Arg">k</var>, <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Given an ideal <var class="Arg">I</var> of a numerical semigroup S and an integer <var class="Arg">k</var>, returns an ideal of the numerical semigroup S generated by <span class="SimpleMath">\(\{i_1+k,\ldots,i_n+k\}\)</span>, where <span class="SimpleMath">\(\{i_1,\ldots,i_n\}\)</span> is the system of generators of <var class="Arg">I</var>.</p>

<p>As a synonym to <code class="code">TranslationOfIdealOfNumericalSemigroup(k, I)</code> the expression <code class="code">k + I</code> may be used.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(13,23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=List([1..6], _ -> Random([8..34]));</span>
[ 22, 29, 34, 25, 10, 12 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=IdealOfNumericalSemigroup(l, s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">It:=TranslationOfIdealOfNumericalSemigroup(7,I);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">It2:=7+I;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">It2=It;</span>
true
</pre></div>

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

<h5>7.1-26 Union</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Union</code>( <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I, J</var> are ideals of a numerical semigroup. The output is the union of both ideals.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=2+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">J:=3+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Union(I,J);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">Generators(last);</span>
[ 2, 3 ]
</pre></div>

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

<h5>7.1-27 Intersection</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Intersection</code>( <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IntersectionIdealsOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">J</var)</td><td class="tdright">( function )</td></tr></table></div>
<p>Given two ideals <var class="Arg">I</var> and <var class="Arg">J</var> of a numerical semigroup <var class="Arg">S</var> returns the ideal of the numerical semigroup <var class="Arg">S</var> which is the intersection of the ideals <var class="Arg">I</var> and <var class="Arg">J</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=IdealOfNumericalSemigroup([75,89],s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">j:=IdealOfNumericalSemigroup([115,289],s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection(i,j);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">IntersectionIdealsOfNumericalSemigroup(i,j) = Intersection(i,j);</span>
true
</pre></div>

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

<h5>7.1-28 MaximalIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MaximalIdeal</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MaximalIdealOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns the maximal ideal of the numerical semigroup <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s := NumericalSemigroup(3,7);;                   </span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MaximalIdeal(s);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">MaximalIdealOfNumericalSemigroup(s) = MaximalIdeal(s);</span>
true
</pre></div>

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

<h5>7.1-29 CanonicalIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CanonicalIdeal</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CanonicalIdealOfNumericalSemigroup</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. Computes the (standard) canonical ideal of <var class="Arg">S</var> (<a href="chapBib_mj.html#biBBF97">[BF97]</a>): <span class="SimpleMath">\(\{ x \in \mathbb{Z} | g-x \not \in S\} \)</span>, where <span class="SimpleMath">\(g\)</span> is the Frobenius number of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,6,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m:=MaximalIdeal(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c:=CanonicalIdeal(s);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">c-(c-m)=m;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">id:=3+s;</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">c-(c-id)=id;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">CanonicalIdealOfNumericalSemigroup(s) = c;</span>
true
</pre></div>

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

<h5>7.1-30 IsCanonicalIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCanonicalIdeal</code>( <var class="Arg">E</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">‣ IsCanonicalIdealOfNumericalSemigroup</code>( <var class="Arg">E</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">E</var> is an ideal of a numerical semigroup, say <span class="SimpleMath">\(S\)</span>. Determines if <var class="Arg">E</var> is a translation of the canonical ideal of <span class="SimpleMath">\(S\)</span>, or equivalently, for every ideal <span class="SimpleMath">\(J\)</span>, <span class="SimpleMath">\(E-(E-J)=J\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c:=3+CanonicalIdeal(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c-(c-(3+s))=3+s;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCanonicalIdeal(c);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCanonicalIdealOfNumericalSemigroup(c);</span>
true
</pre></div>

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

<h5>7.1-31 IsAlmostCanonicalIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAlmostCanonicalIdeal</code>( <var class="Arg">E</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">E</var> is an ideal of a numerical semigroup, say <span class="SimpleMath">\(S\)</span>. Set <span class="SimpleMath">\(I\)</span> to be a translation of <var class="Arg">E</var> so that its conductor is the same as the conductor of <span class="SimpleMath">\(S\)</span>, and let <span class="SimpleMath">\(M\)</span> and <span class="SimpleMath">\(K\)</span> be the maximal and canonical ideals of <span class="SimpleMath">\(S\)</span>, respectively. Then <var class="Arg">E</var> is almost canonical if <span class="SimpleMath">\(I-M=K-M\)</span> (see <a href="chapBib_mj.html#biBgas-semigroups">[DS21]</a>). Determines if <var class="Arg">E</var> almost canonical.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAlmostSymmetric(s);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAlmostCanonical(MaximalIdeal(s));</span>
true
</pre></div>

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

<h5>7.1-32 TraceIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TraceIdeal</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TraceIdealOfNumericalSemigroup</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. Computes the trace ideal of <var class="Arg">S</var> (<a href="chapBib_mj.html#biBtrace-ideal">[HHS21]</a>), that is, <span class="SimpleMath">\(K+(\textit{S}-K)\)</span>, with <span class="SimpleMath">\(K\)</span> the canonical ideal of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(TraceIdeal(s));</span>
[ 3, 5, 7 ]
</pre></div>

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

<h5>7.1-33 TypeSequence</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TypeSequence</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TypeSequenceOfNumericalSemigroup</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.</p>

<p>Computes the type sequence of a numerical semigroup. That is, the secuence <span class="SimpleMath">\(t_i(\textit{S})=\sharp(\textit{S}(i)\setminus \textit{S}(i-1))\)</span>, with <span class="SimpleMath">\(\textit{S}(i)=\{ s\in S\mid s\ge s_i\}\)</span> and <span class="SimpleMath">\(s_i\)</span> the <span class="SimpleMath">\(i\)</span>th element of <var class="Arg">S</var>.</p>

<p>This function is the implementation of the algorithm given in <a href="chapBib_mj.html#biBBDF97">[BDF97]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">TypeSequence(s);</span>
[ 13, 3, 4, 4, 7, 3, 3, 3, 2, 2, 2, 3, 3, 2, 4, 3, 2, 1, 3, 2, 1, 1, 2, 2, 1,
  1, 1, 2, 2, 1, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
  1, 1, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,6,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">TypeSequenceOfNumericalSemigroup(s);</span>
[ 1, 1, 1, 1, 1, 1, 1 ]
</pre></div>

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

<h4>7.2 <span class="Heading">
        Decomposition into irreducibles
    </span></h4>

<p>Let <span class="SimpleMath">\(I\)</span> be an ideal of a numerical semigroup <span class="SimpleMath">\(S\)</span>. We say that <span class="SimpleMath">\(I\)</span> is <span class="SimpleMath">\(\mathbb{Z}\)</span>-<em>irreducible</em> if it cannot be expressed as a finite intersection of other relative ideals properly containing it. Every ideal <span class="SimpleMath">\(I\)</span> can be expressed as an intersection of exactly <span class="SimpleMath">\(t\)</span> irreducible ideals of <span class="SimpleMath">\(S\)</span>, where <span class="SimpleMath">\(t\)</span> is the type of <span class="SimpleMath">\(I\)</span>. These irreducible ideals are unique and are known as the <em>irreducible <span class="SimpleMath">\(\mathbb{Z}\)</span>-components</em> of <span class="SimpleMath">\(I\)</span>. Recall that an ideal is integral (or proper) if it is contained in its ambient semigroup. We say that an integral ideal is <em>irreducible</em> if it cannot be expressed as an intersection of other proper integral ideals. Every integral ideal admits a unique decomposition into irredundant irreducible integral ideals.</p>

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

<h5>7.2-1 IrreducibleZComponents</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IrreducibleZComponents</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the list of irreducible <span class="SimpleMath">\(\mathbb{Z}\)</span>-components of <var class="Arg">I</var>. These are calculated using Proposition 24 in <a href="chapBib_mj.html#biBnsapp2">[ADG20]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[4,5]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">zc:=IrreducibleZComponents(i);</span>
[ <Ideal of numerical semigroup>, <Ideal of numerical semigroup> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(zc,MinimalGenerators);</span>
[ [ 2, 4 ], [ -2, 0 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">i=Intersection(zc);</span>
true
</pre></div>

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

<h5>7.2-2 DecomposeIntegralIdealIntoIrreducibles</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DecomposeIntegralIdealIntoIrreducibles</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an integral ideal of a numerical semigroup. The output is the list of irreducible integral ideals whose intersection is the unique irredundant decomposition of <var class="Arg">I</var> into integral proper ideals. The computations are performed using Theorem 4 in <a href="chapBib_mj.html#biBnsapp2">[ADG20]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">di:=DecomposeIntegralIdealIntoIrreducibles(i);</span>
[ <Ideal of numerical semigroup>, <Ideal of numerical semigroup> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(di,MinimalGenerators);</span>
[ [ 8, 10 ], [ 10, 12 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">i=Intersection(di);</span>
true
</pre></div>

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

<h4>7.3 <span class="Heading">
                    Blow ups and closures
                </span></h4>

<p>The blow up of an ideal <span class="SimpleMath">\(I\)</span> of a numerical semigroup is the ideal <span class="SimpleMath">\(\bigcup_{n\geq 0} n\textit{I}-n\textit{I}\)</span>. In this section we provide functions to compute the blow up and related invariants.</p>

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

<h5>7.3-1 HilbertFunctionOfIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HilbertFunctionOfIdealOfNumericalSemigroup</code>( <var class="Arg">n</var>, <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup, <var class="Arg">n</var> is a non negative integer. <var class="Arg">I</var> must be contained in its ambient semigroup. The output is the cardinality of the set <span class="SimpleMath">\(\textit{n}\textit{I}\setminus (\textit{n}+1)\textit{I}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[6,9,11]+NumericalSemigroup(6,9,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..7],n->HilbertFunctionOfIdealOfNumericalSemigroup(n,I));</span>
[ 3, 5, 6, 6, 6, 6, 6 ]
</pre></div>

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

<h5>7.3-2 HilbertFunction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HilbertFunction</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. <var class="Arg">I</var> must be contained in its ambient semigroup (integral ideal). The output is a function that maps to each <span class="SimpleMath">\(n\)</span> the cardinality of the set <span class="SimpleMath">\(n\textit{I}\setminus (n+1)\textit{I}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[6,9,11]+NumericalSemigroup(6,9,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..7],n->HilbertFunction(I)(n));</span>
[ 3, 5, 6, 6, 6, 6, 6 ]
</pre></div>

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

<h5>7.3-3 BlowUp</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BlowUp</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BlowUpIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the ideal <span class="SimpleMath">\(\bigcup_{n\geq 0} n\textit{I}-n\textit{I}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[0,2]+NumericalSemigroup(6,9,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BlowUp(I);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(last);</span>
[ 0, 2, 4, 6, 8 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">BlowUpIdealOfNumericalSemigroup(I);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElementsOfIdealOfNumericalSemigroup(last);</span>
[ 0, 2, 4, 6, 8 ]
</pre></div>

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

<h5>7.3-4 ReductionNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ReductionNumber</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ReductionNumberIdealNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the least integer such that <span class="SimpleMath">\(n \textit{I} + i=(n+1)\textit{I}\)</span>, where <span class="SimpleMath">\(i=min(\textit{I})\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=[0,2]+NumericalSemigroup(6,9,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ReductionNumber(I);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">ReductionNumberIdealNumericalSemigroup(I);</span>
2
</pre></div>

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

<h5>7.3-5 BlowUp</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BlowUp</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BlowUpOfNumericalSemigroup</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. If <var class="Arg">M</var> is the maximal ideal of the numerical semigroup, then the output is the numerical semigroup <span class="SimpleMath">\(\bigcup_{n\geq 0} n\textit{M}-n\textit{M}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BlowUp(s);</span>
<Numerical semigroup with 10 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(last);</span>
[ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
  40, 41, 42, 44 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">BlowUpOfNumericalSemigroup(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(last);</span>
[ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
  40, 41, 42, 44 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">m:=MaximalIdeal(s);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">BlowUp(m);</span>
<Ideal of numerical semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(last);</span>
[ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
  40, 41, 42, 44 ]
</pre></div>

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

<h5>7.3-6 LipmanSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LipmanSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This is just a synonym of <code class="func">BlowUpOfNumericalSemigroup</code> (<a href="chap7_mj.html#X7BFC52B7804542F5"><span class="RefLink">7.3-5</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">LipmanSemigroup(s);</span>
<Numerical semigroup with 10 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElementsOfNumericalSemigroup(last);</span>
[ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
  40, 41, 42, 44 ]
</pre></div>

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

<h5>7.3-7 RatliffRushNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RatliffRushNumber</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RatliffRushNumberOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup <span class="SimpleMath">\(S\)</span>. The output is the least integer such that <span class="SimpleMath">\(S\cap (n+1)\textit{I}-n\textit{I}\)</span> is the Ratliff-Rush closure of <var class="Arg">I</var> (see <a href="chapBib_mj.html#biBDA-G-H">[DGH01]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup([9..17]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[9,10,12]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">RatliffRushNumber(i);</span>
3
<span class="GAPprompt">gap></span> <span class="GAPinput">ReductionNumber(i);</span>
4
</pre></div>

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

<h5>7.3-8 RatliffRushClosure</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RatliffRushClosure</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RatliffRushClosureOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup <span class="SimpleMath">\(S\)</span>. The output is the Ratliff-Rush closure of <var class="Arg">I</var>: <span class="SimpleMath">\(S\cap \bigcup_{n\in \mathbb{N}}(n+1)\textit{I}-n\textit{I}\)</span> (see <a href="chapBib_mj.html#biBDA-G-H">[DGH01]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,5,6,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[4,5]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(RatliffRushClosure(i));</span>
[ 4, 5, 6, 7 ]
</pre></div>

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

<h5>7.3-9 AsymptoticRatliffRushNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsymptoticRatliffRushNumber</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsymptoticRatliffRushNumberOfIdealOfNumericalSemigroup</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup. The output is the least <span class="SimpleMath">\(n\)</span> such that the Ratliff-Rush closure of <span class="SimpleMath">\(m\textit{I}\)</span> equals <span class="SimpleMath">\(m\textit{I}\)</span> for all <span class="SimpleMath">\(m\ge n\)</span> (see <a href="chapBib_mj.html#biBDA-G-H">[DGH01]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[4,5]+NumericalSemigroup([4..7]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsymptoticRatliffRushNumber(i);</span>
3
</pre></div>

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

<h5>7.3-10 MultiplicitySequence</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MultiplicitySequence</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MultiplicitySequenceOfNumericalSemigroup</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 a list with the multiplicities of the sequence <span class="SimpleMath">\(S\subseteq L(S)\subseteq \cdots \subseteq \mathbb{N}\)</span>, where <span class="SimpleMath">\(L(\cdot)\)</span> means <code class="func">LipmanSemigroup</code> (<a href="chap7_mj.html#X8799F0347FF0D510"><span class="RefLink">7.3-6</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MultiplicitySequence(s);</span>
[ 3, 2, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MultiplicitySequenceOfNumericalSemigroup(s);</span>
[ 3, 2, 1 ]
</pre></div>

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

<h5>7.3-11 MicroInvariants</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MicroInvariants</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MicroInvariantsOfNumericalSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns the microinvariants of the numerical semigroup <var class="Arg">S</var> defined in <a href="chapBib_mj.html#biBE01">[Eli01]</a>. For their computation we have used the formula given in <a href="chapBib_mj.html#biBBF06">[BF06]</a>. The Apéry set of <var class="Arg">S</var> and its blow up are involved in this computation.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">bu:=BlowUpOfNumericalSemigroup(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ap:=AperyListOfNumericalSemigroupWRTElement(s,30);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">apbu:=AperyListOfNumericalSemigroupWRTElement(bu,30);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">(ap-apbu)/30;</span>
[ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2,
  5, 4, 3, 3, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MicroInvariants(s)=last;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">MicroInvariantsOfNumericalSemigroup(s)=MicroInvariants(s);</span>
true
</pre></div>

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

<h5>7.3-12 AperyList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperyList</code>( <var class="Arg">I</var>, <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperyListOfIdealOfNumericalSemigroupWRTElement</code>( <var class="Arg">I</var>, <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal and <var class="Arg">n</var> is an integer. Computes the set of elements <span class="SimpleMath">\(x\)</span> of <var class="Arg">I</var> such that <span class="SimpleMath">\(x-\)</span><var class="Arg">n</var> is not in the ideal <var class="Arg">I</var>, where <var class="Arg">n</var> is supposed to be in the ambient semigroup of <var class="Arg">I</var>. The element in the <span class="SimpleMath">\(i\)</span>th position of the output list (starting in 0) is congruent with <span class="SimpleMath">\(i\)</span> modulo <var class="Arg">n</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(10,11,13);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[12,14]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AperyList(i,10);</span>
[ 40, 51, 12, 23, 14, 25, 36, 27, 38, 49 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AperyListOfIdealOfNumericalSemigroupWRTElement(i,10);</span>
[ 40, 51, 12, 23, 14, 25, 36, 27, 38, 49 ]
</pre></div>

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

<h5>7.3-13 AperyList</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperyList</code>( <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal. Computes the Apéry list of <var class="Arg">I</var> with respect to the multiplicity of its ambient numerical semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(5,7,9);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[0,1,2]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AperyList(i);</span>
[ 0, 1, 2, 8, 9 ]
</pre></div>

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

<h5>7.3-14 AperyTable</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperyTable</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperyTableOfNumericalSemigroup</code>( <var class="Arg">s</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Computes the Apéry table associated to the numerical semigroup <var class="Arg">s</var> as explained in <a href="chapBib_mj.html#biBCJZ">[CBJZA13]</a>, that is, a list containing the Apéry list of <var class="Arg">s</var> with respect to its multiplicity and the Apéry lists of <span class="SimpleMath">\(kM\)</span> (with <span class="SimpleMath">\(M\)</span> the maximal ideal of <var class="Arg">s</var>) with respect to the multiplicity of <var class="Arg">s</var>, for <span class="SimpleMath">\(k\in\{1,\ldots,r\}\)</span>, where <span class="SimpleMath">\(r\)</span> is the reduction number of <span class="SimpleMath">\(M\)</span> (see <code class="func">ReductionNumberIdealNumericalSemigroup</code> (<a href="chap7_mj.html#X7FAABCBF8299B12F"><span class="RefLink">7.3-4</span></a>)).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(10,11,13);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AperyTable(s);</span>
[ [ 0, 11, 22, 13, 24, 35, 26, 37, 48, 39 ],
  [ 10, 11, 22, 13, 24, 35, 26, 37, 48, 39 ],
  [ 20, 21, 22, 23, 24, 35, 26, 37, 48, 39 ],
  [ 30, 31, 32, 33, 34, 35, 36, 37, 48, 39 ],
  [ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AperyTableOfNumericalSemigroup(s) = AperyTable(s);</span>
true
</pre></div>

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

<h5>7.3-15 StarClosureOfIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ StarClosureOfIdealOfNumericalSemigroup</code>( <var class="Arg">i</var>, <var class="Arg">is</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">i</var> is an ideal and <var class="Arg">is</var> is a set of ideals (all from the same numerical semigroup<span class="SimpleMath">\(s\)</span>). The output is <span class="SimpleMath">\(i^{*_{is}}\)</span>, where <span class="SimpleMath">\(*_{is}\)</span> is the star operation generated by <var class="Arg">is</var>: <span class="SimpleMath">\((s-(s-i))\bigcap_{k\in is} (k-(k-i))\)</span>. The implementation uses Section 3 of <a href="chapBib_mj.html#biBMR3354072">[Spi15]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StarClosureOfIdealOfNumericalSemigroup([0,2]+s,[[0,4]+s]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(last);</span>
[ 0, 2, 4 ]
</pre></div>

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

<h4>7.4 <span class="Heading">
    Patterns for ideals
</span></h4>

<p>In this section we document the functions implemented by K. Stokes related to patterns of ideals in numerical semigroups. The correctness of the algorithms can be found in <a href="chapBib_mj.html#biBStokes">[Sto16]</a>.</p>

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

<h5>7.4-1 IsAdmissiblePattern</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdmissiblePattern</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a pattern.</p>

<p>Returns <code class="code">true</code> or <code class="code">false</code> depending if the pattern is admissible or not (see <a href="chapBib_mj.html#biBBA-GS">[BG06]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmissiblePattern([1,1,-1]);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmissiblePattern([1,-2]);</span>
false
</pre></div>

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

<h5>7.4-2 IsStronglyAdmissiblePattern</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsStronglyAdmissiblePattern</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a pattern.</p>

<p>Returns <code class="code">true</code> or <code class="code">false</code> depending if the pattern is strongly admissible or not (see <a href="chapBib_mj.html#biBBA-GS">[BG06]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmissiblePattern([1,-1]);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsStronglyAdmissiblePattern([1,-1]);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsStronglyAdmissiblePattern([1,1,-1]);</span>
true
</pre></div>

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

<h5>7.4-3 AsIdealOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsIdealOfNumericalSemigroup</code>( <var class="Arg">I</var>, <var class="Arg">T</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is an ideal of a numerical semigroup <span class="SimpleMath">\(S\)</span>, and <var class="Arg">T</var> is a numerical semigroup. Detects if <var class="Arg">I</var> is an ideal of <var class="Arg">T</var> and contained in <var class="Arg">T</var> (integral ideal), and if so, returns <var class="Arg">I</var> as an ideal of <var class="Arg">T</var>. It returns <code class="code">fail</code> if <var class="Arg">I</var> is an ideal of some semigroup but not an integral ideal of <var class="Arg">T</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=NumericalSemigroup(10,11,14);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsIdealOfNumericalSemigroup(10+s,t);</span>
fail
<span class="GAPprompt">gap></span> <span class="GAPinput">AsIdealOfNumericalSemigroup(100+s,t);</span>
<Ideal of numerical semigroup>
</pre></div>

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

<h5>7.4-4 BoundForConductorOfImageOfPattern</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BoundForConductorOfImageOfPattern</code>( <var class="Arg">p</var>, <var class="Arg">C</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of an admissible pattern. <var class="Arg">C</var> is a positive integer. Calculates an upper bound of the smallest element <span class="SimpleMath">\(K\)</span> in <span class="SimpleMath">\(p(I)\)</span> such that all integers larger than <span class="SimpleMath">\(K\)</span> belong to <span class="SimpleMath">\(p(I)\)</span>, where <span class="SimpleMath">\(I\)</span> is an ideal of a numerical semigroup. Instead of taking <span class="SimpleMath">\(I\)</span> as parameter, the function takes <span class="SimpleMath">\(C\)</span>, which is assumed to be the conductor of <span class="SimpleMath">\(I\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">BoundForConductorOfImageOfPattern([1,1,-1],10);</span>
10
</pre></div>

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

<h5>7.4-5 ApplyPatternToIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ApplyPatternToIdeal</code>( <var class="Arg">p</var>, <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a strongly admissible pattern. <var class="Arg">I</var> is an ideal of a numerical semigroup.</p>

<p>Outputs <span class="SimpleMath">\(p(I)\)</span>, represented as <code class="code">[d,p(I)/d]</code>, where <code class="code">d</code> is the gcd of the coefficients of <var class="Arg">p</var>. All elements of <span class="SimpleMath">\(p(I)\)</span> are divisible by <span class="SimpleMath">\(d\)</span>, and <span class="SimpleMath">\(p(I)/d\)</span> is an ideal of some numerical semigroup. It is returned as the maximal ideal of the numerical semigroup <span class="SimpleMath">\(p(I)/d \cup \{0\}\)</span>. The ambient numerical semigroup can later be changed with the function <code class="code">AsIdealOfNumericalSemigroup</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ApplyPatternToIdeal([1,1,-1],i);</span>
[ 1, <Ideal of numerical semigroup> ]
</pre></div>

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

<h5>7.4-6 ApplyPatternToNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ApplyPatternToNumericalSemigroup</code>( <var class="Arg">p</var>, <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a strongly admissible pattern. <var class="Arg">S</var> is a numerical semigroup.</p>

<p>Outputs <code class="code">ApplyPatternToIdeal(p,0+S)</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ApplyPatternToNumericalSemigroup([1,1,-1],s);</span>
[ 1, <Ideal of numerical semigroup> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(last[2]);</span>
[ 0, 3, 5 ]
</pre></div>

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

<h5>7.4-7 IsAdmittedPatternByIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdmittedPatternByIdeal</code>( <var class="Arg">p</var>, <var class="Arg">I</var>, <var class="Arg">J</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a strongly admissible pattern. <var class="Arg">I</var> and <var class="Arg">J</var> are ideals of certain numerical semigroups.</p>

<p>Tests whether or not <span class="SimpleMath">\(p(I)\)</span> is contained in <var class="Arg">J</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=[3,5]+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmittedPatternByIdeal([1,1,-1],i,i);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmittedPatternByIdeal([1,1,-1],i,0+s);</span>
true
</pre></div>

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

<h5>7.4-8 IsAdmittedPatternByNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsAdmittedPatternByNumericalSemigroup</code>( <var class="Arg">p</var>, <var class="Arg">S</var>, <var class="Arg">T</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is the list of integers that are the coefficients of a strongly admissible pattern. <var class="Arg">S</var> and <var class="Arg">T</var> are numerical semigroups.</p>

<p>Tests whether or not <span class="SimpleMath">\(p(S)\)</span> is contained in <var class="Arg">T</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,7,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAdmittedPatternByNumericalSemigroup([1,1,-1],s,s);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsArfNumericalSemigroup(s);</span>
true
</pre></div>

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

<h4>7.5 <span class="Heading">Graded associated ring of numerical semigroup</span></h4>

<p>This section contains several functions to test properties of the graded (with respect to the maximal ideal) semigroup ring <span class="SimpleMath">\(\mathbb{K}[\![S]\!]\)</span> (with <span class="SimpleMath">\(S\)</span> a numerical semigroup).</p>

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

<h5>7.5-1 IsGradedAssociatedRingNumericalSemigroupCM</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGradedAssociatedRingNumericalSemigroupCM</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup. Returns <code class="code">true</code> if the graded ring associated to <span class="SimpleMath">\(K[[\textit{S}]]\)</span> is Cohen-Macaulay, and <code class="code">false</code> otherwise. This test is the implementation of the algorithm given in <a href="chapBib_mj.html#biBBF06">[BF06]</a>.</p>

<p>This filter implies <code class="func">IsGradedAssociatedRingNumericalSemigroupBuchsbaum</code> (<a href="chap7_mj.html#X782D557583CEDD04"><span class="RefLink">7.5-2</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupCM(s);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">MicroInvariantsOfNumericalSemigroup(s);</span>
[ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2,
  5, 4, 3, 3, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(AperyListOfNumericalSemigroupWRTElement(s,30),</span>
<span class="GAPprompt">></span> <span class="GAPinput">w->MaximumDegreeOfElementWRTNumericalSemigroup (w,s));</span>
[ 0, 1, 4, 1, 2, 1, 3, 1, 4, 3, 2, 3, 1, 1, 4, 3, 3, 1, 4, 1, 4, 3, 2, 4, 2,
  5, 4, 3, 1, 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">last=last2;</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,6,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupCM(s);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">MicroInvariantsOfNumericalSemigroup(s);</span>
[ 0, 2, 1, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(AperyListOfNumericalSemigroupWRTElement(s,4),</span>
<span class="GAPprompt">></span> <span class="GAPinput">w->MaximumDegreeOfElementWRTNumericalSemigroup(w,s));</span>
[ 0, 2, 1, 1 ]
  </pre></div>

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

<h5>7.5-2 IsGradedAssociatedRingNumericalSemigroupBuchsbaum</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGradedAssociatedRingNumericalSemigroupBuchsbaum</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup.</p>

<p>Returns <code class="code">true</code> if the graded ring associated to <span class="SimpleMath">\(K[\![\textit{S}]\!]\)</span> is Buchsbaum, and <code class="code">false</code> otherwise. This test is the implementation of the algorithm given in <a href="chapBib_mj.html#biBDA-M-M">[DMV09]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupBuchsbaum(s);</span>
true
</pre></div>

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

<h5>7.5-3 TorsionOfAssociatedGradedRingNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TorsionOfAssociatedGradedRingNumericalSemigroup</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.</p>

<p>This function returns the set of elements in the numerical semigroup <var class="Arg">S</var> corresponding to a <span class="SimpleMath">\(\mathbb{K}\)</span>-basis of the torsion submodule of the associated graded ring of the numerical semigroup ring <span class="SimpleMath">\(\mathbb{K}[\![S]\!]\)</span>. It uses the Apery table as explained in <a href="chapBib_mj.html#biBCJZ">[CBJZA13]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">TorsionOfAssociatedGradedRingNumericalSemigroup(s);</span>
[ 181, 153, 157, 193, 169, 148 ]
</pre></div>

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

<h5>7.5-4 BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup</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.</p>

<p>This function returns the smallest non-negative integer <span class="SimpleMath">\(k\)</span> for which the associated graded ring <span class="SimpleMath">\(G\)</span> of a given numerical semigroup ring is <span class="SimpleMath">\(k\)</span>-Buchsbaum, that is, the least <span class="SimpleMath">\(k\)</span> for which the torsion submodule of <span class="SimpleMath">\(G\)</span> is annihilated by the <span class="SimpleMath">\(k\)</span>-th power of the homogeneous maximal ideal of <span class="SimpleMath">\(G\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup(s);</span>
1
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupBuchsbaum(s);</span>
true
</pre></div>

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

<h5>7.5-5 IsGradedAssociatedRingNumericalSemigroupGorenstein</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGradedAssociatedRingNumericalSemigroupGorenstein</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.</p>

<p>Returns <code class="code">true</code> if the graded ring associated to <span class="SimpleMath">\(K[[\textit{S}]]\)</span> is Gorenstein, and <code class="code">false</code> otherwise. This test is the implementation of the algorithm given in <a href="chapBib_mj.html#biBDA-M-S">[DMS11]</a>.</p>

<p>This filter implies <code class="func">IsGradedAssociatedRingNumericalSemigroupCM</code> (<a href="chap7_mj.html#X7876199778D6B320"><span class="RefLink">7.5-1</span></a>), <code class="func">IsMpureNumericalSemigroup</code> (<a href="chap9_mj.html#X8400FB5D81EFB5FE"><span class="RefLink">9.8-2</span></a>), and <code class="func">IsSymmetricNumericalSemigroup</code> (<a href="chap6_mj.html#X7C381E277917B0ED"><span class="RefLink">6.1-2</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupGorenstein(s);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,6,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupGorenstein(s);</span>
true
</pre></div>

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

<h5>7.5-6 IsGradedAssociatedRingNumericalSemigroupCI</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGradedAssociatedRingNumericalSemigroupCI</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.</p>

<p>Returns <code class="code">true</code> if the Complete Intersection property of the associated graded ring of a numerical semigroup ring associated to <span class="SimpleMath">\(K[[\textit{S}]]\)</span>, and <code class="code">false</code> otherwise. This test is the implementation of the algorithm given in <a href="chapBib_mj.html#biBDAMSwhen">[DMS13]</a>.</p>

<p>This filter implies <code class="func">IsGradedAssociatedRingNumericalSemigroupGorenstein</code> (<a href="chap7_mj.html#X7A5752C0836370FA"><span class="RefLink">7.5-5</span></a>) and <code class="func">IsAperySetGammaRectangular</code> (<a href="chap6_mj.html#X80CAA1FA7F6FF4FD"><span class="RefLink">6.2-11</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupCI(s);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(4,6,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGradedAssociatedRingNumericalSemigroupCI(s);</span>
true
</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap6_mj.html">[Previous Chapter]</a>    <a href="chap8_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

Messung V0.5 in Prozent
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.45 Sekunden  (vorverarbeitet am  2026-05-06) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge