Regularity of at a point of with : exactly when is in the local ring
ProvedCurveSymmetry.isRegularAt_ramifiedLet be a squarefree polynomial such that is irreducible in . Let be the function field of the double cover , where and denote the classes of and , and 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 , and let . Then
This is the regularity criterion at the ramified point places; since is a uniformizer there, may have at most a simple pole. Applied to , together with the criteria at the unramified point places and at the place over , it determines which differentials of the function field of are regular at every place; the formalization obtains from this the basis , , of these differentials, hence the genus clause of Lemma 4 of the note (genus for the normalization of ), which is used for in Remark 5.
Formalization Note: the hypotheses that is squarefree and that is irreducible are Fact instances, and is an explicit hypothesis. is a subalgebra of : the localization of at the kernel of the evaluation map.
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 (h : ℂ[X]) [Fact (Squarefree h)] [Fact (Irreducible (quadRat h))] (c d : ℂ) (hd : d ^ 2 = h.eval c)
theorem CurveSymmetry.isRegularAt_ramified (hc : h.eval c = 0) (f : QuadField h) :
IsRegularAt h c d hd (f • KaehlerDifferential.D ℂ (QuadField h) (quadT h)) ↔
f * AdjoinRoot.root (quadRat h) ∈ quadLocalRing h c d hd := by sorry