// ============== // Refer to [TOp, Section 4] // The first section redoes the calculations in the text // via the reductive case. Kt := FunctionField(Rationals()); S := -3/t^2; A := PolynomialRing(Kt); Phi3 := x^3 - S*(t*x^2 + x); IsDivisibleBy((1+t*x)^3-1, Phi3); RR := PolynomialRing(Kt,4); Phi3 := x^3 - S*(t*x^2 + x); Mf := Matrix(RR, 3, [1,0,0, x,1+t*x,0, x^2,2*x*(1+t*x),(1+t*x)^2]); f := hom< RR -> RR | [x] cat Eltseq(Mf*Matrix(1,[u0,u1,u2])) >; In1 := u0; In2 := u0*u2 + 2*u1^2 + t*u1*u2 - S*t*u0*u1; In3 := u1^3 - S*u0^2*u1 - S*t*u0*u1^2; In4 := u2^3 - S*(u0*u2^2 + 4*u1^2*u2 + 2*t*u1*u2^2) + S^2*(u0^2*u2 + 2*t*u0*u1*u2); [IsDivisibleBy(f(m)-m,Phi3) : m in [In1,In2,In3,In4]]; v0 := u0; v1 := u0 + t*u1; v2 := u0 + 2*t*u1 + t^2*u2; f(v0) eq u0; f(v1) eq (1+x*t)*v1; f(v2) eq (1+x*t)^2*v2; F0 := u0^3; F1 := u1^3 - S*u0*u1*(u0+t*u1); F2 := u2^3 - S*(u0*u2^2 + 4*u1^2*u2 + 2*t*u1*u2^2) + S^2*(u0^2*u2 + 2*t*u0*u1*u2); F3 := u0^2*u2 + 2*u0*u1^2 + t*u0*u1*u2 - S*t*u0^2*u1; [IsDivisibleBy(f(m) - m, Phi3) : m in [v1*v2, v1^3, v2^3, F0, F1, F2, F3]]; F := F0 + F1 + F2 + F3; PP := Proj(RR); E := Scheme(PP,[F,x]); IsNonSingular(E); FF3 := FiniteField(3); S := 0; t := 0; RR := PolynomialRing(FF3,3); F0 := u0^3; F1 := u1^3 + S*u0*u1*(u0+t*u1); F2 := u2^3 + S*(u0*u2^2 + 4*u1^2*u2 + 2*t*u1*u2^2) + S^2*(u0^2*u2 + 2*t*u0*u1*u2); F3 := u0^2*u2 + 2*u0*u1^2 + t*u0*u1*u2 + S*t*u0^2*u1; Factorization(F3); F := F0 + F1 + F2 + F3; PP := Proj(RR); E := Scheme(PP,F); IsNonSingular(E); // ============== // The second section carries out the computations referred // to in [TOp, Section 4.2], starting with S = t = p = 0. FF3 := FiniteField(3); Ra := PolynomialRing(FF3); Rabar, fie := quo; // set a^3=0 Rx := PolynomialRing(Ra,3); Mon3 := SetToSequence(MonomialsOfDegree(Rx,3)); Mf := Matrix(Rx, 3, [1,0,0, a,1,0, a^2,2*a,1]); f := hom Rx | Eltseq(Mf*Matrix(1,[x,y,z]))>; // action of additive gp GGa [f(m) : m in Mon3]; S3M := Matrix(10, [Ra!(fie(MonomialCoefficient(n,m))) : m in Mon3, n in $1]); //$ Ra!fie sets a^3 = 0 in a polynomial in a // S3M is the matrix repn of al_p acting on S^3(x,y,z) S3M; Matrix(Rx,10,[Basis(Kernel(S3M-1))[i,j] : j in [1..10], i in [1..4]])*Matrix(1,Mon3);; // invariant monomials are the kernel of S3M-1. RR := PolynomialRing(FF3,3); PP2 := Proj(RR); F := X^3+Y^3+Z^3+X^2*Z-X*Y^2; C := Scheme(PP2,F); C; IsNonSingular(C);