Singular points of in the mixed chart : homogeneous and affine Jacobian criteria agree
ProvedCurveSymmetry.family_critical_mixed_iffLet be an integer and let be arbitrary. For and in let
the bihomogenization of , and let . It satisfies , so is the equation of in the mixed chart of the points , where .
For all , the point of is a critical zero of , meaning that vanishes there and is differentiable there with zero differential, if and only if
In the proof of Lemma 4 the equation of near the boundary point is written as . This lemma identifies the homogeneous singularity condition at the points with the Jacobian criterion for that chart equation; the formalization uses it to show that the mixed boundary points of are nonsingular.
Formalization Note: the partial derivatives of are Mathlib's formal derivatives MvPolynomial.pderiv, and the condition on uses HasFDerivAt on (Fin 2 → ℂ) × (Fin 2 → ℂ).
import Definitions.Def_CurveSymmetry_01_RealLoci import Definitions.Def_CurveSymmetry_02_FamilyBasics import Definitions.Def_CurveSymmetry_03_IsometriesAndCharts import Mathlib.Algebra.MvPolynomial.Nilpotent import Mathlib.Algebra.MvPolynomial.NoZeroDivisors import Mathlib.Algebra.MvPolynomial.PDeriv import Mathlib.Algebra.Polynomial.FieldDivision import Mathlib.Algebra.Polynomial.Reverse import Mathlib.Analysis.Calculus.FDeriv.Analytic import Mathlib.Analysis.Calculus.FDeriv.Equiv import Mathlib.Analysis.Calculus.FDeriv.Mul import Mathlib.Analysis.Calculus.FDeriv.Pi import Mathlib.Analysis.Complex.Isometry import Mathlib.Analysis.Complex.OperatorNorm import Mathlib.Analysis.Complex.Polynomial.Basic import Mathlib.Analysis.Normed.Affine.MazurUlam import Mathlib.Data.Complex.Basic import Mathlib.FieldTheory.Separable import Mathlib.RingTheory.MvPolynomial.Homogeneous import Mathlib.RingTheory.MvPolynomial.IrreducibleQuadratic import Mathlib.RingTheory.Polynomial.Eisenstein.Criterion import Mathlib.RingTheory.Polynomial.GaussLemma import Mathlib.RingTheory.RootsOfUnity.Complex import Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots import Mathlib.Tactic import Mathlib.Topology.Algebra.Module.FiniteDimension import Mathlib.Topology.Compactification.OnePoint.ProjectiveLine open CurveSymmetry set_option autoImplicit false open Filter open scoped Topology
theorem CurveSymmetry.family_critical_mixed_iff (m : ℕ) (α x y : ℂ) :
CriticalZero (fun q : HomogeneousPairs => familyBihomogeneous m α q.1 q.2)
(![1, x], ![y, 1]) ↔ JacobianSingular (familyMixedPolynomial m α (star α)) x y := by sorry