Definitions/Def_ModularCurve_LevelNFunctionField.lean
Fricke functions and the level- analytic coordinate ring
Fix a natural number N. For v = (v_0,v_1) \in (\mathbb{Z}/N\mathbb{Z})^2 and \tau in the upper half-plane, ModularCurve.LevelN.wp N v τ is ((2\pi i)^2)^{-1} times the value of the Weierstrass function PeriodPair.weierstrassP of the period pair PeriodPair.ofTau τ — the pair with periods \omega_1 = \tau, \omega_2 = 1, whose lattice is the \mathbb{Z}-span of \{\tau, 1\} — at the argument (v_0\tau + v_1)/N, where the integers v_0, v_1 are the canonical representatives (ZMod.val) of the two coordinates of v. The Fricke function ModularCurve.LevelN.fricke N v is the pointwise product of this with -E_4(\tau)E_6(\tau)/\bigl(2592\,\Delta(\tau)\bigr), where E_4, E_6 and \Delta are Mathlib's level-one Eisenstein series and discriminant; ModularCurve.LevelN.jAnalytic is the function \tau \mapsto E_4(\tau)^3/\Delta(\tau). No holomorphy, modularity or nonvanishing assertion is part of these definitions: each is simply a function \mathbb{H} \to \mathbb{C}, with the usual conventions for division by zero in \mathbb{C}.
The set ModularCurve.LevelN.generators N is obtained by inserting jAnalytic into the set of those functions g : \mathbb{H} \to \mathbb{C} for which there is a nonzero v \in (\mathbb{Z}/N\mathbb{Z})^2 with g = fricke N v; and ModularCurve.LevelN.ring N is the \mathbb{C}-subalgebra of the algebra of all functions \mathbb{H} \to \mathbb{C} (pointwise operations) generated by this set, i.e. \mathbb{C}[j, f_v : v \neq 0]. The accompanying lemmas record that jAnalytic and each fricke N v with v \neq 0 lie in the generating set and hence in the subalgebra, and ModularCurve.LevelN.jGen N packages jAnalytic as an element of that subalgebra, with its underlying function being jAnalytic again.
Relation to Mathlib
The Eisenstein series ModularForm.E₄, ModularForm.E₆ and ModularForm.discriminant and the upper half-plane are Mathlib's; the period-pair Weierstrass function is the project's own, and Mathlib has no Fricke functions or level-N function field, which are introduced here.
Where it is used
These functions provide the concrete analytic model of the modular curve of level N: the subalgebra ring N is the analytic coordinate ring whose fraction field serves as the field of modular functions of level N, and the Fricke functions are the coordinates in which the transformation law f_v(\gamma\tau) = f_{v\gamma}(\tau) and the invariance under \pm\Gamma(N) are stated elsewhere in the development.
References
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971, §6.1–§6.2
- S. Lang, Elliptic Functions, Graduate Texts in Mathematics 112, Springer, 1987, Ch. 6
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005, §7.5
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 54 lines
- 11 declarations
- used in the statements of 19 theorems and imported by 31 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_LevelNFunctionField.lean
Imported by
- no other definition module
Declarations
- def
ModularCurve.LevelN.wp - def
ModularCurve.LevelN.fricke - def
ModularCurve.LevelN.jAnalytic - def
ModularCurve.LevelN.generators - def
ModularCurve.LevelN.ring - theorem
ModularCurve.LevelN.jAnalytic_mem_generators - theorem
ModularCurve.LevelN.fricke_mem_generators - theorem
ModularCurve.LevelN.jAnalytic_mem - theorem
ModularCurve.LevelN.fricke_mem - def
ModularCurve.LevelN.jGen - theorem
ModularCurve.LevelN.coe_jGen
Source
import Mathlib import Definitions.Def_PeriodPair_Uniformization set_option autoImplicit false noncomputable section open UpperHalfPlane open scoped MatrixGroups namespace ModularCurve.LevelN def wp (N : ℕ) (v : Fin 2 → ZMod N) (τ : ℍ) : ℂ := ((2 * (Real.pi : ℂ) * Complex.I) ^ 2)⁻¹ * PeriodPair.weierstrassP (PeriodPair.ofTau τ) ((((v 0).val : ℂ) * (τ : ℂ) + ((v 1).val : ℂ)) / (N : ℂ)) def fricke (N : ℕ) (v : Fin 2 → ZMod N) (τ : ℍ) : ℂ := -(ModularForm.E₄ τ * ModularForm.E₆ τ / ModularForm.discriminant τ) / 2592 * wp N v τ def jAnalytic (τ : ℍ) : ℂ := ModularForm.E₄ τ ^ 3 / ModularForm.discriminant τ def generators (N : ℕ) : Set (ℍ → ℂ) := insert jAnalytic {g : ℍ → ℂ | ∃ v : Fin 2 → ZMod N, v ≠ 0 ∧ g = fricke N v} def ring (N : ℕ) : Subalgebra ℂ (ℍ → ℂ) := Algebra.adjoin ℂ (generators N) theorem jAnalytic_mem_generators (N : ℕ) : jAnalytic ∈ generators N := Set.mem_insert _ _ theorem fricke_mem_generators (N : ℕ) {v : Fin 2 → ZMod N} (hv : v ≠ 0) : fricke N v ∈ generators N := Set.mem_insert_of_mem _ ⟨v, hv, rfl⟩ theorem jAnalytic_mem (N : ℕ) : jAnalytic ∈ ring N := Algebra.subset_adjoin (jAnalytic_mem_generators N) theorem fricke_mem (N : ℕ) {v : Fin 2 → ZMod N} (hv : v ≠ 0) : fricke N v ∈ ring N := Algebra.subset_adjoin (fricke_mem_generators N hv) def jGen (N : ℕ) : ring N := ⟨jAnalytic, jAnalytic_mem N⟩ @[simp] theorem coe_jGen (N : ℕ) : ((jGen N : ring N) : ℍ → ℂ) = jAnalytic := rfl end ModularCurve.LevelN end
Statements phrased using this module (19)
- Regular differentials inject into weight-2 cusp forms for Γ(N)
ModularCurve.LevelN.exists_linearMap_regularDifferentials_cuspForm_injective10 below · depth 19 - Galois structure of the level-N modular function field
ModularCurve.LevelN.exists_monoidHom_algEquiv_fixedField_eq_adjoin6 below · depth 19 - Genus lower bound for the level-N modular function field
ModularCurve.LevelN.twelve_mul_add_mul_index_le_genusFF131 below · depth 19 - Regular differentials of the level N function field as F(τ) dτ
ModularCurve.LevelN.exists_linearMap_regularDifferentials_mdifferentiable7 below · depth 20 - Places over j = 1728, 0, ∞ with bounded order
ModularCurve.LevelN.exists_place_ord_jGen_le_two_three_level24 below · depth 20 - A place with j-pole fixed by the translation automorphism
ModularCurve.LevelN.exists_place_ord_neg_forall_smul_eq6 below · depth 20 - Place above j(τ₀) fixed by stabiliser automorphisms
ModularCurve.LevelN.exists_place_ord_sub_pos_forall_smul_eq6 below · depth 20 - Regular differentials of level N vanish at every cusp
ModularCurve.LevelN.isZeroAtImInfty_slash_of_mem_regularDifferentials7 below · depth 20 - Weight-two Γ(N)-invariance of (a/b) (c/e)'
ModularCurve.LevelN.slash_eq_self_of_mem_Gamma_of_mul_eq6 below · depth 20 - q-expansion field of X(Γ) embeds into level-M modular functions
ModularCurve.exists_ringHom_laurentBaseChange_qExpFunctionFieldC_levelN19 below · depth 20 - A q_N-expansion algebra map on the level-N function field
ModularCurve.LevelN.exists_algHom_laurentSeries_qExpansion17 below · depth 21 - Analytic order at τ₀ is e times the order at a place
ModularCurve.LevelN.exists_place_analyticOrderAt_eq_mul_ord6 below · depth 21 - Level-M realisation of the q-expansion function field
ModularCurve.LevelN.exists_algHom_laurentBaseChange_apply_eq_qExpand20 below · depth 23 - Integrality over the j-line at j=∞
ModularCurve.LevelN.exists_monic_eval_eq_zero_coeff_eq_aeval_inv_div_of_forall_valuation_le_one0 below · depth 23 - The level-M modular function algebra is a domain
ModularCurve.LevelN.isDomain_ring6 below · depth 23 - Valuation bound for E(σ_γ z) under a non-zero limit
ModularCurve.LevelN.valuation_apply_smul_le_one_of_tendsto_div_smul6 below · depth 23 - Embedding the ℚ̄-rational q-expansion field of X(Γ) into ℂ(X(M))
ModularCurve.exists_ringHom_laurentBaseChange_qExpFunctionFieldC_levelN_qExpansion19 below · depth 24 - Ramification of X(M)→ X(1) at j=0 and j=1728
ModularCurve.LevelN.exists_place_ord_jGen_eq_three_two_and_stabilizer_subset_zpowers39 below · depth 25 - ℚ̄-q-expansion field of Γ inside the level-M function field
ModularCurve.exists_ringHom_laurentBaseChange_qExpFunctionFieldC_levelN_qExpansion_forall_le19 below · depth 36