<?xmlversion="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>.
<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).
<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>.
<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.
<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>).
<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>.
<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.
<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>.
<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.
<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>.
<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>.
<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.
<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>.
<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>.
<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>.
<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>.
<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.
<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>
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
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.