Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/numericalsgps/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 30.7.2024 mit Größe 37 kB image not shown  

SSL chap10.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/numericalsgps/doc/chap10.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>
<title>GAP (NumericalSgps) - Chapter 10: 
  Polynomials and 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="chap10"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chap10.html">10</a>  <a href="chap11.html">11</a>  <a href="chap12.html">12</a>  <a href="chap13.html">13</a>  <a href="chap14.html">14</a>  <a href="chapA.html">A</a>  <a href="chapB.html">B</a>  <a href="chapC.html">C</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap9.html">[Previous Chapter]</a>    <a href="chap11.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap10_mj.html">[MathJax on]</a></p>
<p><a id="X7D2C77607815273E" name="X7D2C77607815273E"></a></p>
<div class="ChapSects"><a href="chap10.html#X7D2C77607815273E">10 <span class="Heading">
  Polynomials and numerical semigroups
 </span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap10.html#X808FAEE28572191C">10.1 <span class="Heading">
  Generating functions or Hilbert series
 </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X8391C8E782FBFA8A">10.1-1 NumericalSemigroupPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7F59E1167C1EE578">10.1-2 IsNumericalSemigroupPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X855497F77D13436F">10.1-3 NumericalSemigroupFromNumericalSemigroupPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X780479F978D166B0">10.1-4 HilbertSeriesOfNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X87C88E5C7B56931F">10.1-5 GraeffePolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X87A46B53815B158F">10.1-6 IsCyclotomicPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7D9618ED83776B0B">10.1-7 IsKroneckerPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X8366BB727C496D31">10.1-8 IsCyclotomicNumericalSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7B428FA2877EC733">10.1-9 CyclotomicExponentSequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7A33BA9B813A4070">10.1-10 WittCoefficients</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X82C6355287C3BDD1">10.1-11 IsSelfReciprocalUnivariatePolynomial</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap10.html#X7EEF2A1781432A2D">10.2 <span class="Heading">
  Semigroup of values of algebraic curves
 </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7FFF949A7BEEA912">10.2-1 SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X834D6B1A7C421B9F">10.2-2 IsDeltaSequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X824ABFD680A34495">10.2-3 DeltaSequencesWithFrobeniusNumber</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X87B819B886CA5A5C">10.2-4 CurveAssociatedToDeltaSequence</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7E2C3E9A7DE7A078">10.2-5 SemigroupOfValuesOfPlaneCurve</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7F88774F7812D30E">10.2-6 SemigroupOfValuesOfCurve_Local</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X8597259279D1E793">10.2-7 SemigroupOfValuesOfCurve_Global</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7EE8528484642CEE">10.2-8 GeneratorsModule_Global</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X836D31F787641C22">10.2-9 GeneratorsKahlerDifferentials</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7A04B8887F493733">10.2-10 IsMonomialNumericalSemigroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap10.html#X84C670E1826F8B92">10.3 <span class="Heading">
  Semigroups and Legendrian curves
 </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap10.html#X7980A7CE79F09A89">10.3-1 LegendrianGenericNumericalSemigroup</a></span>
</div></div>
</div>

<h3>10 <span class="Heading">
  Polynomials and numerical semigroups
 </span></h3>

<p>Polynomials appear related to numerical semigroups in several ways. One of them is through their associated generating function (or Hilbert series), and another via value semigroups of a curve; and curves might be defined by polynomials. In this chapter we present several functions to compute the polynomial and Hilbert series associated to a numerical semigroup, and to calculate the respective numerical semigroups given a set of defining polynomials.</p>

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

<h4>10.1 <span class="Heading">
  Generating functions or Hilbert series
 </span></h4>

<p>Let <span class="SimpleMath">S</span> be a numerical semigroup. The Hilbert series or generating function associated to <span class="SimpleMath">S</span> is <span class="SimpleMath">H_S(x)=∑_s∈ Sx^s</span> (actually it is the Hilbert function of the ring <span class="SimpleMath">K[S]</span> with <span class="SimpleMath">K</span> a field). See for instance <a href="chapBib.html#biBM">[Mor14]</a>.</p>

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

