Definitions/Def_ModularCurve_LambdaModularPolynomialData.lean
Level-two modular polynomial data for the lambda series
This module introduces the structure ModularCurve.LambdaModularPolynomialData q, for a natural number q with NeZero q, which bundles a presentation of the modular equation relating the \lambda-series in the variable \mathfrak q to the same series in \mathfrak q^{q}. An element of the structure consists of a bivariate integral polynomial \Psi, formalised as an element \Psi \in (\mathbb Z[X])[Y], together with three fields that are themselves theorems about it: \Psi is monic (in Y), its degree in Y equals q+1, and it vanishes on the pair of \lambda-expansions.
The vanishing condition is stated as an identity in the Laurent series field \mathbb Q((\mathfrak q)) (Hahn series over \mathbb Z with rational coefficients). The outer variable Y is sent to lambdaNModC ℚ q, that is to the image of the integral series lambdaInt in \mathbb Q((\mathfrak q)) followed by the substitution \mathfrak q \mapsto \mathfrak q^{q} given by qExpand; the coefficients, elements of \mathbb Z[X], are evaluated by the ring homomorphism evalAtLambdaInt, which substitutes X \mapsto lambdaInt in \mathbb Z((\mathfrak q)), followed by the coefficientwise map \mathbb Z \to \mathbb Q. Here lambdaInt is the integral Laurent series
\mathfrak q \prod_{n \ge 1} (1-\mathfrak q^{n})^{8}\,(1-\mathfrak q^{4n})^{16}\,(1-\mathfrak q^{2n})^{-24},
the eta quotient \eta(\tau)^{8}\eta(4\tau)^{16}\eta(2\tau)^{-24}, the normalised Hauptmodul \lambda/16 for the level-two structure.
Thus the structure is a predicate-carrying datum on a chosen polynomial, not an existence assertion: nothing here produces such a \Psi, and no symmetry or congruence property is imposed. It is the level-two counterpart of ModularPolynomialData N, in which j replaces \lambda and the degree q+1 is replaced by the Dedekind \psi-function.
Relation to Mathlib
Mathlib has no notion of modular polynomial or of the \lambda (or j) q-expansion; the structure is the project's own, built on Mathlib's Hahn/Laurent series and polynomial API. It is parallel in shape to the project's ModularPolynomialData for the j-series.
Where it is used
Data of this kind record, in purely formal q-expansion terms, that the \lambda-expansion at level q is integral of degree q+1 over the one at level 1; together with the associated congruence modulo q (of Kronecker type, as for the j-series packets) they are the input used to study the function fields generated by such expansions in the modular-curve part of the development.
References
- S. Lang, Elliptic Functions, 2nd ed., Graduate Texts in Mathematics 112, Springer, 1987
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 21 lines
- 4 declarations
- used in the statements of 16 theorems and imported by 26 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_LambdaModularPolynomialData.lean
Imported by
- no other definition module
Declarations
- structure
ModularCurve.LambdaModularPolynomialData - field
ModularCurve.LambdaModularPolynomialData.monic - field
ModularCurve.LambdaModularPolynomialData.natDegree_eq - field
ModularCurve.LambdaModularPolynomialData.eval_eq_zero
Source
import Mathlib import Definitions.Def_ModularCurve_LambdaSeries set_option autoImplicit false noncomputable section namespace ModularCurve structure LambdaModularPolynomialData (q : ℕ) [NeZero q] : Type where Ψ : Polynomial (Polynomial ℤ) monic : Ψ.Monic natDegree_eq : Ψ.natDegree = q + 1 eval_eq_zero : Ψ.eval₂ ((laurentMap (Int.castRingHom ℚ)).comp evalAtLambdaInt) (lambdaNModC ℚ q) = 0 end ModularCurve end
Statements phrased using this module (16)
- Nonzero kernel element of `lambdaEval` from modular polynomial data
ModularCurve.LambdaNodeLocalized.exists_ne_zero_lambdaEval_eq_zero0 below · depth 21 - Existence of a λ-modular polynomial with Kronecker's congruence
ModularCurve.exists_lambdaKroneckerCongruence202 below · depth 21 - Fricke twist u ↦ 1/16 - u of the λ-modular equation
ModularCurve.LambdaModularPolynomialData.eval2_sixteenth_sub_eq_zero185 below · depth 22 - Every Y-coefficient of Ψ has X-degree at most q+1
ModularCurve.LambdaModularPolynomialData.natDegree_coeff_le180 below · depth 22 - Reciprocal symmetry of the modular polynomial Ψ_q
ModularCurve.LambdaModularPolynomialData.psi_reciprocal196 below · depth 22 - An involutive root of Ψ extends to a λ-field automorphism
ModularCurve.LambdaNodeLocalized.exists_ringEquiv_lambdaFieldOver_of_involutive_subst174 below · depth 22 - Kronecker remainder non-vanishing at supersingular λ-values
ModularCurve.eval_lambdaKroneckerRemainder_ne_zero184 below · depth 22 - Uniqueness of the q-th Kronecker remainder for Ψ_q
ModularCurve.existsUnique_lambdaKroneckerRemainder0 below · depth 22 - Kronecker congruence for the λ modular equation
ModularCurve.kroneckerCongruence_lambda179 below · depth 22 - Kronecker remainder of the λ-modular equation, evaluated
ModularCurve.lambdaEval_kroneckerRemainder0 below · depth 22 - Level-two modular polynomial as minimal polynomial of λ(q^q)
ModularCurve.minpoly_lambdaNModC_eq173 below · depth 22 - Existence of an integral λ-modular polynomial for odd q
ModularCurve.nonempty_lambdaModularPolynomialData197 below · depth 22 - Swapped λ-modular equation via the Atkin–Lehner involution
ModularCurve.LambdaModularPolynomialData.eval2_swap_eq_zero176 below · depth 23 - Kronecker remainder is nonzero at supersingular λ-points
ModularCurve.eval_lambdaKroneckerRemainder_ne_zero_of_deuringPolynomial169 below · depth 23 - Wronskian closed form for the λ-line Kronecker remainder
ModularCurve.lambdaKroneckerRemainder_frobeniusGraph_ode167 below · depth 24 - Kronecker remainder along the Frobenius graph for λ
ModularCurve.laurentMap_evalAtLambdaInt_kroneckerRemainder_eval_X_pow0 below · depth 25