-- -*- M2-comint -*- hash: 17132128702063295713

i1 : R = ZZ/32003[x,y]

o1 = R

o1 : PolynomialRing

i2 : cusp = ideal(x^2-y^3)

              3    2
o2 = ideal(- y  + x )

o2 : Ideal of R

i3 : mm = radical ideal singularLocus cusp

o3 = ideal (y, x)

o3 : Ideal of R

i4 : B = first flattenRing reesAlgebra(mm)

o4 = B

o4 : QuotientRing

i5 : vars B

o5 = | w_0 w_1 x y |

             1      4
o5 : Matrix B  <-- B

i6 : proj = map(B,R,{x,y})

o6 = map (B, R, {x, y})

o6 : RingMap B <-- R

i7 : totalTransform = proj cusp

              3    2
o7 = ideal(- y  + x )

o7 : Ideal of B

i8 : D = decompose totalTransform

                            3    2     2         2     2
o8 = {ideal (y, x), ideal (y  - x , w y  - w x, w y - w )}
                                     0      1    0     1

o8 : List

i9 : D/codim

o9 = {1, 1}

o9 : List

i10 : irrelB = ideal(B_0,B_1)

o10 = ideal (w , w )
              0   1

o10 : Ideal of B

i11 : doublePoint = saturate(D_0+D_1, irrelB)

                    2
o11 = ideal (y, x, w )
                    1

o11 : Ideal of B

i12 : codim doublePoint

o12 = 2

i13 : degree doublePoint

o13 = 2

i14 : divisors = primaryDecomposition totalTransform

               2        2           3    2     2         2     2
o14 = {ideal (y , x*y, x ), ideal (y  - x , w y  - w x, w y - w )}
                                             0      1    0     1

o14 : List

i15 : strictTransform = divisors_0

              2        2
o15 = ideal (y , x*y, x )

o15 : Ideal of B

i16 : exceptional = divisors_1

              3    2     2         2     2
o16 = ideal (y  - x , w y  - w x, w y - w )
                       0      1    0     1

o16 : Ideal of B

i17 : divisors/(i-> degree i/degree radical i)

o17 = {2, 1}

o17 : List

i18 : T = ring ideal B

o18 = T

o18 : PolynomialRing

i19 : irrelT  = ideal(w_0,w_1)

o19 = ideal (w , w )
              0   1

o19 : Ideal of T

i20 : sing = saturate(ideal singularLocus strictTransform, irrelT)

o20 = ideal (y, x)

o20 : Ideal of T

i21 : jacobianMatrix = diff(vars B, transpose gens strictTransform)

o21 = {0, -2} | 0 0 0  2y |
      {0, -2} | 0 0 y  x  |
      {0, -2} | 0 0 2x 0  |

              3      4
o21 : Matrix B  <-- B

i22 : codim strictTransform

o22 = 1

i23 : jacobianIdeal  = strictTransform+ minors(1,jacobianMatrix)

              2        2
o23 = ideal (y , x*y, x , y, 2x, 2y, x)

o23 : Ideal of B

i24 : sing1 = saturate(jacobianIdeal, irrelB)

o24 = ideal (y, x)

o24 : Ideal of B

i25 : R = ZZ/32003[x,y]

o25 = R

o25 : PolynomialRing

i26 : tacnode = ideal(x^2-y^4)

               4    2
o26 = ideal(- y  + x )

o26 : Ideal of R

i27 : sing = ideal singularLocus tacnode

                4    2         3
o27 = ideal (- y  + x , 2x, -4y )

o27 : Ideal of R

i28 : mm = radical sing

o28 = ideal (y, x)

o28 : Ideal of R

i29 : B1 = first flattenRing reesAlgebra mm

o29 = B1

o29 : QuotientRing

i30 : proj1 = map(B1,R,{x,y})

o30 = map (B1, R, {x, y})

o30 : RingMap B1 <-- R

i31 : irrelB1 = ideal(w_0,w_1)

o31 = ideal (w , w )
              0   1

o31 : Ideal of B1

i32 : totalTransform1 = proj1 tacnode

               4    2
o32 = ideal(- y  + x )

o32 : Ideal of B1

i33 : netList (D1 = decompose totalTransform1)

      +------------------------+
o33 = |ideal (y, x)            |
      +------------------------+
      |        2               |
      |ideal (y  - x, w y - w )|
      |                0     1 |
      +------------------------+
      |        2               |
      |ideal (y  + x, w y + w )|
      |                0     1 |
      +------------------------+

i34 : strictTransform1 = saturate(totalTransform1,proj1 mm )

              4    2     3         2 2    2
o34 = ideal (y  - x , w y  - w x, w y  - w )
                       0      1    0      1

o34 : Ideal of B1

i35 : strictTransform1 == intersect(D1_1,D1_2)

o35 = true

i36 : degree (D1_1+D1_2)

o36 = 1

