+ M2 --no-readline --print-width 99
Macaulay2, version 1.10
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
               PrimaryDecomposition, ReesAlgebra, TangentCone

i1 : needsPackage("UnirationalHurwitzSchemes")  

o1 = UnirationalHurwitzSchemes

o1 : Package

i2 : --------------------------------------------------------------------------
     -- Theorem 2.2								--
     -- We construct a curve C of genus 10 and bidegree (6,10) in P^1xP^2    --
     -- by double liaison, as described in the paper. We verify step-by-step --
     -- all the assertions of the paper. As a consequence, the projection    --
     -- C --> P^2 yields a general element of W^2_{10,10}, which has a Serre --
     -- dual model a general element of W^1_{10,8}.  		        --
     --------------------------------------------------------------------------
     p=32009; -- a prime number

i3 : Fp=ZZ/p; -- a prime field

i4 : S=Fp[x_0,x_1,y_0..y_2,Degrees=>{2:{1,0},3:{0,1}}];

i5 : -- Cox-ring of P^1 x P^2
     m=ideal basis({1,1},S);

o5 : Ideal of S

i6 : -- On P1xP2, we start  with a rational curve of degree 4 together
     -- with 5 general lines. Call C'' their union.
     ICrat=ideal random(S^1,S^{2:{-2,-1}});

o6 : Ideal of S

i7 : ICratSat=saturate(ICrat,m);

o7 : Ideal of S

i8 : ILines=apply(5,i->ideal random(S^1,S^{{ -1,0},{0,-1}}));

i9 : C''=saturate(intersect(ILines|{ICratSat}),m);

o9 : Ideal of S

i10 : -- We choose random forms in the ideal of C'' of bidegree (5,2) 
      -- that define the complete intersection Y' and compute the 
      -- saturated ideal C' of the residual curve 
      fY'={{5,2},{5,2}};

i11 : Y'=ideal(gens C'' * random(source gens C'',S^(-fY')));

o11 : Ideal of S

i12 : time C'=Y':(C''); -- about 12 seconds
     -- used 11.6045 seconds

o12 : Ideal of S

i13 : C'=saturate(C',m);

o13 : Ideal of S

i14 : -- We check that C' is smooth of bidegree (3,11) and that meets C''
      -- only in ordinary double points.
      time isSmooth(C') -- about 47 seconds
     -- used 45.6065 seconds

o14 = true

i15 : multidegree C'

                 2
o15 = 11T T  + 3T
         0 1     1

o15 : ZZ[T , T ]
          0   1

i16 : time isOrdDoublePoints(Y') -- about 86 seconds
     -- used 75.8959 seconds

o16 = true

i17 : -- We check that C' is of maximal rank in bidegree (b,2) for any
      -- b and that it is contained in two transversal hypersurfaces
      -- of bidegree (3,3), (4,3) respectively
      tally degrees ideal mingens gb C'

o17 = Tally{{0, 11} => 1}
            {1, 8} => 2
            {1, 9} => 5
            {2, 5} => 5
            {3, 3} => 1
            {3, 4} => 7
            {4, 3} => 6
            {5, 2} => 2
            {6, 2} => 1

o17 : Tally

i18 : -- We choose random forms in the ideal of C' of bidegree (3,3), (4,3) 
      -- that define the complete intersection Y and compute the 
      -- saturated ideal C of the residual curve 
      fY={{3,3},{4,3}};

i19 : Y=ideal(gens C' * random(source gens C',S^(-fY)));

o19 : Ideal of S

i20 : time C=Y:(C'); -- about 29 seconds
     -- used 25.6954 seconds

o20 : Ideal of S

i21 : C=saturate(C,m);

o21 : Ideal of S

i22 : -- We check that C' is smooth of bidegree (6,10) and intersects
      -- C'' only in ordinary double points
      time isSmooth(C) -- about 61 seconds
     -- used 58.8516 seconds

o22 = true

i23 : multidegree C

                 2
o23 = 10T T  + 6T
         0 1     1

o23 : ZZ[T , T ]
          0   1

i24 : time isOrdDoublePoints(Y) -- about 118 seconds
     -- used 112.018 seconds

o24 = true

i25 : -- We check that C is of maximal rank in bidegree (a,3) for any a
      -- and that the planar model of C is a non-degenerate curve of genus 10
      -- and degree 10, hence it corresponds to a point in W^2_{10,10}
      tally degrees ideal mingens gb C

o25 = Tally{{0, 10} => 1}
            {1, 7} => 5
            {2, 4} => 2
            {2, 5} => 4
            {3, 3} => 1
            {3, 4} => 4
            {4, 3} => 3

o25 : Tally

i26 :