import Mathlib import Definitions.Def_ModularCurve_CanonicalDivisor set_option autoImplicit false open KaehlerDifferential noncomputable section namespace AlgebraicCurve variable {K F : Type*} [Field K] [Field F] [Algebra K F] namespace Place variable (v : Place K F) def uniformizer : F := ((IsDiscreteValuationRing.exists_irreducible v.toValuationSubring).choose : F) theorem ord_uniformizer : v.ord v.uniformizer = 1 := by have hirr := (IsDiscreteValuationRing.exists_irreducible v.toValuationSubring).choose_spec simpa [uniformizer] using v.ord_coe_irreducible hirr theorem uniformizer_ne_zero : v.uniformizer ≠ 0 := by intro h simpa [h, v.ord_zero] using v.ord_uniformizer theorem dCoord_eq : v.dCoord = KaehlerDifferential.D K F v.uniformizer := rfl end Place end AlgebraicCurve end