i37 : mm1 = sub(radical ideal singularLocus strictTransform1, B1)

o37 = ideal (y, x, w )
                    1

o37 : Ideal of B1

i38 : B2 = first flattenRing reesAlgebra(mm1, Variable => p)

o38 = B2

o38 : QuotientRing

i39 : vars B2

o39 = | p_0 p_1 p_2 w_0 w_1 x y |

               1       7
o39 : Matrix B2  <-- B2

i40 : proj2 = map(B2,B1,{w_0,w_1,x,y})

o40 = map (B2, B1, {w , w , x, y})
                     0   1

o40 : RingMap B2 <-- B1

i41 : irrelB2 = ideal(p_0,p_1,p_2)

o41 = ideal (p , p , p )
              0   1   2

o41 : Ideal of B2

i42 : irrelTot = (proj2 irrelB1) *irrelB2

o42 = ideal (p w , p y, p w , p y, p x, p w )
              0 0   2    2 0   2    2    2 1

o42 : Ideal of B2

i43 : totalTransform2 = saturate(proj2 proj1 tacnode, irrelTot)

              4    2       3    2    2 2 2    4
o43 = ideal (y  - x , p p y  - p x, p p y  - p )
                       0 1      1    0 1      1

o43 : Ideal of B2

i44 : exceptional2 = saturate(proj2 proj1 mm, irrelTot)

o44 = ideal (y, x, p )
                    1

o44 : Ideal of B2

i45 : netList(D2 = decompose totalTransform2)

      +---------------------------------------------+
o45 = |ideal (y, x, w , p )                         |
      |              1   1                          |
      +---------------------------------------------+
      |ideal (y, x, p , p )                         |
      |              1   0                          |
      +---------------------------------------------+
      |        2                                    |
      |ideal (y  - x, w y - w , p y - p , p w  - p )|
      |                0     1   0     1   0 0    2 |
      +---------------------------------------------+
      |        2                                    |
      |ideal (y  + x, w y + w , p y + p , p w  + p )|
      |                0     1   0     1   0 0    2 |
      +---------------------------------------------+

i46 : netList(E2 = decompose exceptional2)

      +--------------------+
o46 = |ideal (y, x, w , p )|
      |              1   1 |
      +--------------------+
      |ideal (y, x, p , p )|
      |              1   0 |
      +--------------------+

i47 : strictTransform2 = saturate(totalTransform2, exceptional2)

              4    2     3         2 2    2     3             2           2 
o47 = ideal (y  - x , w y  - w x, w y  - w , p y  - p x, p w y  - p x, p w y
                       0      1    0      1   0      1    0 0      2    0 0 
      -----------------------------------------------------------------------
               2 2    2   2             2 2    2
      - p w , p y  - p , p w y - p p , p w  - p )
         2 1   0      1   0 0     1 2   0 0    2

o47 : Ideal of B2

i48 : time sing2 = ideal singularLocus strictTransform2;
 -- used 0.906639s (cpu); 0.766419s (thread); 0s (gc)

                 ZZ
o48 : Ideal of -----[p ..p , w ..w , x..y]
               32003  0   2   0   1

i49 : saturate(sing2, sub(irrelTot, ring sing2))

o49 = ideal 1

                 ZZ
o49 : Ideal of -----[p ..p , w ..w , x..y]
               32003  0   2   0   1

i50 : R = ZZ/32003[x,y];

i51 : tacnode = ideal(x^2-y^4);

o51 : Ideal of R

i52 : mm = ideal(x,y^2);

o52 : Ideal of R

i53 : B = first flattenRing reesAlgebra mm;

i54 : irrelB = ideal(w_0,w_1);

o54 : Ideal of B

i55 : proj = map(B,R,{x,y});

o55 : RingMap B <-- R

i56 : totalTransform = proj tacnode

               4    2
o56 = ideal(- y  + x )

o56 : Ideal of B

i57 : netList (D = decompose totalTransform)

      +-----------------------+
o57 = |ideal (y, x)           |
      +-----------------------+
      |        2              |
      |ideal (y  - x, w  - w )|
      |                0    1 |
      +-----------------------+
      |        2              |
      |ideal (y  + x, w  + w )|
      |                0    1 |
      +-----------------------+

i58 : exceptional = proj mm

                 2
o58 = ideal (x, y )

o58 : Ideal of B

i59 : strictTransform = saturate(totalTransform, exceptional);

o59 : Ideal of B

i60 : netList decompose strictTransform

      +-----------------------+
      |        2              |
o60 = |ideal (y  - x, w  - w )|
      |                0    1 |
      +-----------------------+
      |        2              |
      |ideal (y  + x, w  + w )|
      |                0    1 |
      +-----------------------+

i61 : sing0 = sub(ideal singularLocus strictTransform, B);

o61 : Ideal of B

i62 : sing = saturate(sing0,irrelB)

o62 = ideal 1

o62 : Ideal of B

i63 : 
