/// Sheaves and cohomology
//Ex 1
P<x,y,z,t> := ProjectiveSpace(Rationals(),3);
C := Curve(P,[ x^2*y^2 - 23/59*x*y^3 + 9/59*y^4 + 27/59*x^3*z - 23/59*x^2*y*
z - 6/59*x*y^2*z + 6/59*y^3*z - 10/59*x^2*z^2 + 5/59*x*y*z^2 - 3/59*y^2*z^2 +
1/59*x*z^3 - 74/59*x^3*t + 115/59*x^2*y*t - 83/59*x*y^2*t + 3/59*y^3*t -
105/59*x^2*z*t + 1/59*x*y*z*t - 2/59*y^2*z*t + 36/59*x*z^2*t + 4/59*y*z^2*t -
3/59*z^3*t + 297/59*x^2*t^2 - 135/59*x*y*t^2 + 52/59*y^2*t^2 + 68/59*x*z*t^2 -
11/59*y*z*t^2 - 18/59*z^2*t^2 - 315/59*x*t^3 + 42/59*y*t^3 + 96/59*t^4,
x^3*y - 833/354*x*y^3 - 11/236*y^4 - 1633/708*x^3*z - 4675/708*x^2*y*z -
2633/708*x*y^2*z - 27/236*y^3*z + 805/354*x^2*z^2 + 223/59*x*y*z^2 -
4/59*y^2*z^2 - 38/59*x*z^3 + 3359/708*x^3*t + 3811/354*x^2*y*t +
1445/708*x*y^2*t + 303/118*y^3*t - 715/177*x^2*z*t - 527/177*x*y*z*t +
211/118*y^2*z*t + 347/354*x*z^2*t - 195/236*y*z^2*t - 4/59*z^3*t -
127/236*x^2*t^2 - 8237/708*x*y*t^2 + 65/708*y^2*t^2 + 1973/708*x*z*t^2 +
123/59*y*z*t^2 - 24/59*z^2*t^2 - 1753/354*x*t^3 + 873/236*y*t^3 + 128/59*t^4,
x^4 + 269/354*x*y^3 + 35/236*y^4 + 1849/708*x^3*z + 4255/708*x^2*y*z -
247/708*x*y^2*z + 43/236*y^3*z - 727/354*x^2*z^2 - 82/59*x*y*z^2 +
2/59*y^2*z^2 + 19/59*x*z^3 - 5603/708*x^3*t - 3469/354*x^2*y*t -
1637/708*x*y^2*t - 63/118*y^3*t + 328/177*x^2*z*t - 769/177*x*y*z*t -
17/118*y^2*z*t + 151/354*x*z^2*t + 127/236*y*z^2*t + 2/59*z^3*t +
1391/236*x^2*t^2 + 7865/708*x*y*t^2 + 823/708*y^2*t^2 - 1901/708*x*z*t^2 +
86/59*y*z*t^2 + 12/59*z^2*t^2 + 493/354*x*t^3 - 761/236*y*t^3 - 64/59*t^4]);
I := Ideal(C);
O_C := GradedModule(I);
assert CohomologyDimension(O_C,0,1) eq 8;
OC1 := StructureSheaf(C,1);
SaturateSheaf(~OC1);
assert CohomologyDimension(OC1,0,0) eq 8;
norm_mp,X := DivisorMap(OC1);
assert ArithmeticGenus(X) eq 1;
assert #MinimalBasis(Ideal(X)) eq 20;

