"Source: Text/Geometry/GrdRng.text";
"Line: 1791";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/GrdRng.text, line: 1791
// Example: H128E5 ()
print "Example: H128E5";
ei := GetEchoInput();
SetEchoInput(true);
q1<t> := PolynomialRing(RationalField());
z4<x,y,z,w> := PolynomialRing(IntegerRing(),4);
f := x^4 + x^3*z + x^2*y^2 + x^2*y*w + x^2*z^2 + x^2*z*w +
     x*y^3 + x*y*z*w + x*y*w^2 + x*z^2*w + y^3*w + y^2*z^2 +
     y^2*z*w + y^2*w^2 + y*z^2*w + z^4 + z*w^3;
Tr := [];
for i := 1 to 10 do
   P3 := ProjectiveSpace(GF(2^i),3);
   S := Scheme(P3,f);
   time
   Tr[i] := #Points(S) - 1 - 2^(2*i);
end for;
cpl := FrobeniusTracesToWeilPolynomials(Tr, 2, 2, 22: KnownFactor := t-2);
cpl;
cpl_2 := [wp : wp in cpl | CheckWeilPolynomial(wp,2,1: SurfDeg := 4)];
cpl_2;
WeilPolynomialToRankBound(cpl_2[1],2);
assert $1 eq 2;
ArtinTateFormula(cpl_2[1],2,1);
ArtinTateFormula(WeilPolynomialOverFieldExtension(cpl_2[1],2),2^2,1);
SetEchoInput(ei);
