import OAI.AlgebraicGeometry.AbhyankarSathaye.Identities
import Mathlib.Algebra.MvPolynomial.PDeriv
import Mathlib.Tactic.NormNum
namespace OAI
/-!
# An explicit critical point away from the zero fiber
At `(h,u,v,w) = (2,0,-1/2,1/2)`, the value of `F` is `-1` and every
partial derivative vanishes. Differentiating the ambient polynomial identity
proves the latter without expanding `F`.
-/
noncomputable section
namespace AbhyankarSathaye
open MvPolynomial
def criticalPoint (i : Fin 4) : ℂ :=
if i = 0 then 2 else if i = 1 then 0 else if i = 2 then -1/2 else 1/2
@[simp] theorem criticalPoint_h : criticalPoint 0 = 2 := rfl
@[simp] theorem criticalPoint_u : criticalPoint 1 = 0 := rfl
@[simp] theorem criticalPoint_v : criticalPoint 2 = -1/2 := rfl
@[simp] theorem criticalPoint_w : criticalPoint 3 = 1/2 := rfl
theorem eval_x : eval criticalPoint x = -1 := by
norm_num [x, u, h, v]
theorem eval_y : eval criticalPoint y = 1 := by
norm_num [y, u, h, w]
theorem eval_s : eval criticalPoint s = 1 := by
norm_num [s, S, u, h, v, w]
theorem eval_p : eval criticalPoint p = 2 := by
norm_num [p, P, eval_x, eval_y, eval_s]
theorem eval_F : eval criticalPoint F = -1 := by
norm_num [F, h, eval_p]
theorem eval_shiftX : eval criticalPoint shiftX = 0 := by
norm_num [shiftX, eval_x, eval_s]
theorem eval_shiftY : eval criticalPoint shiftY = 0 := by
norm_num [shiftY, eval_y, eval_s]
theorem critical_of_ambient_identity {σ B : Type*} [CommRing B]
(A D E f : MvPolynomial σ B) (point : σ → B)
(hid : A^2 + D^3 = E*(1+f))
(hA : eval point A = 0) (hD : eval point D = 0)
(hE : eval point E = 1) (hf : eval point f = -1) (i : σ) :
eval point (pderiv i f) = 0 := by
have hd := congrArg (fun z => eval point (pderiv i z)) hid
simpa [pderiv_pow, pderiv_mul, hA, hD, hE, hf] using hd.symm
theorem critical_derivatives (i : Fin 4) : eval criticalPoint (pderiv i F) = 0 :=
critical_of_ambient_identity shiftX shiftY s F criticalPoint ambient
eval_shiftX eval_shiftY eval_s eval_F i
end AbhyankarSathaye
end
end OAI
SHA-256 8482fed2b765a9cdcbb651302ce0f1dd9916a009bd785bca371640b01974e33b