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


Quelle  polynomial.xml   Sprache: XML

 
<?xml version="1.0" encoding="UTF-8"?>
<Section>
 <Heading>
  Generating functions or Hilbert series
 </Heading>

Let <M>S</M> be a numerical semigroup. The Hilbert  series or generating function associated to <M>S</M> is <M>H_S(x)=\sum_{s\in S}x^s</M> (actually it is the Hilbert function of the ring <M>K[S]</M> with <M>K</M> a field). See for instance <Cite Key="M"></Cite>.



    <ManSection>

        <Func Arg="s, x" Name="NumericalSemigroupPolynomial"></Func>
        <Description>
            <A>s</A> is a numerical semigroups and <A>x</A> a variable (or a value to evaluate in).
            The output is the polynomial <M>1+(x-1)\sum_{s\in \mathbb N\setminus S} x^s</M>, which equals <M>(1-x)H_S(x)</M>.

            <Example><![CDATA[
gap> x:=X(Rationals,"x");;
gap> s:=NumericalSemigroup(5,7,9);;
gap> NumericalSemigroupPolynomial(s,x);
x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1
]]></Example>
         </Description>
    </ManSection>

  <ManSection>

        <Func Arg="f" Name="IsNumericalSemigroupPolynomial"></Func>
        <Description>
            <A>f</A> is a polynomial in one variable. The output is true if there exists a numerical semigroup <M>S</M> such that <A>f</A> equals
      <M>(1-x)H_S(x)</M>, that is, the polynomial associated to <M>S</M> (false otherwise).

            <Example><![CDATA[
gap> x:=X(Rationals,"x");;
gap> s:=NumericalSemigroup(5,6,7,8);;
gap> f:=NumericalSemigroupPolynomial(s,x);
x^10-x^9+x^5-x+1
gap> IsNumericalSemigroupPolynomial(f);
true
]]></Example>
         </Description>
    </ManSection>


  <ManSection>

        <Func Arg="f" Name="NumericalSemigroupFromNumericalSemigroupPolynomial"></Func>
        <Description>
            <A>f</A> is a polynomial associated to a numerical semigroup (otherwise yields error). The output is the numerical semigroup <M>S</M> such that <A>f</A> equals
      <M>(1-x)H_S(x)</M>.

            <Example><![CDATA[
gap> x:=X(Rationals,"x");;
gap> s:=NumericalSemigroup(5,6,7,8);;
gap> f:=NumericalSemigroupPolynomial(s,x);
x^10-x^9+x^5-x+1
gap> NumericalSemigroupFromNumericalSemigroupPolynomial(f)=s;
true
]]></Example>
         </Description>
    </ManSection>


    <ManSection>

        <Func Arg="s, x" Name="HilbertSeriesOfNumericalSemigroup"></Func>
        <Description>
            <A>s</A> is a numerical semigroup and <A>x</A> a variable (or a value to evaluate in).
            The output is the series <M>\sum_{s\in S} x^s</M>. The series is given as a rational function.

            <Example><![CDATA[
gap> x:=X(Rationals,"x");;
gap> s:=NumericalSemigroup(5,7,9);;
gap> HilbertSeriesOfNumericalSemigroup(s,x);
(x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1)/(-x+1)
]]></Example>
         </Description>
    </ManSection>

    <ManSection>

        <Func Arg="p" Name="GraeffePolynomial"></Func>
        <Description>
            <A>p</A> is a polynomial.
            Computes the Graeffe polynomial of <A>p</A>. Needed to test if <A>p</A> is a cyclotomic polynomial (see <Cite Key="BD-cyclotomic"></Cite>).

            <Example><![CDATA[
gap> x:=Indeterminate(Rationals,1);; SetName(x,"x");
gap> GraeffePolynomial(x^2-1);
x^2-2*x+1
]]></Example>
         </Description>
    </ManSection>


    <ManSection>
        <Func Arg="p" Name="IsCyclotomicPolynomial"></Func>
        <Description>
            <A>p</A> is a polynomial.
            Detects if  <A>p</A> is a cyclotomic polynomial using the procedure given in  <Cite Key="BD-cyclotomic"></Cite>.

            <Example><![CDATA[
gap> CyclotomicPolynomial(Rationals,3);
x^2+x+1
gap> IsCyclotomicPolynomial(last);
true
]]></Example>
         </Description>
    </ManSection>


    <ManSection>
        <Func Arg="p" Name="IsKroneckerPolynomial"></Func>
        <Description>
            <A>p</A> is a polynomial.
            Detects if  <A>p</A> 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 <Cite Key="BD-cyclotomic"></Cite>.
            <Example><![CDATA[
gap> x:=X(Rationals,"x");;
gap>  s:=NumericalSemigroup(3,5,7);;
gap>  t:=NumericalSemigroup(4,6,9);;
gap> p:=NumericalSemigroupPolynomial(s,x);
x^5-x^4+x^3-x+1
gap> q:=NumericalSemigroupPolynomial(t,x);
x^12-x^11+x^8-x^7+x^6-x^5+x^4-x+1
gap> IsKroneckerPolynomial(p);
false
gap> IsKroneckerPolynomial(q);
true
]]></Example>
         </Description>
    </ManSection>

    <ManSection>
        <Func Arg="s" Name="IsCyclotomicNumericalSemigroup"></Func>
        <Description>
            <A>s</A> is a numerical semigroup.
            Detects if  the polynomial associated to <A>s</A> is a Kronecker polynomial.

            <Example><![CDATA[
gap> l:=CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber(21);;
gap> ForAll(l,IsCyclotomicNumericalSemigroup);
true
]]></Example>


         </Description>
    </ManSection>


    <ManSection>
        <Oper Arg="s, k" Name="CyclotomicExponentSequence"></Oper>
        <Description>
            <A>s</A> is a numerical semigroup and <A>k</A> is a positive integer.
            Outputs the list of the first <A>k</A> elements of the cyclotomic exponent sequence of s (see <Cite Key="C-GS-M"/>).
            
            <P/>
            The sequence will be truncated if the semigroup is cyclotomic and k is bigger than the last nonzero element in its sequence.
            <Example><![CDATA[
gap> s:=NumericalSemigroup(3,4);;
gap> CyclotomicExponentSequence(s,20);
[ 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1 ]
gap> s:=NumericalSemigroup(3,5,7);;
gap> CyclotomicExponentSequence(s,20);
[ 1, 0, -1, 0, -1, 0, -1, 0, 0, 1, 0, 1, 0, 1, 0, 0, -1, 0, -1, 0 ]
]]></Example>
         </Description>
    </ManSection>

    <ManSection>
        <Oper Arg="p, k" Name="WittCoefficients"></Oper>
        <Description>
            <A>p</A> is a univariate polynomial with integer coefficientas and <M>p(1)=1</M>. Then <M>p(x)=\prod_{n\ge 0}(1-x^n)^{e_n}</M>, for some integers <M>e_n</M>. The output is the list <M>[e_1,\ldots,e_k]</M>, and it is computed by using <Cite Key="C-GS-HP-M"/>.

            <Example><![CDATA[
gap> s:=NumericalSemigroup(3,4);;
gap> x:=Indeterminate(Rationals,"x");;
gap> p:=NumericalSemigroupPolynomial(s,x);;
gap> WittCoefficients(p,20);
[ 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ]
]]></Example>
        The difference with this example and the one in <Ref Func="CyclotomicExponentSequence"/> is that in that case a cyclotomic check is performed that slows down the process. 
         </Description>
    </ManSection>



    <ManSection>
        <Func Arg="p" Name="IsSelfReciprocalUnivariatePolynomial"></Func>
        <Description>
            <A>p</A> is a univariate polynomial.
            Detects if  <A>p</A> is selfreciprocal. A numerical semigroup is symmetric if and only if it is selfreciprocal, <Cite Key="M"></Cite>.

      The current implementation is due to A. Herrera-Poyatos.
            <Example><![CDATA[
gap> l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(13);;
gap> x:=X(Rationals,"x");;
gap> ForAll(l, s->
> IsSelfReciprocalUnivariatePolynomial(NumericalSemigroupPolynomial(s,x)));
true
]]></Example>
         </Description>
    </ManSection>

