#### D.6.21.4 semiCMcod2

Procedure from library `spcurve.lib` (see spcurve_lib).

Usage:
  semiCMcod2(M,t1[,s]); M matrix, t1 module, s any

Assume:
  M is a presentation matrix of an ideal i, CM of codimension 2, and t1 is a presentation of the space of first order deformations of i ((M,t1) as returned by the procedure matrixT1)

Return:
  new ring in which the ideal semi describing the semiuniversal deformation of i;
  if the optional third argument is given, the perturbation matrix of the semiuniversal deformation is returned instead of the ideal.

Note:
  The current basering should not contain any variables named A(j) where j is some integer!

Example:

    LIB "spcurve.lib";
    ring r=32003,(x(1),x(2),x(3)),ds;
    ideal curve=x(1)*x(2),x(1)*x(3),x(2)*x(3);
    matrix M=isCMcod2(curve);
    list l=matrixT1(M,3);
    def rneu=semiCMcod2(l[1],std(l[2]));
    setring rneu;
    semi;
    ==> semi[1]=A(2)*A(3)-x(2)*A(3)-x(1)*x(2)
    ==> semi[2]=A(1)*A(3)+x(1)*x(3)
    ==> semi[3]=-x(2)*A(1)-x(3)*A(2)+x(2)*x(3)

User manual for Singular version 4.4.1, 2025, generated by texi2html.