Regularity criteria for at the two kinds of point places of
ProvedCurveSymmetry.family_isRegularAt_criteriaLet 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 . Let be its coordinate ring, viewed inside . For a point of the cover, , let be the kernel of the evaluation , , and let be the local ring at , the valuation ring of the point place of ; it is a discrete valuation ring with maximal ideal . A uniformizer is an element of generating this maximal ideal.
Write for the -vector space of Kähler differentials of over and for the differential of . A differential is regular at if for every uniformizer of and every with one has .
Let with , and let .
- If , then
- If , then
This collects, for the family, the criteria at the unramified and at the ramified point places; together with the criterion at the place over they describe the differentials that are regular at every place, in the local study that the formalization carries out for the genus clause of Lemma 4 of the note (the normalization of has genus ).
Formalization Note: the hypotheses and are Fact instances; the condition of the note is not assumed.
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.family_isRegularAt_criteria (c d : ℂ) (hd : d ^ 2 = (familyH m α).eval c)
(f : QuadField (familyH m α)) :
((familyH m α).eval c ≠ 0 →
(IsRegularAt (familyH m α) c d hd
(f • KaehlerDifferential.D ℂ (QuadField (familyH m α)) (quadT (familyH m α))) ↔
f ∈ quadLocalRing (familyH m α) c d hd)) ∧
((familyH m α).eval c = 0 →
(IsRegularAt (familyH m α) c d hd
(f • KaehlerDifferential.D ℂ (QuadField (familyH m α)) (quadT (familyH m α))) ↔
f * AdjoinRoot.root (quadRat (familyH m α)) ∈ quadLocalRing (familyH m α) c d hd)) := by sorry