# Singular          #### D.4.16.4 regMonCurve

Procedure from library `mregular.lib` (see mregular_lib).

Usage:
regMonCurve (a0,...,an) ; ai integers with a0=0 < a1 < ... < an=:d

Return:
an integer, the Castelnuovo-Mumford regularity of the projective monomial curve C in Pn(K) parametrically defined by
x(0) = t^d , x(1) = s^(a1)t^(d-a1) , ..... , x(n) = s^d where K is the field of complex numbers.
(returns -1 if a0=0 < a1 < ... < an is not satisfied)

Assume:
a0=0 < a1 < ... < an are integers.

Notes:
1. The defining ideal of the curve C, I in S=K[x(0),...,x(n)], is determined by elimination.
2. The procedure regIdeal has been improved in this case since one knows beforehand that the monomial ideal J=lead(std(I)) is of nested type if the monomial ordering is dp, and that
reg(C)=reg(J) (see preprint 'Saturation and Castelnuovo-Mumford regularity' by Bermejo-Gimenez, 2004).
3. If printlevel > 0 (default = 0) additional info is displayed: - It says whether C is arithmetically Cohen-Macaulay or not. - If C is not arith. Cohen-Macaulay, end(H^1(S/I)) is computed and an upper bound for the a-invariant of S/I is given. - It also determines one step of the minimal graded free resolution (m.g.f.r.) of I where the regularity is attained and gives the value of the regularity of the Hilbert function of S/I when reg(I) is attained at the last step of a m.g.f.r.

Example:
 ```LIB "mregular.lib"; // The 1st example is the twisted cubic: regMonCurve(0,1,2,3); ==> 2 // The 2nd. example is the non arithm. Cohen-Macaulay monomial curve in P4 // parametrized by: x(0)-s6,x(1)-s5t,x(2)-s3t3,x(3)-st5,x(4)-t6: regMonCurve(0,1,3,5,6); ==> 3 // Additional information is displayed if you change printlevel (=1); ```

### Misc 