Macaulay2 » Documentation
Packages » PlaneCurveLinearSeries :: canonicalImage
next | previous | forward | backward | up | index | toc

canonicalImage -- canonical model of the normalization of a plane curve

Synopsis

Description

The output is the homogeneous coordinate ring of the canonical image of the normalization the given curve.

For example, a plane sextic with 4 nodes is a curve of genus 10-4 = 6, so its canonical image is a curve of degree 10 in P5

i1 : P5 = ZZ/101[x_0..x_5]

o1 = P5

o1 : PolynomialRing
i2 : P2 = ZZ/101[a,b,c]

o2 = P2

o2 : PolynomialRing
i3 : fourPoints = {{1,0,0},{0,1,0},{0,0,1},{1,1,1}}

o3 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 1}}

o3 : List
i4 : nodes = fromCoordinates(fourPoints, P2)

               3     2 2     3     2        2 2      3     2 2      2    
o4 = ideal (- a b + a b , - a b + a b*c, - a b  + a*b , - a b  + a*b c, -
     ------------------------------------------------------------------------
      2         2      2           2       2     3        2     2 2     3   
     a b*c + a*b c, - a b*c + a*b*c , - a*b c + b c, - a*b c + b c , - a c +
     ------------------------------------------------------------------------
      2        3     2 2     2         2      2           2     2 2        2 
     a b*c, - a c + a c , - a b*c + a*b c, - a b*c + a*b*c , - a c  + a*b*c ,
     ------------------------------------------------------------------------
        2 2      3         2    2 2         2      3
     - a c  + a*c , - a*b*c  + b c , - a*b*c  + b*c )

o4 : Ideal of P2
i5 : sings' = intersect apply(fourPoints, p -> (fromCoordinates(p,P2))^2)

             2 2         2    2 2   2         2         2    2 2   2 2  
o5 = ideal (a c  - 2a*b*c  + b c , a b*c - a*b c - a*b*c  + b c , a b  -
     ------------------------------------------------------------------------
         2     2 2
     2a*b c + b c )

o5 : Ideal of P2
i6 : C0 = P2/(ideal random(6, sings'))

o6 = C0

o6 : QuotientRing
i7 : sings = sub (sings', C0)

             2 2         2    2 2   2         2         2    2 2   2 2  
o7 = ideal (a c  - 2a*b*c  + b c , a b*c - a*b c - a*b*c  + b c , a b  -
     ------------------------------------------------------------------------
         2     2 2
     2a*b c + b c )

o7 : Ideal of C0
i8 : conductor C0 == sub(nodes, C0)

o8 = false
i9 : C = canonicalImage C0

o9 = C

o9 : QuotientRing
i10 : betti res ideal C

             0 1  2 3 4
o10 = total: 1 6 10 6 1
          0: 1 .  . . .
          1: . 6  5 . .
          2: . .  5 6 .
          3: . .  . . 1

o10 : BettiTally
i11 : B' = gens image basis (3,intersect nodes)

o11 = 0

               1
o11 : Matrix P2  <-- 0

The ideal of nodes is the conductor, so the canonical series on C is the restriction of the set of cubics containing the nodes.

i12 : B = sub(B',C);

              1
o12 : Matrix C  <-- 0
i13 : canC = projectiveImage B

o13 = canC

o13 : PolynomialRing
i14 : delPezzo = P5/ker(map(P2, P5, gens image basis (3,intersect nodes)))

o14 = delPezzo

o14 : QuotientRing
i15 : betti res ideal canC

             0
o15 = total: 1
          0: 1

o15 : BettiTally
i16 : betti res ideal delPezzo

             0 1  2  3  4 5 6
o16 = total: 1 6 15 20 15 6 1
          0: 1 6 15 20 15 6 1

o16 : BettiTally

See also

Ways to use canonicalImage :

For the programmer

The object canonicalImage is a method function with options.