# Coordinator checks (SageMath 10.8) for the harvest of # ai/2026-10-23-hironaka-char-p-resolution-review. # K1: Hauser's kangaroo sequence f0 -> f3 (char 2) and the residual orders. # K2: arc tests showing that wp((f0,2),1) has no element of order 1 at 0 and at a # point eta != 0 of the cusp C = {x = 0, y^3 + z^2 = 0}. # N1: Narasimhan's example: f, df vanish on C=(t^32,t^7,t^19,t^15); d_y(d_z f) = z^2. F2 = GF(2) Q. = PolynomialRing(F2) f0 = x^2 + y^7 + y*z^4 f1 = Q(f0(x*y, y, z*y)/y^2); f2 = Q(f1(x*z, y*z, z)/z^2); f3 = Q(f2(x*z, y*z+z, z)/z^2) print("f1 =", f1, "| f2 =", f2, "| f3 =", f3) print("f0 = x^2 + y*(y^3+z^2)^2 :", f0 == x^2 + y*(y^3+z^2)^2) phi = y^2*z^3 + y*z^3 g3 = Q(f3(x+phi, y, z)) print("f3(x+phi) =", g3, "; factor of z^6 in residual part:", factor(Q((g3 - x^2)/z^6))) # K2 at 0: arc y=s^2, z=s^4, x = s*u + s^N with u = y^3+z^2 N = 60 S. = PowerSeriesRing(F2, default_prec=400) def w(h, arc): return h(*arc).valuation() yy = s^2; zz = s^4; uu = yy^3 + zz^2; xx = s*uu + s^N arc0 = (xx, yy, zz) mu0 = min(QQ(w(f0,arc0))/2, QQ(w(f0,arc0)), QQ(w(y^6 + z^4, arc0))) # Diff^(1) f0 = (f0, (y^3+z^2)^2) print("at 0: w(f0)=", w(f0,arc0), " mu=", mu0, " w(x),w(y),w(z) =", w(x,arc0), w(y,arc0), w(z,arc0)) # K2 at eta: over GF(4), t0 = a, eta = (0, t0^2, t0^3); c = t0, y(s) = (c+s)^2 F4. = GF(4); Q4 = Q.change_ring(F4); S4. = PowerSeriesRing(F4, default_prec=400) c = a; z0 = a^3; y0 = a^2 for zarc in [z0 + s^2, z0 + s^3]: yy = (c + s)^2; uu = yy^3 + zarc^2; xx = (c + s)*uu + s^N arc = (xx, yy, zarc) fq = Q4(f0); X = Q4.gen(0) + c*(Q4.gen(1)^3 + Q4.gen(2)^2); U = Q4.gen(1)^3 + Q4.gen(2)^2; W = Q4.gen(2) - z0 mu = min(QQ(w(fq,arc))/2, QQ(w(Q4(y^6+z^4),arc))) print("at eta, z-arc", zarc, ": w(f0)=", w(fq,arc), " mu=", mu, " w(X),w(U),w(W) =", w(X,arc), w(U,arc), w(W,arc), " leading coeffs X,U,W:", [ (h(*arc)).list()[w(h,arc)] for h in (X,U,W)]) # N1 P. = PolynomialRing(F2); fN = X1^2 + Y1*Z1^3 + Z1*W1^3 + Y1^7*W1 T. = PolynomialRing(F2); par = (t^32, t^7, t^19, t^15) print("Narasimhan: f(C)=", fN(*par), " df(C)=", [fN.derivative(v)(*par) for v in P.gens()], " d_y d_z f =", fN.derivative(Z1).derivative(Y1))