<h5>10.1-1 NumericalSemigroupPolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NumericalSemigroupPolynomial</code>( <var class="Arg">s</var>, <var class="Arg">x</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">s</var> is a numerical semigroups and <var class="Arg">x</var> a variable (or a value to evaluate in). The output is the polynomial <span class="SimpleMath">1+(x-1)∑_s∈ N∖ S x^s</span>, which equals <span class="SimpleMath">(1-x)H_S(x)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(5,7,9);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">NumericalSemigroupPolynomial(s,x);</span>
x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1
</pre></div>

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

<h5>10.1-2 IsNumericalSemigroupPolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNumericalSemigroupPolynomial</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is a polynomial in one variable. The output is true if there exists a numerical semigroup <span class="SimpleMath">S</span> such that <var class="Arg">f</var> equals <span class="SimpleMath">(1-x)H_S(x)</span>, that is, the polynomial associated to <span class="SimpleMath">S</span> (false otherwise).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(5,6,7,8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=NumericalSemigroupPolynomial(s,x);</span>
x^10-x^9+x^5-x+1
<span class="GAPprompt">gap></span> <span class="GAPinput">IsNumericalSemigroupPolynomial(f);</span>
true
</pre></div>

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

<h5>10.1-3 NumericalSemigroupFromNumericalSemigroupPolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NumericalSemigroupFromNumericalSemigroupPolynomial</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is a polynomial associated to a numerical semigroup (otherwise yields error). The output is the numerical semigroup <span class="SimpleMath">S</span> such that <var class="Arg">f</var> equals <span class="SimpleMath">(1-x)H_S(x)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(5,6,7,8);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=NumericalSemigroupPolynomial(s,x);</span>
x^10-x^9+x^5-x+1
<span class="GAPprompt">gap></span> <span class="GAPinput">NumericalSemigroupFromNumericalSemigroupPolynomial(f)=s;</span>
true
</pre></div>

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

<h5>10.1-4 HilbertSeriesOfNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HilbertSeriesOfNumericalSemigroup</code>( <var class="Arg">s</var>, <var class="Arg">x</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">s</var> is a numerical semigroup and <var class="Arg">x</var> a variable (or a value to evaluate in). The output is the series <span class="SimpleMath">∑_s∈ S x^s</span>. The series is given as a rational function.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(5,7,9);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">HilbertSeriesOfNumericalSemigroup(s,x);</span>
(x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1)/(-x+1)
</pre></div>

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

<h5>10.1-5 GraeffePolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GraeffePolynomial</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is a polynomial. Computes the Graeffe polynomial of <var class="Arg">p</var>. Needed to test if <var class="Arg">p</var> is a cyclotomic polynomial (see <a href="chapBib.html#biBBD-cyclotomic">[BD89]</a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Indeterminate(Rationals,1);; SetName(x,"x");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GraeffePolynomial(x^2-1);</span>
x^2-2*x+1
</pre></div>

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

<h5>10.1-6 IsCyclotomicPolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCyclotomicPolynomial</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is a polynomial. Detects if <var class="Arg">p</var> is a cyclotomic polynomial using the procedure given in <a href="chapBib.html#biBBD-cyclotomic">[BD89]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicPolynomial(Rationals,3);</span>
x^2+x+1
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCyclotomicPolynomial(last);</span>
true
</pre></div>

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

<h5>10.1-7 IsKroneckerPolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsKroneckerPolynomial</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is a polynomial. Detects if <var class="Arg">p</var> is a Kronecker polynomial, that is, a monic polynomial with integer coefficients having all its roots in the unit circumference, or equivalently, a product of cyclotomic polynomials. The current implementation has been done with A. Herrera-Poyatos, following <a href="chapBib.html#biBBD-cyclotomic">[BD89]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput"> s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput"> t:=NumericalSemigroup(4,6,9);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=NumericalSemigroupPolynomial(s,x);</span>
x^5-x^4+x^3-x+1
<span class="GAPprompt">gap></span> <span class="GAPinput">q:=NumericalSemigroupPolynomial(t,x);</span>
x^12-x^11+x^8-x^7+x^6-x^5+x^4-x+1
<span class="GAPprompt">gap></span> <span class="GAPinput">IsKroneckerPolynomial(p);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsKroneckerPolynomial(q);</span>
true
</pre></div>

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

<h5>10.1-8 IsCyclotomicNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCyclotomicNumericalSemigroup</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. Detects if the polynomial associated to <var class="Arg">s</var> is a Kronecker polynomial.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber(21);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ForAll(l,IsCyclotomicNumericalSemigroup);</span>
true
</pre></div>

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

<h5>10.1-9 CyclotomicExponentSequence</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclotomicExponentSequence</code>( <var class="Arg">s</var>, <var class="Arg">k</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">s</var> is a numerical semigroup and <var class="Arg">k</var> is a positive integer. Outputs the list of the first <var class="Arg">k</var> elements of the cyclotomic exponent sequence of s (see <a href="chapBib.html#biBC-GS-M">[CGM16]</a>).</p>

<p>The sequence will be truncated if the semigroup is cyclotomic and k is bigger than the last nonzero element in its sequence.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicExponentSequence(s,20);</span>
[ 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclotomicExponentSequence(s,20);</span>
[ 1, 0, -1, 0, -1, 0, -1, 0, 0, 1, 0, 1, 0, 1, 0, 0, -1, 0, -1, 0 ]
</pre></div>

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

<h5>10.1-10 WittCoefficients</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ WittCoefficients</code>( <var class="Arg">p</var>, <var class="Arg">k</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">p</var> is a univariate polynomial with integer coefficientas and <span class="SimpleMath">p(1)=1</span>. Then <span class="SimpleMath">p(x)=∏_n≥ 0(1-x^n)^e_n</span>, for some integers <span class="SimpleMath">e_n</span>. The output is the list <span class="SimpleMath">[e_1,...,e_k]</span>, and it is computed by using <a href="chapBib.html#biBC-GS-HP-M">[CGHM19]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Indeterminate(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">p:=NumericalSemigroupPolynomial(s,x);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">WittCoefficients(p,20);</span>
[ 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ]
</pre></div>

<p>The difference with this example and the one in <code class="func">CyclotomicExponentSequence</code> (<a href="chap10.html#X7B428FA2877EC733"><span class="RefLink">10.1-9</span></a>) is that in that case a cyclotomic check is performed that slows down the process.</p>

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

<h5>10.1-11 IsSelfReciprocalUnivariatePolynomial</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSelfReciprocalUnivariatePolynomial</code>( <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">p</var> is a univariate polynomial. Detects if <var class="Arg">p</var> is selfreciprocal. A numerical semigroup is symmetric if and only if it is selfreciprocal, <a href="chapBib.html#biBM">[Mor14]</a>. The current implementation is due to A. Herrera-Poyatos.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(13);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ForAll(l, s-></span>
<span class="GAPprompt">></span> <span class="GAPinput">IsSelfReciprocalUnivariatePolynomial(NumericalSemigroupPolynomial(s,x)));</span>
true
</pre></div>

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

<h4>10.2 <span class="Heading">
  Semigroup of values of algebraic curves
 </span></h4>

<p>Let <span class="SimpleMath">f(x,y)∈ K[x,y]</span>, with <span class="SimpleMath">K</span> an algebraically closed field of characteristic zero. Let <span class="SimpleMath">f(x,y)=y^n+a_1(x)y^n-1+dots+a_n(x)</span> be a nonzero polynomial of <span class="SimpleMath">K[x][y]</span>. After possibly a change of variables, we may assume that, that <span class="SimpleMath">deg_x(a_i(x))≤ i-1</span> for all <span class="SimpleMath">i∈{1,..., n}</span>. For <span class="SimpleMath">g∈ K[x,y]</span> that is not a multiple of <span class="SimpleMath">f</span>, define <span class="SimpleMath">mathrmint(f,g)=dim_ K frac K[x,y](f,g)</span>. If <span class="SimpleMath">f</span> has one place at infinity, then the set <span class="SimpleMath">{mathrmint(f,g)∣ g∈ K[x,y]∖(f)}</span> is a free numerical semigroup (and thus a complete intersection).</p>

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

<h5>10.2-1 SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is a polynomial in the variables X(Rationals,1) and X(Rationals,2). Computes the semigroup <span class="SimpleMath">{mathrmint(f,g)∣ g∈ K[x,y]∖(f)}</span>, where <span class="SimpleMath">mathrmint(f,g)=dim_ K ( K[x,y]/(f,g))</span>. The algorithm checks if <var class="Arg">f</var> has one place at infinity. If the extra argument "all" is given, then the output is the <span class="SimpleMath">δ</span>-sequence and approximate roots of <var class="Arg">f</var>. The method is explained in <a href="chapBib.html#biBAGS14">[AG16a]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Indeterminate(Rationals,1);; SetName(x,"x");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">y:=Indeterminate(Rationals,2);; SetName(y,"y");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=((y^3-x^2)^2-x*y^2)^4-(y^3-x^2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(f,"all");</span>
[ [ 24, 16, 28, 7 ], [ y, y^3-x^2, y^6-2*x^2*y^3+x^4-x*y^2 ] ]
</pre></div>

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

<h5>10.2-2 IsDeltaSequence</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDeltaSequence</code>( <var class="Arg">l</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">l</var> is a list of positive integers. Assume that <var class="Arg">l</var> equals <span class="SimpleMath">a_0,a_1,dots,a_h</span>. Then <var class="Arg">l</var> is a <span class="SimpleMath">δ</span>-sequence if <span class="SimpleMath">gcd(a_0,..., a_h)=1</span>, <span class="SimpleMath">⟨ a_0,⋯, a_s⟩</span> is free, <span class="SimpleMath">a_kD_k > a_k+1D_k+1</span> and <span class="SimpleMath">a_0> a_1 > D_2 > D_3 > ... > D_h+1</span>, where <span class="SimpleMath">D_1=a_0</span>, <span class="SimpleMath">D_k=gcd(D_k-1,a_k-1)</span>.</p>

<p>Every <span class="SimpleMath">δ</span>-sequence generates a numerical semigroup that is the semigroup of values of a plane curve with one place at infinity.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsDeltaSequence([24,16,28,7]);</span>
true
</pre></div>

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

<h5>10.2-3 DeltaSequencesWithFrobeniusNumber</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DeltaSequencesWithFrobeniusNumber</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is an integer. Computes the set of all <span class="SimpleMath">δ</span>-sequences generating numerical semigroups with Frobenius number <var class="Arg">f</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DeltaSequencesWithFrobeniusNumber(21);</span>
[ [ 8, 6, 11 ], [ 10, 4, 15 ], [ 12, 8, 6, 11 ], [ 14, 4, 11 ],
  [ 15, 10, 4 ], [ 23, 2 ] ]
</pre></div>

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

<h5>10.2-4 CurveAssociatedToDeltaSequence</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CurveAssociatedToDeltaSequence</code>( <var class="Arg">l</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">l</var> is a <span class="SimpleMath">δ</span>-sequence. Computes a curve in the variables X(Rationals,1) and X(Rationals,2) whose semigroup of values is generated by the <var class="Arg">l</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">CurveAssociatedToDeltaSequence([24,16,28,7]);</span>
y^24-8*x^2*y^21+28*x^4*y^18-56*x^6*y^15-4*x*y^20+70*x^8*y^12+24*x^3*y^17-56*x^\
10*y^9-60*x^5*y^14+28*x^12*y^6+80*x^7*y^11+6*x^2*y^16-8*x^14*y^3-60*x^9*y^8-24\
*x^4*y^13+x^16+24*x^11*y^5+36*x^6*y^10-4*x^13*y^2-24*x^8*y^7-4*x^3*y^12+6*x^10\
*y^4+8*x^5*y^9-4*x^7*y^6+x^4*y^8-y^3+x^2
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(last,"all");</span>
[ [ 24, 16, 28, 7 ], [ y, y^3-x^2, y^6-2*x^2*y^3+x^4-x*y^2 ] ]
</pre></div>

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

<h5>10.2-5 SemigroupOfValuesOfPlaneCurve</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupOfValuesOfPlaneCurve</code>( <var class="Arg">f</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">f</var> is a polynomial in the variables X(Rationals,1) and X(Rationals,2). The singular package is mandatory. Either by loading it prior to numerical semigroups or by using <var class="Arg">NumSgpsUseSingular()</var>. If <span class="SimpleMath">f</span> is irreducible, computes the semigroup <span class="SimpleMath">{mathrmint(f,g)∣ g∈ K[x,y]∖(f)}</span>, where <span class="SimpleMath">mathrmint(f,g)=dim_ K ( K[[x,y]]/(f,g))</span>. If it has two components, the output is the value semigroup in two variables, and thus a good semigroup. If there are more components, then the output is that of <var class="Arg">semigroup</var> in the alexpoly singular library.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=X(Rationals,"x");; y:=X(Rationals,"y");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f:= y^4-2*x^3*y^2-4*x^5*y+x^6-x^7;</span>
-x^7+x^6-4*x^5*y-2*x^3*y^2+y^4
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfPlaneCurve(f);</span>
<Numerical semigroup with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(last);</span>
[ 4, 6, 13 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=(y^4-2*x^3*y^2-4*x^5*y+x^6-x^7)*(y^2-x^3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfPlaneCurve(f);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGenerators(last);</span>
[ [ 4, 2 ], [ 6, 3 ], [ 13, 15 ], [ 29, 13 ] ]
</pre></div>

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

<h5>10.2-6 SemigroupOfValuesOfCurve_Local</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupOfValuesOfCurve_Local</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The function admits one or two parameters. In any case, the first is a list of polynomials <var class="Arg">pols</var>. And the second can be the string <var class="Arg">"basis"</var> or an integer <var class="Arg">val</var>.</p>

<p>If only one argument is given, the output is the semigroup of all possible orders of <span class="SimpleMath">K[[pols]]</span> provided that <span class="SimpleMath">K[[x]]/K[[pols]]</spanhas finite length. If the second argument <var class="Arg">"basis"</var> is given, then the output is a (reduced) basis of the algebra <span class="SimpleMath">K[[pols]]</span> such that the orders of the basis elements generate minimally the semigroup of orders of <span class="SimpleMath">K[[pols]]</span>. If an integer <var class="Arg">val</var> is the second argument, then the output is a polynomial in <span class="SimpleMath">K[[pols]]</span> with order <var class="Arg">val</var> (<code class="code">fail</code> if there is no such polynomial, that is, <var class="Arg">val</var> is not in the semigroup of values).</p>

<p>The method is explained in <a href="chapBib.html#biBAGSM14">[AGM17]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Indeterminate(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13]);</span>
<Numerical semigroup with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystem(last);</span>
[ 4, 6, 13, 15 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], "basis");</span>
[ x^4, x^7+x^6, x^13, x^15 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], 20);</span>
x^20
</pre></div>

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

<h5>10.2-7 SemigroupOfValuesOfCurve_Global</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SemigroupOfValuesOfCurve_Global</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The function admits one or two parameters. In any case, the first is a list of polynomials <var class="Arg">pols</var>. And the second can be the string <var class="Arg">"basis"</var> or an integer <var class="Arg">val</var>.</p>

<p>If only one argument is given, the output is the semigroup of all possible degrees of <span class="SimpleMath">K[pols]</span> provided that <span class="SimpleMath">K[x]/K[pols]</span> has finite length. If the second argument <var class="Arg">"basis"</var> is given, then the output is a (reduced) basis of the algebra <span class="SimpleMath">K[pols]</span> such that the degrees of the basis elements generate minimally the semigroup of degrees of <span class="SimpleMath">K[pols]</span>. If an integer <var class="Arg">val</var> is the second argument, then the output is a polynomial in <span class="SimpleMath">K[pols]</span> with degree <var class="Arg">val</var> (<code class="code">fail</code> if there is no such polynomial, that is, <var class="Arg">val</var> is not in the semigroup of values).</p>

<p>The method is explained in <a href="chapBib.html#biBAGSM14">[AGM17]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Indeterminate(Rationals,"x");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13]);</span>
<Numerical semigroup with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGeneratingSystem(last);</span>
[ 4, 7, 13 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],"basis");</span>
[ x^4, x^7+x^6, x^13 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],12);</span>
x^12
<span class="GAPprompt">gap></span> <span class="GAPinput">SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],6);</span>
fail
</pre></div>

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

<h5>10.2-8 GeneratorsModule_Global</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsModule_Global</code>( <var class="Arg">A</var>, <var class="Arg">M</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">A</var> and <var class="Arg">M</var> are lists of polynomials in the same variable. The output is a basis of the ideal <span class="SimpleMath">M K[A]</span>, that is, a set <span class="SimpleMath">F</span> such that <span class="SimpleMath">deg(F)</span> generates the ideal <span class="SimpleMath">deg(M K[A])</span> of <span class="SimpleMath">deg(K[A])</span>, where <span class="SimpleMath">deg</span> stands for degree. The method is explained in <a href="chapBib.html#biBA-A-GS">[AAG19]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=Indeterminate(Rationals,"t");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=[t^6+t,t^4];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">M:=[t^3,t^4];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsModule_Global(A,M);</span>
[ t^3, t^4, t^5, t^6 ]
</pre></div>

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

<h5>10.2-9 GeneratorsKahlerDifferentials</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsKahlerDifferentials</code>( <var class="Arg">A</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">A</var> is a list of polynomials in the same variable. The output is <var class="Arg">GeneratorsModule_Global(A,M)</var>, with <var class="Arg">M</var> the set of derivatives of the elements in <var class="Arg">A</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=Indeterminate(Rationals,"t");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsKahlerDifferentials([t^3,t^4]);</span>
[ t^2, t^3 ]
</pre></div>

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

<h5>10.2-10 IsMonomialNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsMonomialNumericalSemigroup</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. Tests whether <var class="Arg">S</var> a monomial numerical semigroup.</p>

<p>Let <span class="SimpleMath">R</span> a Noetherian ring such that <span class="SimpleMath">K ⊆ R ⊆ K[[t]]</span>, <span class="SimpleMath">K</span> is a field of characteristic zero, the algebraic closure of <span class="SimpleMath">R</span> is <span class="SimpleMath">K[[t]]</span>, and the conductor <span class="SimpleMath">(R : K[[t]])</span> is not zero. If <span class="SimpleMath">v : K((t))-> Z</span> is the natural valuation for <span class="SimpleMath">K((t))</span>, then <span class="SimpleMath">v(R)</span> is a numerical semigroup.</p>

<p>Let <span class="SimpleMath">S</span> be a numerical semigroup minimally generated by <span class="SimpleMath">{n_1,...,n_e}</span>. The semigroup ring associated to <span class="SimpleMath">S</span> is <span class="SimpleMath">K[[S]]=K[[t^n_1,...,t^n_e]]</span>. A ring is called a semigroup ring if it is of the form <span class="SimpleMath">K[[S]]</span>, for some numerical semigroup <span class="SimpleMath">S</span>. We say that <span class="SimpleMath">S</span> is a monomial numerical semigroup if for any <span class="SimpleMath">R</span> as above with <span class="SimpleMath">v(R)=S</span>, <span class="SimpleMath">R</span> is a semigroup ring. See <a href="chapBib.html#biBVMic02">[Mic02]</a> for details.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,7));</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,11));</span>
false
</pre></div>

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

<h4>10.3 <span class="Heading">
  Semigroups and Legendrian curves
 </span></h4>

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

<h5>10.3-1 LegendrianGenericNumericalSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LegendrianGenericNumericalSemigroup</code>( <var class="Arg">n</var>, <var class="Arg">m</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">n</var> and <var class="Arg">m</var> are coprime integers with <span class="SimpleMath"><var class="Arg">m</var>≥ 2<var class="Arg">n</var>+1</span>. The output is the semigroup of a generic element in the class of irreducible Legendrian singularities with equisingularity equal to the topological type of <span class="SimpleMath">y^n=x^m</span>, as described in Section 5 of <a href="chapBib.html#biBaraujo-neto">[AN09]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=LegendrianGenericNumericalSemigroup(5,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(s);</span>
[ 0, 5, 6, 10, 11, 12, 13, 15 ]
</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap9.html">[Previous Chapter]</a>    <a href="chap11.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chap10.html">10</a>  <a href="chap11.html">11</a>  <a href="chap12.html">12</a>  <a href="chap13.html">13</a>  <a href="chap14.html">14</a>  <a href="chapA.html">A</a>  <a href="chapB.html">B</a>  <a href="chapC.html">C</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

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

98%


¤ Dauer der Verarbeitung: 0.22 Sekunden  (vorverarbeitet)  ¤

*© 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 ist noch experimentell.