Over the Riemann sphere the only singular points of are and , for
ProvedCurveSymmetry.family_projective_critical_pairLet be an integer and let with ; no condition on is imposed. For and in let
the bihomogenization of bidegree of , and let . Let be the set of its singular points by the Jacobian criterion: the points such that , as a function on , vanishes at together with its differential. Identify the Riemann sphere with by for and .
Then for all
Since is a bijection, this decides every point of , boundary points included. It yields the singular-point clause of Lemma 4 and the fact, used in the proof of Theorem 2, that the singular points of form the pair , which every equivalence must preserve.
Formalization Note: is Mathlib's OnePoint.equivProjectivization from OnePoint ℂ to Projectivization ℂ (Fin 2 → ℂ), and the singular locus is defined through HasFDerivAt at chosen representatives.
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 OnePoint
theorem CurveSymmetry.family_projective_critical_pair {m : ℕ} (hm : 2 ≤ m) {α : ℂ}
(ha : α ≠ star α) (p q : Sphere) :
(sphereProjectiveEquiv p, sphereProjectiveEquiv q) ∈ familyProjectiveCritical m α ↔
(p = (0 : ℂ) ∧ q = (0 : ℂ)) ∨ (p = ∞ ∧ q = ∞) := by sorry