Home Online Manual
Top
Back: alexanderpolynomial
Forward: proximitymatrix
FastBack:
FastForward:
Up: alexpoly_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.6.1.4 semigroup

Procedure from library alexpoly.lib (see alexpoly_lib).

Usage:
semigroup(INPUT); INPUT poly or list

Assume:
INPUT is either a REDUCED bivariate polynomial defining a plane curve singularity, or the output of hnexpansion(f[,"ess"]), or the list hne in the ring created by hnexpansion(f[,"ess"]), or the output of develop(f) resp. of extdevelop(f,n), or a list containing the contact matrix and a list of integer vectors with the characteristic exponents of the branches of a plane curve singularity, or an integer vector containing the characteristic exponents of an irreducible plane curve singularity.

Return:
a list with three entries. The first and the second are lists v_1,...,v_s and w_1,...,w_r respectively of integer vectors such that the semigroup of the plane curve defined by the INPUT is generated by the vectors v_1,...,v_s,w_1+k*e_1,...,w_r+k*e_r, where e_i denotes the i-th standard basis vector and k runs through all non-negative integers. The third entry is the conductor of the plane curve singularity. Note that r is the number of branches of the plane curve singularity and integer vectors thus have size r.

Note:
If the output is zero this means that the curve has one branch and is regular. In the reducible case the set of generators may not be minimal.
If you are not sure whether the INPUT polynomial is reduced or not, use squarefree(INPUT) as input instead.

Example:
 
LIB "alexpoly.lib";
ring r=0,(x,y),ls;
// Irreducible Case
semigroup((x2-y3)^2-4x5y-x7);
==> [1]:
==>    [1]:
==>       4
==>    [2]:
==>       6
==>    [3]:
==>       17
==> [2]:
==>    empty list
==> [3]:
==>    20
// In the irreducible case, invariants() also calculates a minimal set of
// generators of the semigroup.
invariants((x2-y3)^2-4x5y-x7)[1][2];
==> 4,6,17
// Reducible Case
poly f=(y2-x3)*(y2+x3)*(y4-2x3y2-4x5y+x6-x7);
semigroup(f);
==> [1]:
==>    [1]:
==>       2,2,4
==>    [2]:
==>       3,3,6
==> [2]:
==>    [1]:
==>       6,6,12
==>    [2]:
==>       6,7,13
==>    [3]:
==>       12,13,26
==> [3]:
==>    20,21,41
See also: resolutiongraph; totalmultiplicities.