Definitions/Def_AlgebraicCurve_Differentials.lean
Order of a differential at a place; regular differentials
The module works over a field extension K \subseteq F and takes the differentials of F/K to be Mathlib's module of Kähler differentials \Omega[F\!\mid\!K] with its universal derivation D = KaehlerDifferential.D K F; the places of F/K and their \mathbb{Z}-valued order function Place.ord (normalised so that an irreducible element of the valuation ring has order 1, and with \operatorname{ord} 0 = 0) are those of the divisor-class-group module. Four total, choice-based definitions are made. For a place v, Place.uniformizer_alt is a chosen t \in F with v.\mathrm{ord}\,t = 1 when such a t exists and 0 otherwise; ord_uniformizer_alt records that under the hypothesis that some element of order 1 exists, the chosen element has order 1. For t \in F and \omega \in \Omega[F\!\mid\!K], Place.diffCoeff t ω is a chosen g \in F with \omega = g \cdot D t when \omega lies in the F-line through D t, and 0 otherwise; diffCoeff_smul_D and diffCoeff_of_not_exists are the two defining cases. The order of \omega at v is then v.\mathrm{ordDiff}\,\omega = v.\mathrm{ord}\big(\mathrm{diffCoeff}\ v.\mathrm{uniformizer\_alt}\ \omega\big), a total \mathbb{Z}-valued quantity which takes the default value 0 in the degenerate cases; accordingly the existence of a uniformizer, the uniqueness of the coefficient g and the independence of ordDiff of the chosen uniformizer are assertions external to these definitions. A differential is regular, IsRegularDiff K F ω, when 0 \le v.\mathrm{ordDiff}\,\omega for every place v, and regularDiffs K F is defined as the K-span of the set of regular differentials, a K-submodule of \Omega[F\!\mid\!K] containing every regular differential. Finally, for a K-algebra map \varphi : F \to F' into a second field, pullbackDiff φ is the K-linear map \Omega[F\!\mid\!K] \to \Omega[F'\!\mid\!K] coming from KaehlerDifferential.map for the F-algebra structure on F' given by \varphi; it sends D_{F/K}x to D_{F'/K}(\varphi x).
Relation to Mathlib
The carrier and universal derivation are Mathlib's KaehlerDifferential module \Omega[F⁄K], and pullbackDiff is KaehlerDifferential.map for the algebra structure induced by a K-algebra map, restricted to K-scalars. The order of a differential at a place, the predicate of regularity and the submodule of regular differentials are the project's own notions, built on the places and order function of the project's divisor module.
Where it is used
These notions belong to the project's self-contained divisor and differential theory of function fields, alongside places, divisors, the degree map and the torsion of \mathrm{Pic}^0; the regular differentials and the order function at a place are the objects over which the genus-type statements used in the curve-theoretic part of the development are formulated.
References
- H. Stichtenoth, Algebraic Function Fields and Codes, Universitext, Springer, 1993
- R. Hartshorne, Algebraic Geometry, Graduate Texts in Mathematics 52, Springer, 1977, Ch. IV
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 86 lines
- 14 declarations
- used in the statements of 64 theorems and imported by 91 proofs
- imports 1 definition modules
Source file: Definitions/Def_AlgebraicCurve_Differentials.lean
Declarations
- def
AlgebraicCurve.Place.uniformizer_alt - theorem
AlgebraicCurve.Place.ord_uniformizer_alt - def
AlgebraicCurve.Place.diffCoeff - theorem
AlgebraicCurve.Place.diffCoeff_smul_D - theorem
AlgebraicCurve.Place.diffCoeff_of_not_exists - def
AlgebraicCurve.Place.ordDiff - theorem
AlgebraicCurve.Place.ordDiff_def - def
AlgebraicCurve.IsRegularDiff - theorem
AlgebraicCurve.isRegularDiff_iff - def
AlgebraicCurve.regularDiffs - theorem
AlgebraicCurve.mem_regularDiffs_of_isRegularDiff - theorem
AlgebraicCurve.regularDiffs_eq_span - def
AlgebraicCurve.pullbackDiff - theorem
AlgebraicCurve.pullbackDiff_D
Source
import Definitions.Def_AlgebraicCurve_DivisorClassGroup import Mathlib.RingTheory.Kaehler.Basic ↗ noncomputable section open KaehlerDifferential namespace AlgebraicCurve variable {K F : Type*} [Field K] [Field F] [Algebra K F] namespace Place variable (v : Place K F) open Classical in def uniformizer_alt : F := if h : ∃ t : F, v.ord t = 1 then h.choose else 0 theorem ord_uniformizer_alt (h : ∃ t : F, v.ord t = 1) : v.ord v.uniformizer_alt = 1 := by rw [uniformizer_alt, dif_pos h] exact h.choose_spec open Classical in def diffCoeff (t : F) (ω : Ω[F⁄K]) : F := if h : ∃ g : F, ω = g • D K F t then h.choose else 0 theorem diffCoeff_smul_D {t : F} {ω : Ω[F⁄K]} (h : ∃ g : F, ω = g • D K F t) : diffCoeff t ω • D K F t = ω := by rw [diffCoeff, dif_pos h] exact h.choose_spec.symm theorem diffCoeff_of_not_exists {t : F} {ω : Ω[F⁄K]} (h : ¬ ∃ g : F, ω = g • D K F t) : diffCoeff t ω = 0 := by rw [diffCoeff, dif_neg h] def ordDiff (ω : Ω[F⁄K]) : ℤ := v.ord (diffCoeff v.uniformizer_alt ω) theorem ordDiff_def (ω : Ω[F⁄K]) : v.ordDiff ω = v.ord (diffCoeff v.uniformizer_alt ω) := rfl end Place variable (K F) in def IsRegularDiff (ω : Ω[F⁄K]) : Prop := ∀ v : Place K F, 0 ≤ v.ordDiff ω theorem isRegularDiff_iff (ω : Ω[F⁄K]) : IsRegularDiff K F ω ↔ ∀ v : Place K F, 0 ≤ v.ordDiff ω := Iff.rfl variable (K F) in def regularDiffs : Submodule K Ω[F⁄K] := Submodule.span K {ω : Ω[F⁄K] | IsRegularDiff K F ω} theorem mem_regularDiffs_of_isRegularDiff {ω : Ω[F⁄K]} (h : IsRegularDiff K F ω) : ω ∈ regularDiffs K F := Submodule.subset_span h theorem regularDiffs_eq_span : regularDiffs K F = Submodule.span K {ω : Ω[F⁄K] | IsRegularDiff K F ω} := rfl section Pullback variable {F' : Type*} [Field F'] [Algebra K F'] def pullbackDiff (φ : F →ₐ[K] F') : Ω[F⁄K] →ₗ[K] Ω[F'⁄K] := letI : Algebra F F' := φ.toRingHom.toAlgebra haveI : IsScalarTower K F F' := IsScalarTower.of_algebraMap_eq fun k => (φ.commutes k).symm (KaehlerDifferential.map K K F F').restrictScalars K theorem pullbackDiff_D (φ : F →ₐ[K] F') (x : F) : pullbackDiff φ (D K F x) = D K F' (φ x) := by letI : Algebra F F' := φ.toRingHom.toAlgebra haveI : IsScalarTower K F F' := IsScalarTower.of_algebraMap_eq fun k => (φ.commutes k).symm exact KaehlerDifferential.map_D K K F F' x end Pullback end AlgebraicCurve end
Statements phrased using this module (64)
- ordᵥ(df) = ordᵥ(f) - 1 at zeros and poles
AlgebraicCurve.Place.ordDiff_D_eq_ord_sub_one16 below · depth 10 - The two orders of a differential at a place agree
AlgebraicCurve.Place.ordDiff_eq_ordDifferential55 below · depth 10 - Riemann–Hurwitz bookkeeping for a j-type map
AlgebraicCurve.twelve_mul_eq_of_sum_ordDiff_eq0 below · depth 10 - dt≠ 0 for t of nonzero order at a place
AlgebraicCurve.Place.D_ne_zero_of_ord_ne_zero5 below · depth 11 - Uniqueness of the coefficient against dt
AlgebraicCurve.Place.diffCoeff_smul_D_eq5 below · depth 11 - The chosen coefficient reproduces ω: diffCoeff(t,ω) dt=ω
AlgebraicCurve.Place.diffCoeff_smul_D_of_ord_ne_zero5 below · depth 11 - Order of a differential is independent of the uniformiser
AlgebraicCurve.Place.ordDiff_eq_ord_diffCoeff16 below · depth 11 - Regularity of df/dt at a place with uniformiser t
AlgebraicCurve.Place.ord_diffCoeff_D_nonneg9 below · depth 11 - Regularity of g dJ from ord(g⁶J⁴(J-1728)³)≥ 0
AlgebraicCurve.Place.ordDiff_smul_D_nonneg_of_ord_pow_six_mul_pow_four_mul_sub_1728_pow_three_nonneg20 below · depth 12 - Two descriptions of the regular differentials agree
AlgebraicCurve.regularDiffs_eq_regularDifferentials56 below · depth 12 - Regularity of x dj at a place where ord j ≠ 0
ModularCurve.ordDiff_smul_D_coeffEmb_jq_nonneg_iff159 below · depth 12 - Elements of order one at a place are separating
AlgebraicCurve.Place.isSeparable_adjoin_of_ord_eq_one2 below · depth 13 - Order of a differential scales: ordᵥ(gω)=ordᵥ g+ordᵥω
AlgebraicCurve.Place.ordDiff_smul7 below · depth 13 - Additivity of ordDiff under scaling over a perfect field
AlgebraicCurve.Place.ordDiff_smul_of_perfectField8 below · depth 13 - Order of the zero differential at a place vanishes
AlgebraicCurve.Place.ordDiff_zero_of_perfectField5 below · depth 13 - Differentiation by a uniformiser preserves the valuation ring
AlgebraicCurve.Place.ord_diffCoeff_D_nonneg_of_perfectField8 below · depth 13 - Lower bound ordᵥ(f)-1leordDiffᵥ(df) over a perfect field
AlgebraicCurve.Place.ord_sub_one_le_ordDiff_D_of_perfectField15 below · depth 13 - Hurwitz genus inequality for F/k(x) in differential form
AlgebraicCurve.sum_ordDiff_D_le_two_mul_genusFF_of_isSeparable106 below · depth 13 - Wild different over j=0 in characteristics 2 and 3
ModularCurve.le_six_mul_sum_ordDiff_D_jqModC_of_lt_five389 below · depth 13 - A uniformiser at a place has nonzero differential
AlgebraicCurve.Place.D_ne_zero_of_ord_eq_one4 below · depth 14 - Uniformiser coordinate of a differential over a perfect field
AlgebraicCurve.Place.diffCoeff_smul_D_eq_of_ord_eq_one4 below · depth 14 - A uniformiser's differential spans Ω_{F/K} over a perfect field
AlgebraicCurve.Place.diffCoeff_smul_D_of_ord_eq_one4 below · depth 14 - Differentiation with respect to a uniformiser preserves 𝒪ᵥ
AlgebraicCurve.Place.ord_diffCoeff_D_nonneg_of_isSeparable5 below · depth 14 - Characteristic 2: ord_P(dj)≥ 14 when ord_P(j)=12
ModularCurve.fourteen_le_ordDiff_D_jqModC_of_ord_eq_twelve352 below · depth 14 - Different exponent ≥ 7 at a characteristic-3 place with ord_P(j)=6
ModularCurve.seven_le_ordDiff_D_jqModC_of_ord_eq_six353 below · depth 14 - q dj/dq · Δ = -E₄²E₆ as q-expansions
omegaRow_T287 below · depth 14 - Order of a pulled-back differential at a tame place
AlgebraicCurve.Place.ordDiff_pullbackDiff_of_natCast_ramificationIndexAlong_ne_zero16 below · depth 15 - Wild lower bound for the different exponent
AlgebraicCurve.Place.sub_one_add_pow_sub_one_le_ordDiff_D_of_isGalois40 below · depth 15 - dim_K Ω_{reg} = g over an algebraically closed base
AlgebraicCurve.finite_and_finrank_regularDiffs_eq_genusFF_of_isAlgClosed107 below · depth 15 - Regular differentials already form a K-subspace
AlgebraicCurve.mem_regularDiffs_iff11 below · depth 15 - Rational p-adic Tate module of J₀(N) has dimension 2g
ModularCurve.finrank_rationalTateModule_jZero_eq_two_mul_finrank_regularDiffs469 below · depth 15 - Non-vanishing of z dj in the modular function field
ModularCurve.smul_D_jqModC_ne_zero7 below · depth 15 - Trace preserves pole-order bounds at a place
AlgebraicCurve.Place.neg_le_ord_trace_of_forall_le_ord2 below · depth 16 - The zero differential has order 0 at every place
AlgebraicCurve.Place.ordDiff_zero5 below · depth 16 - Genus bound for p-torsion of Pic⁰
AlgebraicCurve.CartierB.finite_and_card_torsion_le_pow_genusFF19 below · depth 17 - Trace at a place: Tr(g)(x)=sum_{y∣ x}e(y∣ x) g(y)
AlgebraicCurve.Place.mem_and_evalAt_trace_eq_sum_ramificationIndexAlong_smul_evalAt9 below · depth 17 - Over a perfect base field, ordDiffᵥ=ordDifferentialᵥ
AlgebraicCurve.Place.ordDiff_eq_ordDifferential_of_perfectField16 below · depth 17 - Wronskians of a spanning family as a base-point-free subsystem of |2D+K|
ModularCurve.JZero.diffCoeff_wronskian_mem_riemannRochSpace_and_exists_ord_add_eq_zero285 below · depth 17 - Order of the Hecke multiplier at a tame place
ModularCurve.ord_heckeMultiplier_eq17 below · depth 17 - Elements of tame nonzero order are separating
AlgebraicCurve.Place.isSeparable_adjoin_of_ord_ne_zero_of_cast_natAbs_ne_zero2 below · depth 18 - Order of df at a place, tame case
AlgebraicCurve.Place.ordDiff_D_eq_ord_sub_algebraMap_sub_one_of_cast_natAbs_ne_zero16 below · depth 18 - Hasse–Witt bound for the p-torsion of Pic⁰
AlgebraicCurve.finite_and_card_torsion_le_pow_finrank18 below · depth 18 - Order of the Hecke multiplier at a pole of j
ModularCurve.ord_heckeMultiplier_eq_of_ord_neg102 below · depth 18 - Order zero of the Hecke multiplier away from j=0,1728
ModularCurve.ord_heckeMultiplier_eq_zero_of_evalAt_ne380 below · depth 18 - Chain rule: δ f = (df/dt) δ t for a uniformiser t
AlgebraicCurve.Place.derivation_apply_eq_diffCoeff_D_mul5 below · depth 19 - Residue of t df/f equals ordᵥ f
AlgebraicCurve.Place.mul_diffCoeff_D_div_mem_and_evalAt_eq_intCast_ord13 below · depth 19 - Regularity of dlog g when all orders are p-divisible
AlgebraicCurve.isRegularDiff_dlog_of_dvd_ord10 below · depth 19 - Unique p-digit expansion in a separating element
AlgebraicCurve.pDigits_existsUnique2 below · depth 19 - dj is non-zero in the level-N function field
ModularCurve.D_jqModC_ne_zero0 below · depth 19 - Coefficientwise maps preserve constant-field extensions of a Laurent subfield
ModularCurve.coeffMap_mem_laurentBaseChange_of_ringHom165 below · depth 19 - q-expansion of T_ℓ on differentials of X₀(N)
ModularCurve.coeff_qExpansionDiffAlong_traceDiff_pullbackDiff_heckeBetaC213 below · depth 19 - j(mathsf q)-a is a uniformiser on the ℓ-degeneracy roof
ModularCurve.ord_heckeAlphaC_jGeomGen_sub_algebraMap_eq_one360 below · depth 19 - j(q^ℓ) - a' is a uniformiser at generic places of the roof
ModularCurve.ord_heckeBetaC_jGeomGen_sub_algebraMap_eq_one363 below · depth 19 - Different bound at supersingular points in characteristics 2,3
ModularCurve.two_mul_index_le_sum_ordDiff_D_add_natCard_doubleCoset_of_lt_five612 below · depth 19 - Differentials of functions regular at v are regular
AlgebraicCurve.Place.ordDiff_D_nonneg16 below · depth 20 - Coefficients of U_ℓ on differentials: aₙ↦ a_{ℓ n}
ModularCurve.coeff_qExpansionDiffAlong_traceDiff_pullbackDiff_heckeAlphaC_of_dvd215 below · depth 20 - q-expansion of the trace down the degeneracy roof at level p
ModularCurve.qExpansionDiffAlong_traceDiff_pullbackDiff_heckeBetaC_self209 below · depth 20 - q-expansion of the trace of a pulled-back differential
ModularCurve.qExpansionDiff_traceDiff_pullbackDiff_smul_D166 below · depth 20 - Every K-differential of F is g dt when ordᵥ t ≠ 0
AlgebraicCurve.Place.exists_eq_smul_D_of_ord_ne_zero5 below · depth 21 - Semilinearity of the pullback on Kähler differentials
AlgebraicCurve.pullbackDiff_smul0 below · depth 21 - Ring homomorphisms intertwine the coefficient embeddings of ℚ((q))
ModularCurve.coeffMap_coeffEmb_of_ringHom165 below · depth 21 - Image of δ is the Cartier-fixed regular differentials
AlgebraicCurve.Pic0.range_eq_setOf_cartier_fixed_and_isRegularDiff24 below · depth 26 - Regular differentials: span of ordDiff≥ 0 equals the valuation description
AlgebraicCurve.regularDiffs_eq_regularDifferentials_of_perfectField17 below · depth 26 - Regular dlog forces orders divisible by p
AlgebraicCurve.dvd_ord_of_isRegularDiff_dlog15 below · depth 27