//Ex2
P<[x]> := ProjectiveSpace(GF(101),4);
X := Scheme(P, [
62*x[1]^4 + 16*x[1]^3*x[2] + 89*x[1]^2*x[2]^2 + 3*x[1]*x[2]^3 + 35*x[2]^4 +
    35*x[1]^3*x[3] + 46*x[1]^2*x[2]*x[3] + 16*x[1]*x[2]^2*x[3] + 86*x[2]^3*x[3]
    + 24*x[1]^2*x[3]^2 + 2*x[1]*x[2]*x[3]^2 + 34*x[2]^2*x[3]^2 + 35*x[1]*x[3]^3
    + 66*x[2]*x[3]^3 + 50*x[3]^4 + 29*x[1]^3*x[4] + 36*x[1]^2*x[2]*x[4] +
    72*x[1]*x[2]^2*x[4] + 99*x[2]^3*x[4] + 62*x[1]^2*x[3]*x[4] +
    13*x[1]*x[2]*x[3]*x[4] + 11*x[1]*x[3]^2*x[4] + 9*x[2]*x[3]^2*x[4] +
    53*x[3]^3*x[4] + 16*x[1]^2*x[4]^2 + 61*x[1]*x[2]*x[4]^2 + 9*x[2]^2*x[4]^2 +
    72*x[1]*x[3]*x[4]^2 + 35*x[2]*x[3]*x[4]^2 + 51*x[3]^2*x[4]^2 +
    34*x[1]*x[4]^3 + 87*x[2]*x[4]^3 + 33*x[3]*x[4]^3 + 99*x[4]^4 + x[1]^3*x[5] +
    96*x[1]^2*x[2]*x[5] + 29*x[1]*x[2]^2*x[5] + 71*x[2]^3*x[5] +
    52*x[1]^2*x[3]*x[5] + 63*x[1]*x[2]*x[3]*x[5] + 70*x[2]^2*x[3]*x[5] +
    40*x[1]*x[3]^2*x[5] + 94*x[2]*x[3]^2*x[5] + 88*x[3]^3*x[5] +
    12*x[1]^2*x[4]*x[5] + 42*x[1]*x[2]*x[4]*x[5] + 65*x[2]^2*x[4]*x[5] +
    100*x[1]*x[3]*x[4]*x[5] + 95*x[2]*x[3]*x[4]*x[5] + 89*x[3]^2*x[4]*x[5] +
    81*x[1]*x[4]^2*x[5] + 27*x[2]*x[4]^2*x[5] + 14*x[3]*x[4]^2*x[5] +
    94*x[4]^3*x[5] + 91*x[1]^2*x[5]^2 + 59*x[1]*x[2]*x[5]^2 +
    43*x[1]*x[3]*x[5]^2 + 71*x[2]*x[3]*x[5]^2 + 40*x[3]^2*x[5]^2 +
    96*x[1]*x[4]*x[5]^2 + 11*x[2]*x[4]*x[5]^2 + 38*x[3]*x[4]*x[5]^2 +
    90*x[4]^2*x[5]^2 + 55*x[1]*x[5]^3 + 47*x[2]*x[5]^3 + 94*x[3]*x[5]^3 +
    34*x[4]*x[5]^3 + 44*x[5]^4,
63*x[1]^4*x[4] + 97*x[1]^3*x[2]*x[4] + 94*x[1]^2*x[2]^2*x[4] +
    8*x[1]*x[2]^3*x[4] + 26*x[2]^4*x[4] + 46*x[1]^3*x[3]*x[4] +
    70*x[1]^2*x[2]*x[3]*x[4] + 53*x[1]*x[2]^2*x[3]*x[4] + 97*x[2]^3*x[3]*x[4] +
    3*x[1]^2*x[3]^2*x[4] + 77*x[1]*x[2]*x[3]^2*x[4] + 71*x[2]^2*x[3]^2*x[4] +
    77*x[1]*x[3]^3*x[4] + 95*x[2]*x[3]^3*x[4] + 71*x[3]^4*x[4] +
    14*x[1]^3*x[4]^2 + 100*x[1]^2*x[2]*x[4]^2 + 62*x[1]*x[2]^2*x[4]^2 +
    55*x[2]^3*x[4]^2 + 73*x[1]^2*x[3]*x[4]^2 + 10*x[1]*x[2]*x[3]*x[4]^2 +
    90*x[2]^2*x[3]*x[4]^2 + 23*x[1]*x[3]^2*x[4]^2 + 11*x[2]*x[3]^2*x[4]^2 +
    63*x[3]^3*x[4]^2 + 36*x[1]^2*x[4]^3 + 17*x[1]*x[2]*x[4]^3 + 4*x[2]^2*x[4]^3
    + 13*x[1]*x[3]*x[4]^3 + 13*x[2]*x[3]*x[4]^3 + 57*x[3]^2*x[4]^3 +
    44*x[1]*x[4]^4 + 77*x[2]*x[4]^4 + 57*x[3]*x[4]^4 + 80*x[4]^5 +
    16*x[1]^4*x[5] + 50*x[1]^3*x[2]*x[5] + 25*x[1]^2*x[2]^2*x[5] +
    94*x[1]*x[2]^3*x[5] + 39*x[2]^4*x[5] + 52*x[1]^3*x[3]*x[5] +
    35*x[1]^2*x[2]*x[3]*x[5] + 15*x[1]*x[2]^2*x[3]*x[5] + 67*x[2]^3*x[3]*x[5] +
    x[1]^2*x[3]^2*x[5] + 44*x[1]*x[2]*x[3]^2*x[5] + 25*x[2]^2*x[3]^2*x[5] +
    57*x[1]*x[3]^3*x[5] + 27*x[2]*x[3]^3*x[5] + 51*x[3]^4*x[5] +
    30*x[1]^3*x[4]*x[5] + 59*x[1]^2*x[2]*x[4]*x[5] + 30*x[1]*x[2]^2*x[4]*x[5] +
    17*x[2]^3*x[4]*x[5] + 44*x[1]^2*x[3]*x[4]*x[5] + 56*x[1]*x[2]*x[3]*x[4]*x[5]
    + 59*x[2]^2*x[3]*x[4]*x[5] + 77*x[1]*x[3]^2*x[4]*x[5] +
    12*x[2]*x[3]^2*x[4]*x[5] + 74*x[3]^3*x[4]*x[5] + 41*x[1]^2*x[4]^2*x[5] +
    97*x[1]*x[2]*x[4]^2*x[5] + 67*x[2]^2*x[4]^2*x[5] + 7*x[1]*x[3]*x[4]^2*x[5] +
    100*x[2]*x[3]*x[4]^2*x[5] + 17*x[3]^2*x[4]^2*x[5] + 49*x[1]*x[4]^3*x[5] +
    41*x[2]*x[4]^3*x[5] + 81*x[3]*x[4]^3*x[5] + 28*x[4]^4*x[5] +
    21*x[1]^3*x[5]^2 + 81*x[1]^2*x[2]*x[5]^2 + 91*x[1]*x[2]^2*x[5]^2 +
    66*x[2]^3*x[5]^2 + 59*x[1]^2*x[3]*x[5]^2 + 41*x[1]*x[2]*x[3]*x[5]^2 +
    44*x[2]^2*x[3]*x[5]^2 + 90*x[1]*x[3]^2*x[5]^2 + 50*x[2]*x[3]^2*x[5]^2 +
    99*x[1]^2*x[4]*x[5]^2 + 63*x[1]*x[2]*x[4]*x[5]^2 + 20*x[1]*x[3]*x[4]*x[5]^2
    + 9*x[2]*x[3]*x[4]*x[5]^2 + 28*x[3]^2*x[4]*x[5]^2 + 77*x[1]*x[4]^2*x[5]^2 +
    91*x[2]*x[4]^2*x[5]^2 + 65*x[3]*x[4]^2*x[5]^2 + 21*x[4]^3*x[5]^2 +
    60*x[1]^2*x[5]^3 + 58*x[1]*x[2]*x[5]^3 + 3*x[2]^2*x[5]^3 +
    28*x[1]*x[3]*x[5]^3 + 11*x[2]*x[3]*x[5]^3 + 46*x[3]^2*x[5]^3 +
    13*x[1]*x[4]*x[5]^3 + 32*x[2]*x[4]*x[5]^3 + 4*x[3]*x[4]*x[5]^3 +
    42*x[4]^2*x[5]^3 + 69*x[1]*x[5]^4 + 28*x[2]*x[5]^4 + 60*x[3]*x[5]^4 +
    29*x[4]*x[5]^4 + 18*x[5]^5,
86*x[1]^4*x[4] + 12*x[1]^3*x[2]*x[4] + 93*x[1]^2*x[2]^2*x[4] +
    79*x[1]*x[2]^3*x[4] + 50*x[2]^4*x[4] + 34*x[1]^3*x[3]*x[4] +
    97*x[1]^2*x[2]*x[3]*x[4] + 64*x[1]*x[2]^2*x[3]*x[4] + 82*x[2]^3*x[3]*x[4] +
    75*x[1]^2*x[3]^2*x[4] + 87*x[1]*x[2]*x[3]^2*x[4] + 44*x[2]^2*x[3]^2*x[4] +
    32*x[1]*x[3]^3*x[4] + 70*x[2]*x[3]^3*x[4] + 85*x[3]^4*x[4] +
    88*x[1]^3*x[4]^2 + 71*x[1]^2*x[2]*x[4]^2 + 45*x[1]*x[2]^2*x[4]^2 +
    12*x[2]^3*x[4]^2 + 64*x[1]^2*x[3]*x[4]^2 + 77*x[1]*x[2]*x[3]*x[4]^2 +
    86*x[2]^2*x[3]*x[4]^2 + 24*x[1]*x[3]^2*x[4]^2 + 25*x[2]*x[3]^2*x[4]^2 +
    7*x[3]^3*x[4]^2 + 14*x[1]^2*x[4]^3 + 60*x[1]*x[2]*x[4]^3 + 50*x[2]^2*x[4]^3
    + 72*x[1]*x[3]*x[4]^3 + 82*x[2]*x[3]*x[4]^3 + 8*x[3]^2*x[4]^3 +
    48*x[1]*x[4]^4 + 61*x[2]*x[4]^4 + 27*x[3]*x[4]^4 + 26*x[4]^5 +
    64*x[1]^4*x[5] + 69*x[1]^3*x[2]*x[5] + 72*x[1]^2*x[2]^2*x[5] +
    40*x[1]*x[2]^3*x[5] + 53*x[2]^4*x[5] + 60*x[1]^3*x[3]*x[5] +
    x[1]^2*x[2]*x[3]*x[5] + 18*x[1]*x[2]^2*x[3]*x[5] + 66*x[2]^3*x[3]*x[5] +
    57*x[1]^2*x[3]^2*x[5] + 14*x[1]*x[2]*x[3]^2*x[5] + 83*x[2]^2*x[3]^2*x[5] +
    35*x[1]*x[3]^3*x[5] + 4*x[2]*x[3]^3*x[5] + 34*x[3]^4*x[5] +
    57*x[1]^3*x[4]*x[5] + 72*x[1]^2*x[2]*x[4]*x[5] + 62*x[1]*x[2]^2*x[4]*x[5] +
    72*x[2]^3*x[4]*x[5] + 73*x[1]^2*x[3]*x[4]*x[5] + 34*x[1]*x[2]*x[3]*x[4]*x[5]
    + 68*x[2]^2*x[3]*x[4]*x[5] + 29*x[1]*x[3]^2*x[4]*x[5] +
    68*x[2]*x[3]^2*x[4]*x[5] + 78*x[3]^3*x[4]*x[5] + 33*x[1]^2*x[4]^2*x[5] +
    79*x[1]*x[2]*x[4]^2*x[5] + 20*x[2]^2*x[4]^2*x[5] + 87*x[1]*x[3]*x[4]^2*x[5]
    + 83*x[2]*x[3]*x[4]^2*x[5] + 12*x[3]^2*x[4]^2*x[5] + 67*x[1]*x[4]^3*x[5] +
    97*x[2]*x[4]^3*x[5] + 32*x[3]*x[4]^3*x[5] + 2*x[4]^4*x[5] + 78*x[1]^3*x[5]^2
    + 11*x[1]^2*x[2]*x[5]^2 + 68*x[1]*x[2]^2*x[5]^2 + 85*x[2]^3*x[5]^2 +
    63*x[1]^2*x[3]*x[5]^2 + 21*x[1]*x[2]*x[3]*x[5]^2 + 21*x[2]^2*x[3]*x[5]^2 +
    20*x[1]*x[3]^2*x[5]^2 + 68*x[2]*x[3]^2*x[5]^2 + 4*x[3]^3*x[5]^2 +
    87*x[1]^2*x[4]*x[5]^2 + 65*x[1]*x[2]*x[4]*x[5]^2 + 61*x[2]^2*x[4]*x[5]^2 +
    67*x[2]*x[3]*x[4]*x[5]^2 + 41*x[3]^2*x[4]*x[5]^2 + 51*x[1]*x[4]^2*x[5]^2 +
    45*x[2]*x[4]^2*x[5]^2 + 20*x[3]*x[4]^2*x[5]^2 + 33*x[4]^3*x[5]^2 +
    56*x[1]^2*x[5]^3 + 9*x[1]*x[2]*x[5]^3 + 83*x[2]^2*x[5]^3 +
    68*x[1]*x[3]*x[5]^3 + 13*x[2]*x[3]*x[5]^3 + 60*x[3]^2*x[5]^3 +
    5*x[1]*x[4]*x[5]^3 + 90*x[2]*x[4]*x[5]^3 + 99*x[3]*x[4]*x[5]^3 +
    94*x[4]^2*x[5]^3 + 46*x[1]*x[5]^4 + 30*x[2]*x[5]^4 + 36*x[3]*x[5]^4 +
    63*x[4]*x[5]^4 + 93*x[5]^5,
37*x[1]^4*x[3] + 32*x[1]^3*x[2]*x[3] + 29*x[1]^2*x[2]^2*x[3] +
    61*x[1]*x[2]^3*x[3] + 48*x[2]^4*x[3] + 41*x[1]^3*x[3]^2 +
    100*x[1]^2*x[2]*x[3]^2 + 83*x[1]*x[2]^2*x[3]^2 + 35*x[2]^3*x[3]^2 +
    44*x[1]^2*x[3]^3 + 87*x[1]*x[2]*x[3]^3 + 18*x[2]^2*x[3]^3 + 66*x[1]*x[3]^4 +
    97*x[2]*x[3]^4 + 67*x[3]^5 + 40*x[1]^4*x[4] + 18*x[1]^3*x[2]*x[4] +
    77*x[1]^2*x[2]^2*x[4] + 72*x[1]*x[2]^3*x[4] + 13*x[2]^4*x[4] +
    100*x[1]^3*x[3]*x[4] + 90*x[1]^2*x[2]*x[3]*x[4] + 78*x[1]*x[2]^2*x[3]*x[4] +
    59*x[2]^3*x[3]*x[4] + 82*x[1]^2*x[3]^2*x[4] + 93*x[1]*x[2]*x[3]^2*x[4] +
    23*x[1]*x[3]^3*x[4] + 89*x[2]*x[3]^3*x[4] + 36*x[3]^4*x[4] +
    55*x[1]^3*x[4]^2 + 42*x[1]^2*x[2]*x[4]^2 + 8*x[1]*x[2]^2*x[4]^2 +
    6*x[2]^3*x[4]^2 + 29*x[1]^2*x[3]*x[4]^2 + 44*x[1]*x[2]*x[3]*x[4]^2 +
    69*x[2]^2*x[3]*x[4]^2 + 69*x[1]*x[3]^2*x[4]^2 + 35*x[2]*x[3]^2*x[4]^2 +
    40*x[3]^3*x[4]^2 + 19*x[1]^2*x[4]^3 + 29*x[1]*x[2]*x[4]^3 + 78*x[2]^2*x[4]^3
    + 13*x[1]*x[3]*x[4]^3 + 17*x[2]*x[3]*x[4]^3 + 2*x[3]^2*x[4]^3 +
    80*x[1]*x[4]^4 + 81*x[2]*x[4]^4 + 54*x[3]*x[4]^4 + 53*x[4]^5 +
    23*x[1]^3*x[3]*x[5] + 90*x[1]^2*x[2]*x[3]*x[5] + 33*x[1]*x[2]^2*x[3]*x[5] +
    16*x[2]^3*x[3]*x[5] + 38*x[1]^2*x[3]^2*x[5] + 80*x[1]*x[2]*x[3]^2*x[5] +
    80*x[2]^2*x[3]^2*x[5] + 81*x[1]*x[3]^3*x[5] + 33*x[2]*x[3]^3*x[5] +
    97*x[3]^4*x[5] + 78*x[1]^3*x[4]*x[5] + 56*x[1]^2*x[2]*x[4]*x[5] +
    71*x[1]*x[2]^2*x[4]*x[5] + 73*x[2]^3*x[4]*x[5] + 17*x[1]^2*x[3]*x[4]*x[5] +
    9*x[1]*x[2]*x[3]*x[4]*x[5] + 61*x[2]^2*x[3]*x[4]*x[5] +
    91*x[1]*x[3]^2*x[4]*x[5] + 51*x[2]*x[3]^2*x[4]*x[5] + 20*x[3]^3*x[4]*x[5] +
    34*x[1]^2*x[4]^2*x[5] + 57*x[1]*x[2]*x[4]^2*x[5] + 70*x[2]^2*x[4]^2*x[5] +
    64*x[1]*x[3]*x[4]^2*x[5] + 43*x[2]*x[3]*x[4]^2*x[5] + 40*x[3]^2*x[4]^2*x[5]
    + 37*x[1]*x[4]^3*x[5] + 29*x[2]*x[4]^3*x[5] + 24*x[3]*x[4]^3*x[5] +
    25*x[4]^4*x[5] + 45*x[1]^2*x[3]*x[5]^2 + 92*x[1]*x[2]*x[3]*x[5]^2 +
    18*x[2]^2*x[3]*x[5]^2 + 33*x[1]*x[3]^2*x[5]^2 + 88*x[2]*x[3]^2*x[5]^2 +
    41*x[3]^3*x[5]^2 + 59*x[1]^2*x[4]*x[5]^2 + 41*x[1]*x[2]*x[4]*x[5]^2 +
    67*x[2]^2*x[4]*x[5]^2 + 95*x[1]*x[3]*x[4]*x[5]^2 + 29*x[2]*x[3]*x[4]*x[5]^2
    + 16*x[3]^2*x[4]*x[5]^2 + 70*x[1]*x[4]^2*x[5]^2 + 26*x[2]*x[4]^2*x[5]^2 +
    35*x[3]*x[4]^2*x[5]^2 + 8*x[4]^3*x[5]^2 + 55*x[1]*x[3]*x[5]^3 +
    71*x[2]*x[3]*x[5]^3 + 65*x[3]^2*x[5]^3 + 13*x[1]*x[4]*x[5]^3 +
    8*x[2]*x[4]*x[5]^3 + 56*x[3]*x[4]*x[5]^3 + 85*x[4]^2*x[5]^3 + 8*x[3]*x[5]^4
    + 8*x[4]*x[5]^4,
63*x[1]^4*x[3] + 97*x[1]^3*x[2]*x[3] + 94*x[1]^2*x[2]^2*x[3] +
    8*x[1]*x[2]^3*x[3] + 26*x[2]^4*x[3] + 46*x[1]^3*x[3]^2 +
    70*x[1]^2*x[2]*x[3]^2 + 53*x[1]*x[2]^2*x[3]^2 + 97*x[2]^3*x[3]^2 +
    3*x[1]^2*x[3]^3 + 77*x[1]*x[2]*x[3]^3 + 71*x[2]^2*x[3]^3 + 77*x[1]*x[3]^4 +
    95*x[2]*x[3]^4 + 71*x[3]^5 + 14*x[1]^3*x[3]*x[4] + 100*x[1]^2*x[2]*x[3]*x[4]
    + 62*x[1]*x[2]^2*x[3]*x[4] + 55*x[2]^3*x[3]*x[4] + 73*x[1]^2*x[3]^2*x[4] +
    10*x[1]*x[2]*x[3]^2*x[4] + 90*x[2]^2*x[3]^2*x[4] + 23*x[1]*x[3]^3*x[4] +
    11*x[2]*x[3]^3*x[4] + 63*x[3]^4*x[4] + 36*x[1]^2*x[3]*x[4]^2 +
    17*x[1]*x[2]*x[3]*x[4]^2 + 4*x[2]^2*x[3]*x[4]^2 + 13*x[1]*x[3]^2*x[4]^2 +
    13*x[2]*x[3]^2*x[4]^2 + 57*x[3]^3*x[4]^2 + 44*x[1]*x[3]*x[4]^3 +
    77*x[2]*x[3]*x[4]^3 + 57*x[3]^2*x[4]^3 + 80*x[3]*x[4]^4 + 60*x[1]^4*x[5] +
    56*x[1]^3*x[2]*x[5] + 42*x[1]^2*x[2]^2*x[5] + 53*x[1]*x[2]^3*x[5] +
    82*x[2]^4*x[5] + 51*x[1]^3*x[3]*x[5] + 49*x[1]^2*x[2]*x[3]*x[5] +
    96*x[1]*x[2]^2*x[3]*x[5] + 6*x[2]^3*x[3]*x[5] + 7*x[1]^2*x[3]^2*x[5] +
    35*x[1]*x[2]*x[3]^2*x[5] + 17*x[2]^2*x[3]^2*x[5] + 66*x[1]*x[3]^3*x[5] +
    36*x[2]*x[3]^3*x[5] + 99*x[3]^4*x[5] + 86*x[1]^3*x[4]*x[5] +
    77*x[1]^2*x[2]*x[4]*x[5] + 79*x[1]*x[2]^2*x[4]*x[5] + 26*x[2]^3*x[4]*x[5] +
    93*x[1]^2*x[3]*x[4]*x[5] + 6*x[1]*x[2]*x[3]*x[4]*x[5] +
    2*x[2]^2*x[3]*x[4]*x[5] + 21*x[1]*x[3]^2*x[4]*x[5] +
    20*x[2]*x[3]^2*x[4]*x[5] + 65*x[3]^3*x[4]*x[5] + 28*x[1]^2*x[4]^2*x[5] +
    100*x[1]*x[2]*x[4]^2*x[5] + 48*x[2]^2*x[4]^2*x[5] + 89*x[1]*x[3]*x[4]^2*x[5]
    + 81*x[2]*x[3]*x[4]^2*x[5] + 32*x[3]^2*x[4]^2*x[5] + 11*x[1]*x[4]^3*x[5] +
    39*x[2]*x[4]^3*x[5] + 71*x[3]*x[4]^3*x[5] + 58*x[4]^4*x[5] +
    47*x[1]^3*x[5]^2 + 73*x[1]^2*x[2]*x[5]^2 + 26*x[1]*x[2]^2*x[5]^2 +
    67*x[2]^3*x[5]^2 + 6*x[1]^2*x[3]*x[5]^2 + 16*x[1]*x[2]*x[3]*x[5]^2 +
    9*x[2]^2*x[3]*x[5]^2 + 43*x[1]*x[3]^2*x[5]^2 + 50*x[2]*x[3]^2*x[5]^2 +
    54*x[3]^3*x[5]^2 + 18*x[1]^2*x[4]*x[5]^2 + 92*x[1]*x[2]*x[4]*x[5]^2 +
    15*x[2]^2*x[4]*x[5]^2 + 24*x[1]*x[3]*x[4]*x[5]^2 + 41*x[2]*x[3]*x[4]*x[5]^2
    + 40*x[3]^2*x[4]*x[5]^2 + 13*x[1]*x[4]^2*x[5]^2 + 38*x[2]*x[4]^2*x[5]^2 +
    24*x[3]*x[4]^2*x[5]^2 + 88*x[4]^3*x[5]^2 + 81*x[1]^2*x[5]^3 +
    48*x[1]*x[2]*x[5]^3 + 23*x[2]^2*x[5]^3 + 5*x[1]*x[3]*x[5]^3 +
    68*x[2]*x[3]*x[5]^3 + 87*x[3]^2*x[5]^3 + 45*x[1]*x[4]*x[5]^3 +
    78*x[2]*x[4]*x[5]^3 + 62*x[3]*x[4]*x[5]^3 + 53*x[4]^2*x[5]^3 +
    95*x[2]*x[5]^4 + 73*x[3]*x[5]^4 + 70*x[4]*x[5]^4 + 18*x[5]^5,
85*x[1]^4*x[3] + 51*x[1]^3*x[2]*x[3] + 76*x[1]^2*x[2]^2*x[3] +
    7*x[1]*x[2]^3*x[3] + 62*x[2]^4*x[3] + 49*x[1]^3*x[3]^2 +
    66*x[1]^2*x[2]*x[3]^2 + 86*x[1]*x[2]^2*x[3]^2 + 34*x[2]^3*x[3]^2 +
    100*x[1]^2*x[3]^3 + 57*x[1]*x[2]*x[3]^3 + 76*x[2]^2*x[3]^3 + 44*x[1]*x[3]^4
    + 74*x[2]*x[3]^4 + 50*x[3]^5 + 60*x[1]^4*x[4] + 56*x[1]^3*x[2]*x[4] +
    42*x[1]^2*x[2]^2*x[4] + 53*x[1]*x[2]^3*x[4] + 82*x[2]^4*x[4] +
    21*x[1]^3*x[3]*x[4] + 91*x[1]^2*x[2]*x[3]*x[4] + 66*x[1]*x[2]^2*x[3]*x[4] +
    90*x[2]^3*x[3]*x[4] + 64*x[1]^2*x[3]^2*x[4] + 80*x[1]*x[2]*x[3]^2*x[4] +
    59*x[2]^2*x[3]^2*x[4] + 90*x[1]*x[3]^3*x[4] + 24*x[2]*x[3]^3*x[4] +
    25*x[3]^4*x[4] + 86*x[1]^3*x[4]^2 + 77*x[1]^2*x[2]*x[4]^2 +
    79*x[1]*x[2]^2*x[4]^2 + 26*x[2]^3*x[4]^2 + 52*x[1]^2*x[3]*x[4]^2 +
    10*x[1]*x[2]*x[3]*x[4]^2 + 36*x[2]^2*x[3]*x[4]^2 + 14*x[1]*x[3]^2*x[4]^2 +
    21*x[2]*x[3]^2*x[4]^2 + 48*x[3]^3*x[4]^2 + 28*x[1]^2*x[4]^3 +
    100*x[1]*x[2]*x[4]^3 + 48*x[2]^2*x[4]^3 + 40*x[1]*x[3]*x[4]^3 +
    40*x[2]*x[3]*x[4]^3 + 52*x[3]^2*x[4]^3 + 11*x[1]*x[4]^4 + 39*x[2]*x[4]^4 +
    43*x[3]*x[4]^4 + 58*x[4]^5 + 80*x[1]^3*x[3]*x[5] + 20*x[1]^2*x[2]*x[3]*x[5]
    + 10*x[1]*x[2]^2*x[3]*x[5] + 35*x[2]^3*x[3]*x[5] + 42*x[1]^2*x[3]^2*x[5] +
    60*x[1]*x[2]*x[3]^2*x[5] + 57*x[2]^2*x[3]^2*x[5] + 11*x[1]*x[3]^3*x[5] +
    51*x[2]*x[3]^3*x[5] + 47*x[1]^3*x[4]*x[5] + 73*x[1]^2*x[2]*x[4]*x[5] +
    26*x[1]*x[2]^2*x[4]*x[5] + 67*x[2]^3*x[4]*x[5] + 8*x[1]^2*x[3]*x[4]*x[5] +
    54*x[1]*x[2]*x[3]*x[4]*x[5] + 9*x[2]^2*x[3]*x[4]*x[5] +
    23*x[1]*x[3]^2*x[4]*x[5] + 41*x[2]*x[3]^2*x[4]*x[5] + 26*x[3]^3*x[4]*x[5] +
    18*x[1]^2*x[4]^2*x[5] + 92*x[1]*x[2]*x[4]^2*x[5] + 15*x[2]^2*x[4]^2*x[5] +
    48*x[1]*x[3]*x[4]^2*x[5] + 51*x[2]*x[3]*x[4]^2*x[5] + 76*x[3]^2*x[4]^2*x[5]
    + 13*x[1]*x[4]^3*x[5] + 38*x[2]*x[4]^3*x[5] + 3*x[3]*x[4]^3*x[5] +
    88*x[4]^4*x[5] + 41*x[1]^2*x[3]*x[5]^2 + 43*x[1]*x[2]*x[3]*x[5]^2 +
    98*x[2]^2*x[3]*x[5]^2 + 73*x[1]*x[3]^2*x[5]^2 + 90*x[2]*x[3]^2*x[5]^2 +
    55*x[3]^3*x[5]^2 + 81*x[1]^2*x[4]*x[5]^2 + 48*x[1]*x[2]*x[4]*x[5]^2 +
    23*x[2]^2*x[4]*x[5]^2 + 93*x[1]*x[3]*x[4]*x[5]^2 + 36*x[2]*x[3]*x[4]*x[5]^2
    + 83*x[3]^2*x[4]*x[5]^2 + 45*x[1]*x[4]^2*x[5]^2 + 78*x[2]*x[4]^2*x[5]^2 +
    20*x[3]*x[4]^2*x[5]^2 + 53*x[4]^3*x[5]^2 + 32*x[1]*x[3]*x[5]^3 +
    73*x[2]*x[3]*x[5]^3 + 41*x[3]^2*x[5]^3 + 95*x[2]*x[4]*x[5]^3 +
    44*x[3]*x[4]*x[5]^3 + 70*x[4]^2*x[5]^3 + 83*x[3]*x[5]^4 + 18*x[4]*x[5]^4,
86*x[1]^4*x[3] + 12*x[1]^3*x[2]*x[3] + 93*x[1]^2*x[2]^2*x[3] +
    79*x[1]*x[2]^3*x[3] + 50*x[2]^4*x[3] + 34*x[1]^3*x[3]^2 +
    97*x[1]^2*x[2]*x[3]^2 + 64*x[1]*x[2]^2*x[3]^2 + 82*x[2]^3*x[3]^2 +
    75*x[1]^2*x[3]^3 + 87*x[1]*x[2]*x[3]^3 + 44*x[2]^2*x[3]^3 + 32*x[1]*x[3]^4 +
    70*x[2]*x[3]^4 + 85*x[3]^5 + 88*x[1]^3*x[3]*x[4] + 71*x[1]^2*x[2]*x[3]*x[4]
    + 45*x[1]*x[2]^2*x[3]*x[4] + 12*x[2]^3*x[3]*x[4] + 64*x[1]^2*x[3]^2*x[4] +
    77*x[1]*x[2]*x[3]^2*x[4] + 86*x[2]^2*x[3]^2*x[4] + 24*x[1]*x[3]^3*x[4] +
    25*x[2]*x[3]^3*x[4] + 7*x[3]^4*x[4] + 14*x[1]^2*x[3]*x[4]^2 +
    60*x[1]*x[2]*x[3]*x[4]^2 + 50*x[2]^2*x[3]*x[4]^2 + 72*x[1]*x[3]^2*x[4]^2 +
    82*x[2]*x[3]^2*x[4]^2 + 8*x[3]^3*x[4]^2 + 48*x[1]*x[3]*x[4]^3 +
    61*x[2]*x[3]*x[4]^3 + 27*x[3]^2*x[4]^3 + 26*x[3]*x[4]^4 + 40*x[1]^4*x[5] +
    18*x[1]^3*x[2]*x[5] + 77*x[1]^2*x[2]^2*x[5] + 72*x[1]*x[2]^3*x[5] +
    13*x[2]^4*x[5] + 56*x[1]^3*x[3]*x[5] + 61*x[1]^2*x[2]*x[3]*x[5] +
    39*x[1]*x[2]^2*x[3]*x[5] + 30*x[2]^3*x[3]*x[5] + 54*x[1]^2*x[3]^2*x[5] +
    26*x[1]*x[2]*x[3]^2*x[5] + 68*x[2]^2*x[3]^2*x[5] + 52*x[1]*x[3]^3*x[5] +
    56*x[2]*x[3]^3*x[5] + 13*x[3]^4*x[5] + 55*x[1]^3*x[4]*x[5] +
    42*x[1]^2*x[2]*x[4]*x[5] + 8*x[1]*x[2]^2*x[4]*x[5] + 6*x[2]^3*x[4]*x[5] +
    62*x[1]^2*x[3]*x[4]*x[5] + 22*x[1]*x[2]*x[3]*x[4]*x[5] +
    89*x[2]^2*x[3]*x[4]*x[5] + 55*x[1]*x[3]^2*x[4]*x[5] +
    17*x[2]*x[3]^2*x[4]*x[5] + 52*x[3]^3*x[4]*x[5] + 19*x[1]^2*x[4]^2*x[5] +
    29*x[1]*x[2]*x[4]^2*x[5] + 78*x[2]^2*x[4]^2*x[5] + 80*x[1]*x[3]*x[4]^2*x[5]
    + 13*x[2]*x[3]*x[4]^2*x[5] + 34*x[3]^2*x[4]^2*x[5] + 80*x[1]*x[4]^3*x[5] +
    81*x[2]*x[4]^3*x[5] + 56*x[3]*x[4]^3*x[5] + 53*x[4]^4*x[5] +
    78*x[1]^3*x[5]^2 + 56*x[1]^2*x[2]*x[5]^2 + 71*x[1]*x[2]^2*x[5]^2 +
    73*x[2]^3*x[5]^2 + 3*x[1]^2*x[3]*x[5]^2 + 74*x[1]*x[2]*x[3]*x[5]^2 +
    21*x[2]^2*x[3]*x[5]^2 + 91*x[1]*x[3]^2*x[5]^2 + 17*x[2]*x[3]^2*x[5]^2 +
    61*x[3]^3*x[5]^2 + 34*x[1]^2*x[4]*x[5]^2 + 57*x[1]*x[2]*x[4]*x[5]^2 +
    70*x[2]^2*x[4]*x[5]^2 + 14*x[1]*x[3]*x[4]*x[5]^2 + 88*x[2]*x[3]*x[4]*x[5]^2
    + 60*x[3]^2*x[4]*x[5]^2 + 37*x[1]*x[4]^2*x[5]^2 + 29*x[2]*x[4]^2*x[5]^2 +
    57*x[3]*x[4]^2*x[5]^2 + 25*x[4]^3*x[5]^2 + 59*x[1]^2*x[5]^3 +
    41*x[1]*x[2]*x[5]^3 + 67*x[2]^2*x[5]^3 + 100*x[1]*x[3]*x[5]^3 +
    18*x[2]*x[3]*x[5]^3 + 14*x[3]^2*x[5]^3 + 70*x[1]*x[4]*x[5]^3 +
    26*x[2]*x[4]*x[5]^3 + 28*x[3]*x[4]*x[5]^3 + 8*x[4]^2*x[5]^3 + 13*x[1]*x[5]^4
    + 8*x[2]*x[5]^4 + 18*x[3]*x[5]^4 + 85*x[4]*x[5]^4 + 8*x[5]^5,
37*x[1]^4*x[2] + 32*x[1]^3*x[2]^2 + 29*x[1]^2*x[2]^3 + 61*x[1]*x[2]^4 +
    48*x[2]^5 + 41*x[1]^3*x[2]*x[3] + 100*x[1]^2*x[2]^2*x[3] +
    83*x[1]*x[2]^3*x[3] + 35*x[2]^4*x[3] + 44*x[1]^2*x[2]*x[3]^2 +
    87*x[1]*x[2]^2*x[3]^2 + 18*x[2]^3*x[3]^2 + 66*x[1]*x[2]*x[3]^3 +
    97*x[2]^2*x[3]^3 + 67*x[2]*x[3]^4 + 90*x[1]^4*x[4] + 93*x[1]^3*x[2]*x[4] +
    100*x[1]^2*x[2]^2*x[4] + 40*x[1]*x[2]^3*x[4] + 54*x[2]^4*x[4] +
    44*x[1]^3*x[3]*x[4] + 42*x[1]^2*x[2]*x[3]*x[4] + 4*x[1]*x[2]^2*x[3]*x[4] +
    17*x[2]^3*x[3]*x[4] + 91*x[1]^2*x[3]^2*x[4] + 44*x[1]*x[2]*x[3]^2*x[4] +
    73*x[2]^2*x[3]^2*x[4] + 89*x[1]*x[3]^3*x[4] + 4*x[2]*x[3]^3*x[4] +
    64*x[3]^4*x[4] + 64*x[1]^3*x[4]^2 + 70*x[1]^2*x[2]*x[4]^2 +
    48*x[1]*x[2]^2*x[4]^2 + 9*x[2]^3*x[4]^2 + 94*x[1]^2*x[3]*x[4]^2 +
    15*x[1]*x[2]*x[3]*x[4]^2 + 58*x[2]^2*x[3]*x[4]^2 + 23*x[1]*x[3]^2*x[4]^2 +
    17*x[3]^3*x[4]^2 + 37*x[1]^2*x[4]^3 + 17*x[1]*x[2]*x[4]^3 + 89*x[2]^2*x[4]^3
    + 36*x[1]*x[3]*x[4]^3 + 93*x[2]*x[3]*x[4]^3 + 14*x[3]^2*x[4]^3 +
    48*x[1]*x[4]^4 + 71*x[2]*x[4]^4 + 14*x[3]*x[4]^4 + 33*x[4]^5 +
    23*x[1]^3*x[2]*x[5] + 90*x[1]^2*x[2]^2*x[5] + 33*x[1]*x[2]^3*x[5] +
    16*x[2]^4*x[5] + 38*x[1]^2*x[2]*x[3]*x[5] + 80*x[1]*x[2]^2*x[3]*x[5] +
    80*x[2]^3*x[3]*x[5] + 81*x[1]*x[2]*x[3]^2*x[5] + 33*x[2]^2*x[3]^2*x[5] +
    97*x[2]*x[3]^3*x[5] + 29*x[1]^3*x[4]*x[5] + 90*x[1]^2*x[2]*x[4]*x[5] +
    4*x[1]*x[2]^2*x[4]*x[5] + 73*x[2]^3*x[4]*x[5] + 72*x[1]^2*x[3]*x[4]*x[5] +
    20*x[1]*x[2]*x[3]*x[4]*x[5] + 31*x[2]^2*x[3]*x[4]*x[5] +
    91*x[1]*x[3]^2*x[4]*x[5] + 73*x[2]*x[3]^2*x[4]*x[5] + 62*x[3]^3*x[4]*x[5] +
    94*x[1]^2*x[4]^2*x[5] + 19*x[1]*x[2]*x[4]^2*x[5] + 69*x[2]^2*x[4]^2*x[5] +
    57*x[1]*x[3]*x[4]^2*x[5] + 40*x[2]*x[3]*x[4]^2*x[5] + 29*x[3]^2*x[4]^2*x[5]
    + 3*x[1]*x[4]^3*x[5] + 19*x[2]*x[4]^3*x[5] + 100*x[3]*x[4]^3*x[5] +
    12*x[4]^4*x[5] + 45*x[1]^2*x[2]*x[5]^2 + 92*x[1]*x[2]^2*x[5]^2 +
    18*x[2]^3*x[5]^2 + 33*x[1]*x[2]*x[3]*x[5]^2 + 88*x[2]^2*x[3]*x[5]^2 +
    41*x[2]*x[3]^2*x[5]^2 + 33*x[1]^2*x[4]*x[5]^2 + 58*x[1]*x[2]*x[4]*x[5]^2 +
    85*x[2]^2*x[4]*x[5]^2 + 53*x[1]*x[3]*x[4]*x[5]^2 + 48*x[2]*x[3]*x[4]*x[5]^2
    + 87*x[3]^2*x[4]*x[5]^2 + 72*x[1]*x[4]^2*x[5]^2 + 96*x[2]*x[4]^2*x[5]^2 +
    96*x[3]*x[4]^2*x[5]^2 + 60*x[4]^3*x[5]^2 + 55*x[1]*x[2]*x[5]^3 +
    71*x[2]^2*x[5]^3 + 65*x[2]*x[3]*x[5]^3 + 32*x[1]*x[4]*x[5]^3 +
    21*x[2]*x[4]*x[5]^3 + 24*x[3]*x[4]*x[5]^3 + 87*x[4]^2*x[5]^3 + 8*x[2]*x[5]^4
    + 35*x[4]*x[5]^4,
41*x[1]^4*x[2] + 45*x[1]^3*x[2]^2 + 59*x[1]^2*x[2]^3 + 48*x[1]*x[2]^4 +
    19*x[2]^5 + 100*x[1]^4*x[3] + 84*x[1]^3*x[2]*x[3] + 47*x[1]^2*x[2]^2*x[3] +
    92*x[1]*x[2]^3*x[3] + 16*x[2]^4*x[3] + 64*x[1]^3*x[3]^2 +
    35*x[1]^2*x[2]*x[3]^2 + 87*x[1]*x[2]^2*x[3]^2 + 43*x[2]^3*x[3]^2 +
    53*x[1]^2*x[3]^3 + 71*x[1]*x[2]*x[3]^3 + 16*x[2]^2*x[3]^3 + 9*x[1]*x[3]^4 +
    74*x[2]*x[3]^4 + 85*x[3]^5 + 15*x[1]^3*x[2]*x[4] + 24*x[1]^2*x[2]^2*x[4] +
    22*x[1]*x[2]^3*x[4] + 75*x[2]^4*x[4] + 2*x[1]^3*x[3]*x[4] +
    41*x[1]^2*x[2]*x[3]*x[4] + 71*x[1]*x[2]^2*x[3]*x[4] + 5*x[2]^3*x[3]*x[4] +
    34*x[1]^2*x[3]^2*x[4] + 63*x[1]*x[2]*x[3]^2*x[4] + 21*x[2]^2*x[3]^2*x[4] +
    60*x[1]*x[3]^3*x[4] + 30*x[2]*x[3]^3*x[4] + 53*x[3]^4*x[4] +
    73*x[1]^2*x[2]*x[4]^2 + x[1]*x[2]^2*x[4]^2 + 53*x[2]^3*x[4]^2 +
    45*x[1]^2*x[3]*x[4]^2 + 78*x[1]*x[2]*x[3]*x[4]^2 + 92*x[2]^2*x[3]*x[4]^2 +
    22*x[1]*x[3]^2*x[4]^2 + 28*x[2]*x[3]^2*x[4]^2 + 59*x[3]^3*x[4]^2 +
    90*x[1]*x[2]*x[4]^3 + 62*x[2]^2*x[4]^3 + 50*x[1]*x[3]*x[4]^3 +
    85*x[2]*x[3]*x[4]^3 + 44*x[3]^2*x[4]^3 + 43*x[2]*x[4]^4 + 74*x[3]*x[4]^4 +
    54*x[1]^3*x[2]*x[5] + 28*x[1]^2*x[2]^2*x[5] + 75*x[1]*x[2]^3*x[5] +
    34*x[2]^4*x[5] + 32*x[1]^3*x[3]*x[5] + 57*x[1]^2*x[2]*x[3]*x[5] +
    10*x[1]*x[2]^2*x[3]*x[5] + 66*x[2]^3*x[3]*x[5] + 49*x[1]^2*x[3]^2*x[5] +
    40*x[1]*x[2]*x[3]^2*x[5] + 42*x[2]^2*x[3]^2*x[5] + 23*x[1]*x[3]^3*x[5] +
    33*x[2]*x[3]^3*x[5] + 75*x[3]^4*x[5] + 83*x[1]^2*x[2]*x[4]*x[5] +
    9*x[1]*x[2]^2*x[4]*x[5] + 86*x[2]^3*x[4]*x[5] + 99*x[1]^2*x[3]*x[4]*x[5] +
    52*x[1]*x[2]*x[3]*x[4]*x[5] + 28*x[2]^2*x[3]*x[4]*x[5] +
    75*x[1]*x[3]^2*x[4]*x[5] + 99*x[2]*x[3]^2*x[4]*x[5] + 29*x[3]^3*x[4]*x[5] +
    88*x[1]*x[2]*x[4]^2*x[5] + 63*x[2]^2*x[4]^2*x[5] + 59*x[1]*x[3]*x[4]^2*x[5]
    + 14*x[2]*x[3]*x[4]^2*x[5] + 85*x[3]^2*x[4]^2*x[5] + 13*x[2]*x[4]^3*x[5] +
    45*x[3]*x[4]^3*x[5] + 20*x[1]^2*x[2]*x[5]^2 + 53*x[1]*x[2]^2*x[5]^2 +
    78*x[2]^3*x[5]^2 + 57*x[1]^2*x[3]*x[5]^2 + 53*x[1]*x[2]*x[3]*x[5]^2 +
    23*x[2]^2*x[3]*x[5]^2 + 49*x[1]*x[3]^2*x[5]^2 + 87*x[2]*x[3]^2*x[5]^2 +
    68*x[3]^3*x[5]^2 + 56*x[1]*x[2]*x[4]*x[5]^2 + 23*x[2]^2*x[4]*x[5]^2 +
    49*x[1]*x[3]*x[4]*x[5]^2 + 28*x[2]*x[3]*x[4]*x[5]^2 + 30*x[3]^2*x[4]*x[5]^2
    + 48*x[2]*x[4]^2*x[5]^2 + 75*x[3]*x[4]^2*x[5]^2 + 6*x[2]^2*x[5]^3 +
    7*x[1]*x[3]*x[5]^3 + 56*x[2]*x[3]*x[5]^3 + 93*x[3]^2*x[5]^3 +
    31*x[2]*x[4]*x[5]^3 + 31*x[3]*x[4]*x[5]^3 + 83*x[2]*x[5]^4 + 99*x[3]*x[5]^4,
61*x[1]^4*x[2] + 83*x[1]^3*x[2]^2 + 24*x[1]^2*x[2]^3 + 29*x[1]*x[2]^4 +
    88*x[2]^5 + 90*x[1]^4*x[3] + 94*x[1]^3*x[2]*x[3] + 10*x[1]^2*x[2]^2*x[3] +
    63*x[1]*x[2]^3*x[3] + 96*x[2]^4*x[3] + 44*x[1]^3*x[3]^2 +
    61*x[1]^2*x[2]*x[3]^2 + 12*x[1]*x[2]^2*x[3]^2 + 17*x[2]^3*x[3]^2 +
    91*x[1]^2*x[3]^3 + 21*x[1]*x[2]*x[3]^3 + 85*x[2]^2*x[3]^3 + 89*x[1]*x[3]^4 +
    69*x[2]*x[3]^4 + 64*x[3]^5 + 46*x[1]^3*x[2]*x[4] + 59*x[1]^2*x[2]^2*x[4] +
    93*x[1]*x[2]^3*x[4] + 95*x[2]^4*x[4] + 64*x[1]^3*x[3]*x[4] +
    41*x[1]^2*x[2]*x[3]*x[4] + 4*x[1]*x[2]^2*x[3]*x[4] + 41*x[2]^3*x[3]*x[4] +
    94*x[1]^2*x[3]^2*x[4] + 47*x[1]*x[2]*x[3]^2*x[4] + 23*x[2]^2*x[3]^2*x[4] +
    23*x[1]*x[3]^3*x[4] + 61*x[2]*x[3]^3*x[4] + 17*x[3]^4*x[4] +
    82*x[1]^2*x[2]*x[4]^2 + 72*x[1]*x[2]^2*x[4]^2 + 23*x[2]^3*x[4]^2 +
    37*x[1]^2*x[3]*x[4]^2 + 4*x[1]*x[2]*x[3]*x[4]^2 + 72*x[2]^2*x[3]*x[4]^2 +
    36*x[1]*x[3]^2*x[4]^2 + 91*x[2]*x[3]^2*x[4]^2 + 14*x[3]^3*x[4]^2 +
    21*x[1]*x[2]*x[4]^3 + 20*x[2]^2*x[4]^3 + 48*x[1]*x[3]*x[4]^3 +
    17*x[2]*x[3]*x[4]^3 + 14*x[3]^2*x[4]^3 + 48*x[2]*x[4]^4 + 33*x[3]*x[4]^4 +
    23*x[1]^3*x[2]*x[5] + 45*x[1]^2*x[2]^2*x[5] + 30*x[1]*x[2]^3*x[5] +
    28*x[2]^4*x[5] + 29*x[1]^3*x[3]*x[5] + 73*x[1]^2*x[2]*x[3]*x[5] +
    96*x[1]*x[2]^2*x[3]*x[5] + 12*x[2]^3*x[3]*x[5] + 72*x[1]^2*x[3]^2*x[5] +
    30*x[1]*x[2]*x[3]^2*x[5] + 81*x[2]^2*x[3]^2*x[5] + 91*x[1]*x[3]^3*x[5] +
    53*x[2]*x[3]^3*x[5] + 62*x[3]^4*x[5] + 67*x[1]^2*x[2]*x[4]*x[5] +
    44*x[1]*x[2]^2*x[4]*x[5] + 31*x[2]^3*x[4]*x[5] + 94*x[1]^2*x[3]*x[4]*x[5] +
    56*x[1]*x[2]*x[3]*x[4]*x[5] + 26*x[2]^2*x[3]*x[4]*x[5] +
    57*x[1]*x[3]^2*x[4]*x[5] + 29*x[3]^3*x[4]*x[5] + 64*x[1]*x[2]*x[4]^2*x[5] +
    72*x[2]^2*x[4]^2*x[5] + 3*x[1]*x[3]*x[4]^2*x[5] + 96*x[2]*x[3]*x[4]^2*x[5] +
    100*x[3]^2*x[4]^2*x[5] + 76*x[2]*x[4]^3*x[5] + 12*x[3]*x[4]^3*x[5] +
    42*x[1]^2*x[2]*x[5]^2 + 60*x[1]*x[2]^2*x[5]^2 + 34*x[2]^3*x[5]^2 +
    33*x[1]^2*x[3]*x[5]^2 + 64*x[1]*x[2]*x[3]*x[5]^2 + 56*x[2]^2*x[3]*x[5]^2 +
    53*x[1]*x[3]^2*x[5]^2 + 32*x[2]*x[3]^2*x[5]^2 + 87*x[3]^3*x[5]^2 +
    31*x[1]*x[2]*x[4]*x[5]^2 + 75*x[2]^2*x[4]*x[5]^2 + 72*x[1]*x[3]*x[4]*x[5]^2
    + 61*x[2]*x[3]*x[4]*x[5]^2 + 96*x[3]^2*x[4]*x[5]^2 + 93*x[2]*x[4]^2*x[5]^2 +
    60*x[3]*x[4]^2*x[5]^2 + 88*x[1]*x[2]*x[5]^3 + 93*x[2]^2*x[5]^3 +
    32*x[1]*x[3]*x[5]^3 + 66*x[2]*x[3]*x[5]^3 + 24*x[3]^2*x[5]^3 +
    16*x[2]*x[4]*x[5]^3 + 87*x[3]*x[4]*x[5]^3 + 93*x[2]*x[5]^4 + 35*x[3]*x[5]^4,
63*x[1]^4*x[2] + 97*x[1]^3*x[2]^2 + 94*x[1]^2*x[2]^3 + 8*x[1]*x[2]^4 + 26*x[2]^5
    + 46*x[1]^3*x[2]*x[3] + 70*x[1]^2*x[2]^2*x[3] + 53*x[1]*x[2]^3*x[3] +
    97*x[2]^4*x[3] + 3*x[1]^2*x[2]*x[3]^2 + 77*x[1]*x[2]^2*x[3]^2 +
    71*x[2]^3*x[3]^2 + 77*x[1]*x[2]*x[3]^3 + 95*x[2]^2*x[3]^3 + 71*x[2]*x[3]^4 +
    14*x[1]^3*x[2]*x[4] + 100*x[1]^2*x[2]^2*x[4] + 62*x[1]*x[2]^3*x[4] +
    55*x[2]^4*x[4] + 73*x[1]^2*x[2]*x[3]*x[4] + 10*x[1]*x[2]^2*x[3]*x[4] +
    90*x[2]^3*x[3]*x[4] + 23*x[1]*x[2]*x[3]^2*x[4] + 11*x[2]^2*x[3]^2*x[4] +
    63*x[2]*x[3]^3*x[4] + 36*x[1]^2*x[2]*x[4]^2 + 17*x[1]*x[2]^2*x[4]^2 +
    4*x[2]^3*x[4]^2 + 13*x[1]*x[2]*x[3]*x[4]^2 + 13*x[2]^2*x[3]*x[4]^2 +
    57*x[2]*x[3]^2*x[4]^2 + 44*x[1]*x[2]*x[4]^3 + 77*x[2]^2*x[4]^3 +
    57*x[2]*x[3]*x[4]^3 + 80*x[2]*x[4]^4 + 100*x[1]^4*x[5] + 34*x[1]^3*x[2]*x[5]
    + 96*x[1]^2*x[2]^2*x[5] + 87*x[1]*x[2]^3*x[5] + 22*x[2]^4*x[5] +
    64*x[1]^3*x[3]*x[5] + 42*x[1]^2*x[2]*x[3]*x[5] + 21*x[1]*x[2]^2*x[3]*x[5] +
    60*x[2]^3*x[3]*x[5] + 53*x[1]^2*x[3]^2*x[5] + 36*x[1]*x[2]*x[3]^2*x[5] +
    52*x[2]^2*x[3]^2*x[5] + 9*x[1]*x[3]^3*x[5] + 72*x[2]*x[3]^3*x[5] +
    85*x[3]^4*x[5] + 2*x[1]^3*x[4]*x[5] + 33*x[1]^2*x[2]*x[4]*x[5] +
    77*x[1]*x[2]^2*x[4]*x[5] + 7*x[2]^3*x[4]*x[5] + 34*x[1]^2*x[3]*x[4]*x[5] +
    84*x[1]*x[2]*x[3]*x[4]*x[5] + 41*x[2]^2*x[3]*x[4]*x[5] +
    60*x[1]*x[3]^2*x[4]*x[5] + 95*x[2]*x[3]^2*x[4]*x[5] + 53*x[3]^3*x[4]*x[5] +
    45*x[1]^2*x[4]^2*x[5] + 66*x[1]*x[2]*x[4]^2*x[5] + 72*x[2]^2*x[4]^2*x[5] +
    22*x[1]*x[3]*x[4]^2*x[5] + 60*x[2]*x[3]*x[4]^2*x[5] + 59*x[3]^2*x[4]^2*x[5]
    + 50*x[1]*x[4]^3*x[5] + 55*x[2]*x[4]^3*x[5] + 44*x[3]*x[4]^3*x[5] +
    74*x[4]^4*x[5] + 32*x[1]^3*x[5]^2 + 63*x[1]^2*x[2]*x[5]^2 +
    26*x[1]*x[2]^2*x[5]^2 + 75*x[2]^3*x[5]^2 + 49*x[1]^2*x[3]*x[5]^2 +
    83*x[1]*x[2]*x[3]*x[5]^2 + 92*x[2]^2*x[3]*x[5]^2 + 23*x[1]*x[3]^2*x[5]^2 +
    87*x[2]*x[3]^2*x[5]^2 + 75*x[3]^3*x[5]^2 + 99*x[1]^2*x[4]*x[5]^2 +
    76*x[1]*x[2]*x[4]*x[5]^2 + 69*x[2]^2*x[4]*x[5]^2 + 75*x[1]*x[3]*x[4]*x[5]^2
    + 38*x[2]*x[3]*x[4]*x[5]^2 + 29*x[3]^2*x[4]*x[5]^2 + 59*x[1]*x[4]^2*x[5]^2 +
    38*x[2]*x[4]^2*x[5]^2 + 85*x[3]*x[4]^2*x[5]^2 + 45*x[4]^3*x[5]^2 +
    57*x[1]^2*x[5]^3 + 58*x[1]*x[2]*x[5]^3 + 91*x[2]^2*x[5]^3 +
    49*x[1]*x[3]*x[5]^3 + 73*x[2]*x[3]*x[5]^3 + 68*x[3]^2*x[5]^3 +
    49*x[1]*x[4]*x[5]^3 + 90*x[2]*x[4]*x[5]^3 + 30*x[3]*x[4]*x[5]^3 +
    75*x[4]^2*x[5]^3 + 7*x[1]*x[5]^4 + 28*x[2]*x[5]^4 + 93*x[3]*x[5]^4 +
    31*x[4]*x[5]^4 + 99*x[5]^5]);

