+ M2 Macaulay2, version 1.15
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
PrimaryDecomposition, ReesAlgebra, TangentCone, Truncations
i1 :
load "UnirationalPointedCurves.m2"
i2 : p=1009;
i3 : Fp=ZZ/p;
i4 : S=Fp[y_0..y_9];
i5 : needsPackage("RandomCanonicalCurves")
o5 = RandomCanonicalCurves
o5 : Package
i6 : C=(random canonicalCurve)(10,S);
o6 : Ideal of S
i7 : (genus C==10,degree C==18, codim C==8)
o7 = (true, true, true)
o7 : Sequence
i8 : pts=intersect for i from 1 to 5 list randomKRationalPoint(C);
o8 : Ideal of S
i9 : R=ZZ/p[x_0..x_4];
i10 : SC=S/C;
i11 : phi=map(SC,R,((gens pts)_{0..4}));
o11 : RingMap SC <
i12 : C'=kernel phi;
o12 : Ideal of R
i13 : (codim C'==3, degree C'==13, genus C'==10)
o13 = (true, true, true)
o13 : Sequence
i14 : isSmoothPn(C')
o14 = true
i15 : CI=cIntContaining({3,3,3},C');
o15 : Ideal of R
i16 : D=saturate(CI:C');
o16 : Ideal of R
i17 : (codim D==3, degree D==14, genus D==12)
o17 = (true, true, true)
o17 : Sequence
i18 : isSmoothPn(D)
o18 = true
i19 : isOrdDoublePointsPn(C',D)
o19 = true
i20 : tally degrees D
o20 = Tally{{3} => 4}
{4} => 5
o20 : Tally
i21 : NPoints=apply(1,i->ideal(random(1,R),random(1,R),random(1,R),random(1,R)));
i22 : DandNPoints=intersect(NPoints|{D});
o22 : Ideal of R
i23 : CI=cIntContaining({3,3,3},DandNPoints);
o23 : Ideal of R
i24 : Cnew=saturate(CI:D);
o24 : Ideal of R
i25 : (genus Cnew==10,degree Cnew==13, codim Cnew==3)
o25 = (true, true, true)
o25 : Sequence
i26 : isSmoothPn(Cnew)
o26 = true
i27 : isSubset(Cnew,NPoints_0)
o27 = true
i28 :
restart
Macaulay2, version 1.15
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
PrimaryDecomposition, ReesAlgebra, TangentCone, Truncations
i1 : load "UnirationalPointedCurves.m2"
i2 : p=1009;
i3 : Fp=ZZ/p;
i4 : S=Fp[y_0..y_9];
i5 : needsPackage("RandomCanonicalCurves")
o5 = RandomCanonicalCurves
o5 : Package
i6 : C=(random canonicalCurve)(10,S);
o6 : Ideal of S
i7 : (genus C==10,degree C==18, codim C==8)
o7 = (true, true, true)
o7 : Sequence
i8 : pts=intersect for i from 1 to 6 list randomKRationalPoint(C);
o8 : Ideal of S
i9 : R=ZZ/p[x_0..x_3];
i10 : SC=S/C;
i11 : phi=map(SC,R,((gens pts)_{0..3}));
o11 : RingMap SC <
i12 : C'=kernel phi;
o12 : Ideal of R
i13 : (codim C'==2, degree C'==12, genus C'==10)
o13 = (true, true, true)
o13 : Sequence
i14 : isSmoothPn(C')
o14 = true
i15 : CI=cIntContaining({5,5},C');
o15 : Ideal of R
i16 : D=saturate(CI:C');
o16 : Ideal of R
i17 : (codim D==2, degree D==13, genus D==13)
o17 = (true, true, true)
o17 : Sequence
i18 : isSmoothPn(D)
o18 = true
i19 : isOrdDoublePointsPn(C',D)
o19 = true
i20 : tally degrees D
o20 = Tally{{5} => 3}
{6} => 6
o20 : Tally
i21 : NPoints=apply(1,i->ideal(random(1,R),random(1,R),random(1,R)));
i22 : DandNPoints=intersect(NPoints|{D});
o22 : Ideal of R
i23 : CI=cIntContaining({5,5},DandNPoints);
o23 : Ideal of R
i24 : Cnew=saturate(CI:D);
o24 : Ideal of R
i25 : (genus Cnew==10,degree Cnew==12, codim Cnew==2)
o25 = (true, true, true)
o25 : Sequence
i26 : isSmoothPn(Cnew)
o26 = true
i27 : isSubset(Cnew,NPoints_0)
o27 = true
i28 :
restart
Macaulay2, version 1.15
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
PrimaryDecomposition, ReesAlgebra, TangentCone, Truncations
i1 : load "UnirationalPointedCurves.m2"
i2 : p=1009;
i3 : Fp=ZZ/p;
i4 : S=Fp[y_0..y_10];
i5 : needsPackage("RandomCanonicalCurves")
o5 = RandomCanonicalCurves
o5 : Package
i6 : C=(random canonicalCurve)(11,S);
o6 : Ideal of S
i7 : (genus C==11,degree C==20, codim C==9)
o7 = (true, true, true)
o7 : Sequence
i8 : pts=intersect for i from 1 to 6 list randomKRationalPoint(C);
o8 : Ideal of S
i9 : R=ZZ/p[x_0..x_4];
i10 : SC=S/C;
i11 : phi=map(SC,R,((gens pts)_{0..4}));
o11 : RingMap SC <
i12 : C'=kernel phi;
o12 : Ideal of R
i13 : (codim C'==3, degree C'==14, genus C'==11)
o13 = (true, true, true)
o13 : Sequence
i14 : isSmoothPn(C')
o14 = true
i15 : CI=cIntContaining({3,3,3},C');
o15 : Ideal of R
i16 : D=saturate(CI:C');
o16 : Ideal of R
i17 : (codim D==3, degree D==13, genus D==9)
o17 = (true, true, true)
o17 : Sequence
i18 : isSmoothPn(D)
o18 = true
i19 : isOrdDoublePointsPn(C',D)
o19 = true
i20 : tally degrees D
o20 = Tally{{3} => 4}
{4} => 6
o20 : Tally
i21 : NPoints=apply(1,i->ideal(random(1,R),random(1,R),random(1,R),random(1,R)));
i22 : DandNPoints=intersect(NPoints|{D});
o22 : Ideal of R
i23 : CI=cIntContaining({3,3,3},DandNPoints);
o23 : Ideal of R
i24 : Cnew=saturate(CI:D);
o24 : Ideal of R
i25 : (genus Cnew==11,degree Cnew==14, codim Cnew==3)
o25 = (true, true, true)
o25 : Sequence
i26 : isSmoothPn(Cnew)
o26 = true
i27 : isSubset(Cnew,NPoints_0)
o27 = true
i28 :
restart
Macaulay2, version 1.15
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
PrimaryDecomposition, ReesAlgebra, TangentCone, Truncations
i1 : load "UnirationalPointedCurves.m2"
i2 : p=1009;
i3 : Fp=ZZ/p;
i4 : S=Fp[y_0..y_8];
i5 : needsPackage("RandomCanonicalCurves")
o5 = RandomCanonicalCurves
o5 : Package
i6 : C=(random canonicalCurve)(9,S);
o6 : Ideal of S
i7 : (genus C==9,degree C==16, codim C==7)
o7 = (true, true, true)
o7 : Sequence
i8 : pts=for i from 1 to 9 list randomKRationalPoint(C);
i9 : D1=intersect apply(4,i->pts_i);
o9 : Ideal of S
i10 : D2=intersect apply(5,i->pts_(4+i));
o10 : Ideal of S
i11 : H1=gens D1*random(source gens D1,S^{-1});
1 1
o11 : Matrix S <
i12 : E1=(C+ideal H1):D1;
o12 : Ideal of S
i13 : L=mingens ideal(gens intersect(E1,D2)%C);
1 7
o13 : Matrix S <
i14 : SC=S/C;
i15 : R=ZZ/p[x_0..x_6];
i16 : phi:=map(SC,R,substitute(L,SC));
o16 : RingMap SC <
i17 : C'=kernel phi;
o17 : Ideal of R
i18 : (codim C'==5, degree C'==15, genus C'==9)
o18 = (true, true, true)
o18 : Sequence
i19 : isSmoothPn(C')
o19 = true
i20 : tally degrees C'
o20 = Tally{{2} => 6 }
{3} => 13
o20 : Tally
i21 : CI=cIntContaining({2,2,2,2,2},C');
o21 : Ideal of R
i22 : D=saturate(CI:C');
o22 : Ideal of R
i23 : (codim D==5, degree D==17, genus D==12)
o23 = (true, true, true)
o23 : Sequence
i24 : isSmoothPn(D)
o24 = true
i25 : isOrdDoublePointsPn(C',D)
o25 = true
i26 : betti mingens D
0 1
o26 = total: 1 14
0: 1 .
1: . 5
2: . 9
o26 : BettiTally
i27 : tally degrees C'
o27 = Tally{{2} => 6 }
{3} => 13
o27 : Tally
i28 : NPoints=apply(1,i->ideal(random(1,R),random(1,R),random(1,R),random(1,R),random(1,R),random(1,R)));
i29 : C'andNPoints=intersect(NPoints|{C'});
o29 : Ideal of R
i30 : CI=cIntContaining({2,2,2,2,2},C'andNPoints);
o30 : Ideal of R
i31 : Dnew=saturate(CI:C');
o31 : Ideal of R
i32 : isSubset(Dnew,NPoints_0)
o32 = true
i33 :