</Section>

<Section>
 <Heading>
  Semigroup of values of algebraic curves
 </Heading>

 Let <M>f(x,y)\in \mathbb K[x,y]</M>, with <M>\mathbb K</M> an algebraically closed field of characteristic zero. Let <M>f(x,y)=y^n+a_1(x)y^{n-1}+\dots+a_n(x)</M> be a nonzero polynomial of <M>\mathbb K[x][y]</M>. After possibly a change of variables, we may assume that, that <M>\deg_x(a_i(x))\le i-1</M> for all <M>i\in\{1,\ldots, n\}</M>. For <M>g\in\mathbb K[x,y]</M> that is not a multiple of <M>f</M>, define <M>\mathrm{int}(f,g)=\dim_\mathbb K \frac{\mathbb K[x,y]}{(f,g)}</M>. If <M>f</M> has one place at infinity, then the set <M>\{\mathrm{int}(f,g)\mid g\in\mathbb K[x,y]\setminus(f)\}</M> is a free numerical semigroup (and thus a complete intersection).

    <ManSection>
        <Func Arg="f" Name="SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity"></Func>
        <Description>
            <A>f</A> is a polynomial in the variables X(Rationals,1) and X(Rationals,2).

            Computes the semigroup <M>\{\mathrm{int}(f,g)\mid g\in\mathbb K[x,y]\setminus(f)\}</M>, where <M>\mathrm{int}(f,g)=\dim_{\mathbb K} (\mathbb K[x,y]/(f,g))</M>. The algorithm checks if <A>f</A> has one place at infinity. If the extra argument "all" is given, then the output is the <M>\delta</M>-sequence and approximate roots of <A>f</A>. The method is explained in <Cite Key="AGS14"></Cite>.

            <Example><![CDATA[
gap> x:=Indeterminate(Rationals,1);; SetName(x,"x");
gap> y:=Indeterminate(Rationals,2);; SetName(y,"y");
gap> f:=((y^3-x^2)^2-x*y^2)^4-(y^3-x^2);;
gap> SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(f,"all");
[ [ 24, 16, 28, 7 ], [ y, y^3-x^2, y^6-2*x^2*y^3+x^4-x*y^2 ] ]
]]></Example>
         </Description>
    </ManSection>

    <ManSection>
        <Func Arg="l" Name="IsDeltaSequence"></Func>
        <Description>
            <A>l</A> is a list of positive integers. Assume that <A>l</A> equals <M>a_0,a_1,\dots,a_h</M>. Then <A>l</A> is a <M>\delta</M>-sequence if <M>\gcd(a_0,\ldots, a_h)=1</M>, <M>\langle a_0,\cdots, a_s\rangle</M> is free, <M>a_kD_k > a_{k+1}D_{k+1}</M> and <M>a_0> a_1 > D_2 > D_3 > \ldots > D_{h+1}</M>, where <M>D_1=a_0</M>, <M>D_k=\gcd(D_{k-1},a_{k-1})</M>.
            <P/>
   Every <M>\delta</M>-sequence generates a numerical semigroup that is the semigroup of values of a plane curve with one place at infinity.


            <Example><![CDATA[
gap> IsDeltaSequence([24,16,28,7]);
true
]]></Example>
         </Description>
    </ManSection>

    <ManSection>
        <Func Arg="f" Name="DeltaSequencesWithFrobeniusNumber"></Func>
        <Description>
            <A>f</A> is an integer.
   Computes the set of all <M>\delta</M>-sequences generating numerical semigroups with Frobenius number <A>f</A>.

            <Example><![CDATA[
gap> DeltaSequencesWithFrobeniusNumber(21);
[ [ 8, 6, 11 ], [ 10, 4, 15 ], [ 12, 8, 6, 11 ], [ 14, 4, 11 ],
  [ 15, 10, 4 ], [ 23, 2 ] ]
]]></Example>
         </Description>
    </ManSection>

    <ManSection>
        <Func Arg="l" Name="CurveAssociatedToDeltaSequence"></Func>
        <Description>
            <A>l</A> is a <M>\delta</M>-sequence. Computes a curve in the variables X(Rationals,1) and X(Rationals,2) whose semigroup of values is generated by the <A>l</A>.

            <Example><![CDATA[
gap> CurveAssociatedToDeltaSequence([24,16,28,7]);
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
gap> SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(last,"all");
[ [ 24, 16, 28, 7 ], [ y, y^3-x^2, y^6-2*x^2*y^3+x^4-x*y^2 ] ]
]]></Example>
         </Description>
    </ManSection>

  <ManSection>
        <Func Arg="f" Name="SemigroupOfValuesOfPlaneCurve"></Func>
        <Description>
            <A>f</A> 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 <A>NumSgpsUseSingular()</A>.

            If <M>f</M> is irreducible, computes the semigroup <M>\{\mathrm{int}(f,g)\mid g\in\mathbb K[x,y]\setminus(f)\}</M>, where <M>\mathrm{int}(f,g)=\dim_{\mathbb K} (\mathbb K[\![x,y]\!]/(f,g))</M>.  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 <A>semigroup</A> in the alexpoly singular library.


            <Example><![CDATA[
gap> x:=X(Rationals,"x");; y:=X(Rationals,"y");;
gap> f:= y^4-2*x^3*y^2-4*x^5*y+x^6-x^7;
-x^7+x^6-4*x^5*y-2*x^3*y^2+y^4
gap> SemigroupOfValuesOfPlaneCurve(f);
<Numerical semigroup with 3 generators>
gap> MinimalGenerators(last);
[ 4, 6, 13 ]
gap> f:=(y^4-2*x^3*y^2-4*x^5*y+x^6-x^7)*(y^2-x^3);;
gap> SemigroupOfValuesOfPlaneCurve(f);
<Good semigroup>
gap> MinimalGenerators(last);
[ [ 4, 2 ], [ 6, 3 ], [ 13, 15 ], [ 29, 13 ] ]
]]></Example>
         </Description>
    </ManSection>


    <ManSection>
        <Func Arg="arg" Name="SemigroupOfValuesOfCurve_Local"></Func>
        <Description>
   The function admits one or two parameters. In any case, the first is  a list of polynomials <A>pols</A>. And the second can be the string <A>"basis"</A> or an integer <A>val</A>. <P/>

