Critical zeros of a bihomogeneous function and of its dehomogenization agree in the standard chart
ProvedCurveSymmetry.criticalZero_homogeneousChartLet be an integer and let be any function that is bihomogeneous of bidegree in the sense that for all and all ; no continuity is assumed. Let be the standard chart and let , so that is the dehomogenization of . Call a critical zero of a complex-valued function on or on if and is complex differentiable at with zero differential.
Then for every
This connects the homogeneous Jacobian condition on with the Jacobian criterion for a dehomogenized equation. Combined with linear changes of coordinates, the formalization applies it in the four standard charts of , where the proof of Lemma 4 clears denominators and locates the singular points of .
Formalization Note: complex differentiability at with zero differential is HasFDerivAt H 0 w over ; no differentiability of away from the point is assumed.
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.criticalZero_homogeneousChart (F : HomogeneousPairs → ℂ) (d : ℕ)
(hscale : ∀ (a b : ℂ) (q : HomogeneousPairs),
F (a • q.1, b • q.2) = a ^ d * b ^ d * F q) (v : Fin 2 → ℂ) :
CriticalZero F (homogeneousChart v) ↔ CriticalZero (F ∘ homogeneousChart) v := by sorry