"Source: Text/Geometry/AlgSrf.text";
"Line: 6636";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/AlgSrf.text, line: 6636
// Example: H126E41 ()
print "Example: H126E41";
ei := GetEchoInput();
SetEchoInput(true);
R<a,b,c> := PolynomialRing(Rationals(),3);
f := 4*a*b^2*c*(a+c)^2+(a*(b+c)^2+b*(a+c)^2)*(a*(-b+c)^2+b*(c-a)^2);
S := DegreeTwoK3Surface(f); 
lins := TriTangentLines(S);
lins;
[IsIdentical(Parent(l),CoordinateRing(Ambient(S))) : l in lins]; 
BaseRing(Parent(lins[5]));
spl := [PrimeComponents(Scheme(S,lins[i])) : i in [1,2,3,4,6]];
assert &and[#ps eq 2 : ps in spl];
Ls := [s[1] : s in spl];
Lsd := [s[2] : s in spl];
Ls;
Lsd;
Rp<a,b,c> := PolynomialRing(GF(5),3,"grevlex");
SixTangentConicsModp(Rp!f);
Rp<a,b,c> := PolynomialRing(GF(7),3,"grevlex");
SixTangentConicsModp(Rp!f);
x,y,z,w := Explode([Ambient(S).i : i in [1..4]]);
Cs := [x^2+y*z, x^2+x*y+y^2+x*z+2*y*z];
[SixTangentConicCheck(S,C) : C in Cs];
splC := [PrimeComponents(Scheme(S,C)) : C in Cs];
assert &and[#ps eq 2 : ps in splC];
LsC := [s[1] : s in splC];
LsCd := [s[2] : s in splC];
[MinimalBasis(Z) : Z in LsC];
[MinimalBasis(Z) : Z in LsCd];
Ls cat:= LsC;
Lsd cat:= LsCd;
imat := IntersectionMatrixOnDegree2K3(S, Ls cat Lsd);
imat;
Rank(imat);
SetEchoInput(ei);
