Regularity of at the place of over , in terms of the chart at infinity
ProvedCurveSymmetry.isRegularAtInfinity_iffLet be an integer and with , and put . Let be the function field of the double cover , where and denote the classes of and ; in the setting of the note this is the function field of , read in the chart of equation (7) with . Write for the -vector space of Kähler differentials of over and for the differential of .
For the place over , put and let be the function field of the conjugate cover , where and denote the classes of and . Since , the point lies on this cover; let be the localization of at the maximal ideal of this point (the kernel of , ), a discrete valuation ring, whose uniformizers are the generators of its maximal ideal. Let be the isomorphism of -algebras with and , the chart , at infinity. The place of over has valuation ring .
Differentials of are written in the same way, in . A differential is regular at infinity if its transport , determined by , is regular at : for every uniformizer of and every with one has .
Let be the derivative of . For every ,
The element on the right is the coefficient of the transported differential against the uniformizer of . This is the regularity criterion at the place over , which is then simplified to the condition ; in this way it enters the formal proof of the genus clause of Lemma 4 of the note (the normalization of has genus ) and, through the case , of Remark 5.
Formalization Note: the hypotheses and are Fact instances; the condition of the note is not assumed. In the formal statement the coefficient appears as .
import Definitions.Def_CurveSymmetry_01_RealLoci
import Definitions.Def_CurveSymmetry_02_FamilyBasics
import Definitions.Def_CurveSymmetry_03_IsometriesAndCharts
import Definitions.Def_CurveSymmetry_05_FamilyFunctionField
import Definitions.Def_CurveSymmetry_06_QuadraticRing
import Definitions.Def_CurveSymmetry_07_Places
import Definitions.Def_CurveSymmetry_08_Differentials
import Definitions.Def_CurveSymmetry_09_Genus
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.Algebra.Polynomial.SpecificDegree
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.RatFunc.Basic
import Mathlib.FieldTheory.Separable
import Mathlib.LinearAlgebra.Basis.Basic
import Mathlib.LinearAlgebra.FiniteDimensional.Defs
import Mathlib.LinearAlgebra.TensorProduct.Basis
import Mathlib.RingTheory.AdjoinRoot
import Mathlib.RingTheory.DedekindDomain.Dvr
import Mathlib.RingTheory.DiscreteValuationRing.TFAE
import Mathlib.RingTheory.Etale.Field
import Mathlib.RingTheory.Etale.Kaehler
import Mathlib.RingTheory.Kaehler.Basic
import Mathlib.RingTheory.Kaehler.Polynomial
import Mathlib.RingTheory.LocalRing.MaximalIdeal.Basic
import Mathlib.RingTheory.LocalRing.Module
import Mathlib.RingTheory.Localization.AsSubring
import Mathlib.RingTheory.MvPolynomial.Homogeneous
import Mathlib.RingTheory.MvPolynomial.IrreducibleQuadratic
import Mathlib.RingTheory.Nakayama
import Mathlib.RingTheory.Polynomial.Eisenstein.Criterion
import Mathlib.RingTheory.Polynomial.GaussLemma
import Mathlib.RingTheory.RootsOfUnity.Complex
import Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots
import Mathlib.RingTheory.Valuation.ValuationSubring
import Mathlib.Tactic
open CurveSymmetry
set_option autoImplicit false
open Polynomial
variable {m : ℕ} {α : ℂ} [hm : Fact (0 < m)] [ha : Fact (α ≠ star α)]theorem CurveSymmetry.isRegularAtInfinity_iff (f : QuadField (familyH m α)) :
IsRegularAtInfinity (f • KaehlerDifferential.D ℂ (QuadField (familyH m α))
(quadT (familyH m α))) ↔
familyInfinityMap m α f *
((quadT (familyH m (star α)) ^ 2 *
algebraMap ℂ[X] (QuadField (familyH m (star α)))
(familyH m (star α)).derivative)⁻¹ *
-(2 * AdjoinRoot.root (quadRat (familyH m (star α))))) ∈
quadLocalRing (familyH m (star α)) 0 0 (familyH_star_zero_point m α) := by sorry