"Source: Text/Geometry/AlgSrf.text";
"Line: 2719";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/AlgSrf.text, line: 2719
// Example: H126E13 ()
print "Example: H126E13";
ei := GetEchoInput();
SetEchoInput(true);
P<x,y,z,t> := ProjectiveSpace(Rationals(),3);
S := Surface(P,
z^2*t^7-x^8*t-8*x^7*t*y-4*x^6*t^2*y-24*x^6*t*y^2-24*x^5*t^2*y^2-
4*x^6*y^3-32*x^5*t*y^3-52*x^4*t^2*y^3-24*x^5*y^4-32*x^4*t*y^4-
48*x^3*t^2*y^4-52*x^4*y^5-64*x^3*t*y^5-16*x^2*t^2*y^5-48*x^3*y^6-
96*x^2*t*y^6-16*x^2*y^7-64*x*t*y^7-16*t*y^8);
dsds,typ := ResolveSingularSurface(S);
typ;  // resolution of blow-up type
#dsds; // 5 Galois-conjugate sets of singular points
dsd := dsds[4];
IntersectionMatrix(dsd);
G,sngs,multi_ints := DualResolutionGraph(dsd);
G;
sngs; multi_ints;
vG := VertexSet(G);
Label(vG.11);
 Edges(vG.11,vG.11);
SelfIntersection(G,11);
CanonicalIntersection(G,11);
ArithmeticGenus(G,11);
dat11 := [e : e in BlowUpDivisorAllPatches(dsd,11) | e[4] eq 6][1];
Da := dat11[1]; Da;
Ambient(Da);
Xa6 := dat11[2]; // the 6th surface blow-up patch
Xa6;
IsSingular(Xa6![-1/2,0,0]); IsSingular(Xa6![-1,0,0]);
es := Edges(vG.10,vG.11); es; // single intersection point
e := es[1];
Label(e);
// Local intersection multiplicity is 1 (its a transverse intersection).
// Can also get this by
LocalIntersectionNumber(e);
SetEchoInput(ei);