assert Dimension(X) eq 2;
assert ArithmeticGenus(X) eq 0;
R := CoordinateRing(Ambient(X));
assert ArithmeticGenus(X meet Scheme(Ambient(X),R.1)) eq 9;
KX := CanonicalSheaf(X,0); // canonical sheaf
HX := StructureSheaf(X,1); // hyperplane sheaf
assert IntersectionPairing(KX,HX) eq 6;
assert IntersectionPairing(HX,HX) eq 10;
assert IntersectionPairing(KX,KX) eq -9;
mp1,X1 := DivisorMap(Twist(KX,1));
assert Dimension(Ambient(X1)) eq 8;
assert Dimension(X1) eq 2;
mp1r := Restriction(mp1,X,X1);
assert IsInvertible(mp1r);
KX1 := CanonicalSheaf(X1,0); // canonical sheaf of X1
HX1 := StructureSheaf(X1,1); // hyperplane sheaf X1
assert IntersectionPairing(KX1,HX1) eq -3;
assert IntersectionPairing(HX1,HX1) eq 13;
assert IntersectionPairing(KX1,KX1) eq -2;
mp2,X2 := DivisorMap(Twist(KX1,1));
assert Dimension(Ambient(X2)) eq 5; 
assert Dimension(X2) eq 2;
mp2r := Restriction(mp2,X1,X2);
assert IsInvertible(mp2r);
KX2 := CanonicalSheaf(X2,0); // canonical sheaf of X2
HX2 := StructureSheaf(X2,1); // hyperplane sheaf X2
assert IntersectionPairing(KX2,HX2) eq -5;
assert IntersectionPairing(HX2,HX2) eq 5;
assert IntersectionPairing(KX2,KX2) eq 5;
boo,d := IsIsomorphicWithTwist(KX2,HX2);
assert boo and (d eq -2);
mpc := Expand(mp1r * mp2r);
assert IsInvertible(mpc);