If only one argument is given, the output is the semigroup of all possible orders of <M>K[[pols]]</M> provided that <M>K[[x]]/K[[pols]]</M> has finite length. If the second argument <A>"basis"</A> is given, then the output is a (reduced) basis of the algebra <M>K[[pols]]</M> such that the orders of the basis elements generate minimally the semigroup of orders of <M>K[[pols]]</M>. If an integer <A>val</A> is the second argument, then the output is a polynomial in <M>K[[pols]]</M> with order <A>val</A> (<C>fail</C> if there is no such polynomial, that is, <A>val</A> is not in the semigroup of values).<P/>

The method is explained in <Cite Key="AGSM14"></Cite>.

            <Example><![CDATA[
gap> x:=Indeterminate(Rationals,"x");;
gap> SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13]);
<Numerical semigroup with 4 generators>
gap> MinimalGeneratingSystem(last);
[ 4, 6, 13, 15 ]
gap> SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], "basis");
[ x^4, x^7+x^6, x^13, x^15 ]
gap> SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], 20);
x^20
]]></Example>
         </Description>
    </ManSection>



    <ManSection>
        <Func Arg="arg" Name="SemigroupOfValuesOfCurve_Global"></Func>
        <Description>
   The function admits one or two parameters. In any case, the first is  a list of polynomials <A>pols</A>. And the second can be the string <A>"basis"</A> or an integer <A>val</A>. <P/>

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

The method is explained in <Cite Key="AGSM14"></Cite>.

            <Example><![CDATA[
gap> x:=Indeterminate(Rationals,"x");;
gap> SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13]);
<Numerical semigroup with 3 generators>
gap> MinimalGeneratingSystem(last);
[ 4, 7, 13 ]
gap> SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],"basis");
[ x^4, x^7+x^6, x^13 ]
gap> SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],12);
x^12
gap> SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],6);
fail
]]></Example>
         </Description>
    </ManSection>


  <ManSection>
        <Func Arg="A,M" Name="GeneratorsModule_Global"></Func>
        <Description>
     <A>A</A> and <A>M</A> are lists of polynomials in the same variable. The output is
      a basis of the ideal <M>M K[A]</M>, that is, a set <M>F</M> such that
     <M>deg(F)</M> generates the ideal <M>deg(M K[A])</M> of <M>deg(K[A])</M>, where <M>deg</M>
     stands for degree.

     The method is explained in <Cite Key="A-A-GS"></Cite>.

            <Example><![CDATA[
gap> t:=Indeterminate(Rationals,"t");;
gap> A:=[t^6+t,t^4];;
gap> M:=[t^3,t^4];;
gap> GeneratorsModule_Global(A,M);
[ t^3, t^4, t^5, t^6 ]
]]></Example>
         </Description>
    </ManSection>


  <ManSection>
        <Func Arg="A" Name="GeneratorsKahlerDifferentials"></Func>
        <Description>
     <A>A</A> is a list of polynomials in the same variable. The output is
      <A>GeneratorsModule_Global(A,M)</A>, with <A>M</A> the set of derivatives of the elements in <A>A</A>.

            <Example><![CDATA[
gap> t:=Indeterminate(Rationals,"t");;
gap> GeneratorsKahlerDifferentials([t^3,t^4]);
[ t^2, t^3 ]
]]></Example>
         </Description>
    </ManSection>


                  <ManSection>
                      <Prop Arg="S" Name="IsMonomialNumericalSemigroup"></Prop>
                      <Description>
                          <A>S</A> is a numerical semigroup.
                          Tests whether <A>S</A> a monomial numerical semigroup.
  <P/>
                  Let <M>R</M> a Noetherian ring such that <M>K \subseteq R \subseteq K[[t]]</M>, <M>K</M>
                  is a field of characteristic zero, the algebraic closure of <M>R</M> is <M>K[[t]]</M>,
                  and the conductor <M>(R : K[[t]])</M> is not zero. If <M>v : K((t))\to {\mathbb Z}</M> is
                  the natural valuation for <M>K((t))</M>, then <M>v(R)</M> is a numerical semigroup.
                  <P/>
                  Let <M>S</M> be a numerical semigroup minimally generated by <M>\{n_1,\ldots,n_e\}</M>.
                  The semigroup ring associated to <M>S</M> is <M>K[[S]]=K[[t^{n_1},\ldots,t^{n_e}]]</M>.
                  A ring is called a semigroup ring if it is of the form <M>K[[S]]</M>, for some numerical
                  semigroup <M>S</M>. We say that <M>S</M> is a monomial numerical semigroup if for any
                  <M>R</M> as above with <M>v(R)=S</M>, <M>R</M> is a semigroup ring. See <Cite Key="VMic02"></Cite> for details.

                         <Example><![CDATA[
gap> IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,7));
true
gap> IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,11));
false
]]></Example>
                       </Description>
                  </ManSection>


</Section>




<Section>
 <Heading>
  Semigroups and Legendrian curves
 </Heading>


  <ManSection>
        <Func Arg="n,m" Name="LegendrianGenericNumericalSemigroup"></Func>
        <Description>
     <A>n</A> and <A>m</A> are coprime integers with <M><A>m</A>\ge 2<A>n</A>+1</M>. The output is the semigroup of a generic element in the class of irreducible Legendrian singularities with equisingularity equal to the topological type of <M>y^n=x^m</M>,  as described in Section 5 of <Cite Key="araujo-neto"></Cite>.
            <Example><![CDATA[
gap> s:=LegendrianGenericNumericalSemigroup(5,11);;
gap> SmallElements(s);
[ 0, 5, 6, 10, 11, 12, 13, 15 ]
]]></Example>
         </Description>
    </ManSection>


</Section>

100%


¤ Dauer der Verarbeitung: 0.14 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


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