// Ex 3 basic sheaf functions
M := Module(KX1);
M := FullModule(KX1);
S := Scheme(KX1);
M := GlobalSectionSubmodule(KX1);

//Ex 4 some other sheaf property functions
P<s,t> := ProjectiveSpace(Rationals(),1);
R := CoordinateRing(P);
P5<a,b,c,d,e,f> := ProjectiveSpace(Rationals(),5);
mp := map<P->P5 | Setseq(MonomialsOfDegree(R,5))>;
X := Image(mp); // rational normal curve in P^5
KX := CanonicalSheaf(X);
boo,d := IsLocallyFree(KX);
assert boo and (d eq 1);
assert IsArithmeticallyCohenMacaulay(KX);
Ppt := Scheme(P,s);
Xpt := mp(Ppt);
Ipt := Ideal(Xpt);
Spt := DivisorToSheaf(X,Ipt);
boo,d := IsLocallyFree(Spt);
assert boo and (d eq 1);
assert IsArithmeticallyCohenMacaulay(Spt);
dmp := DivisorMap(Spt);
assert IsInvertible(dmp);
assert Dimension(Codomain(dmp)) eq 1;
S1 := StructureSheaf(P,1);
S2 := StructureSheaf(P,3);
hs,smp := SheafHoms(S1,S2);
mp1 := smp((hs`M).1);
mp2 := smp((hs`M)![R.1*R.2]);
im2,i,j := Image(mp2);
sh := Expand([i,j]);

