Definitions/Def_MDivRepresents.lean
Incidence data representing -division on the level- curve
Standing context: a prime q, a valuation subring A of \overline{\mathbb Q}, a level N\neq 0, a field k of characteristic q with a ring homomorphism red : A \to k, and data data, hKr, hα, hβ describing a modular polynomial with its Kronecker congruence and the integrality of the two Hecke degeneracy maps. Two abbreviations name elements of the geometric level-Nq function field modularFunctionFieldBar (N * q): jNFun is the q-expansion j(Nz) and jNQFun is j(Nqz), each placed in that field by base change of coefficients to \overline{\mathbb Q}; alongside them sit ProlongationTuple.jFun (j) and ProlongationTuple.jQFun (j(qz)). evalBar N q c H evaluates a polynomial H in the three variables indexed by Option (Fin 2) with coefficients in A at an assignment c of those variables by elements of the level-Nq field, the coefficients being mapped along A \hookrightarrow \overline{\mathbb Q} \to F. The predicates IsFstTriple v c z y₁ y₂ and IsSndTriple v c z y₁ y₂, for a place v of the level-N function field over k and c \in k, each assert a disjunction of two normalisations: for IsFstTriple either (z,y_1,y_2)=(j,\,j_N,\,j_{Nq}) together with \mathrm{ord}_v(\mathtt{jGeomGen}\,k\,N - c)=1, or (z,y_1,y_2)=(j_N,\,j,\,j_{Nq}) together with \mathrm{ord}_v(\mathtt{jNGeomGen}\,k\,N - c)=1; for IsSndTriple the triples are (j_q,\,j_{Nq},\,j) and (j_{Nq},\,j_q,\,j) with the same two uniformiser conditions. Thus the relevant generator downstairs, shifted by c, is required to be a uniformiser at v.
MDivRepresents is a predicate on: a place specialisation P; tuples Q_1 : \mathrm{Fin}\,d_1 \to places of the level-Nq geometric field, Q_2 : \mathrm{Fin}\,d_2 \to such places, and a second pair Q_1', Q_2' of the same shapes; a natural number m'; a family h of (d_1+d_2)m'+1 elements of that field; and incidence data D of type IncidenceSystem.Data (d₁ + d₂) 2 m' A. It is the conjunction of two clauses. First, for every index i of \mathrm{Fin}(d_1+d_2) there exist z, y_1, y_2 in the level-Nq field and \tau \in A such that, splitting i through \mathrm{Fin}\,d_1 \oplus \mathrm{Fin}\,d_2: the triple satisfies IsFstTriple at P.reduceFst (Q₁ i₁) with c = red(D.u₀\,i) in the left case, and IsSndTriple at P.reduceSnd (Q₂ i₂) in the right case; both polynomials G_{i,0}, G_{i,1} of D vanish at (z,y_1,y_2) and the variable some 1 does not occur in G_{i,0}; at the i-th place of the concatenation of Q_1 and Q_2 one has \mathrm{ord}(z - D.u₀\,i) > 0 and \mathrm{ord}(y_j - D.w₀\,i\,j\,0) > 0 for j = 0,1, while at the i-th place of the concatenation of Q_1' and Q_2' one has \mathrm{ord}(z - \tau) > 0; for every kk in Option (Fin ((d₁ + d₂) * m')) the identity
p_{kk,i}(z,y_1,y_2) = c_{kk}\,(z - D.u₀\,i)^{m'}(z-\tau)\,s_{kk,i}(z,y_1,y_2)
holds, with c_{kk} = 1 for kk = \mathrm{none} and c_{kk} = h(k.\mathrm{succ}) for kk = \mathrm{some}\,k; the \mathrm{none} component is pinned exactly, D.p\,\mathrm{none}\,i = (X_{\mathrm{none}} - u^0_i)^{m'}(X_{\mathrm{none}} - \tau), D.s\,\mathrm{none}\,i = 1 and D.\sigma_0\,\mathrm{none}\,i = the jet supported at index 0 with value 1; and finally the reductions red(D.sVal\,D.centre\,kk\,i) and red(D.dG\,D.centre\,i\,j) are all non-zero, i.e. the values of the s_{kk,i} and the partial derivatives \partial_{y_j} G_{i,j} at the centre of D are units of A. Second, for every variable v of the incidence system IncidenceSystem.Var (d₁ + d₂) 2 m', the value of the system polynomial D.\mathrm{system}\,v at D.\mathrm{centre} lies in the maximal ideal of A, so that the centre is a root of the system modulo \mathfrak m_A. The definition asserts nothing by itself; it records the compatibility between analytic data on the level-Nq curve and the purely polynomial incidence data over A.
Relation to Mathlib
Mathlib supplies the ambient MvPolynomial, ValuationSubring, Laurent series and IsLocalRing.maximalIdeal machinery; the incidence data IncidenceSystem.Data, the geometric modular function fields and the place-specialisation apparatus are the project's own.
Where it is used
The predicate is the interface between a place specialisation of the modular curve of level Nq at q and an auxiliary system of polynomial equations over the valuation ring A: it records that the chosen triples of modular functions at the marked places satisfy the incidence relations, with unit partial derivatives and unit denominators at the centre, and that the centre solves the system modulo the maximal ideal. It is the hypothesis under which divisibility statements in the Jacobian at level Nq are reduced to solving the incidence system over the residue field, within the analysis at q of J_0(Nq).
References
- S. Lang, Elliptic Functions, 2nd edition, Graduate Texts in Mathematics 112, Springer, 1987
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 87 lines
- 6 declarations
- used in the statements of 14 theorems and imported by 15 proofs
- imports 2 definition modules
Source file: Definitions/Def_MDivRepresents.lean
Imported by
- no other definition module
Declarations
- abbrev
ModularCurve.PlaceSpecialization.jNFun - abbrev
ModularCurve.PlaceSpecialization.jNQFun - def
ModularCurve.PlaceSpecialization.evalBar - def
ModularCurve.PlaceSpecialization.IsFstTriple - def
ModularCurve.PlaceSpecialization.IsSndTriple - def
ModularCurve.PlaceSpecialization.MDivRepresents
Source
import Mathlib import Definitions.Def_ModularCurve_ProlongationTuple import Definitions.Def_IncidenceSystem set_option autoImplicit false open AlgebraicCurve ModularCurve namespace ModularCurve.PlaceSpecialization variable {q : ℕ} [Fact q.Prime] {A : ValuationSubring (AlgebraicClosure ℚ)} {N : ℕ} [NeZero N] {k : Type*} [Field k] [CharP k q] {red : A →+* k} {data : ModularPolynomialData q} {hKr : KroneckerCongruence q data} {hα : HeckeAlphaBarIntegral (AlgebraicClosure ℚ) N q} {hβ : HeckeBetaBarIntegral (AlgebraicClosure ℚ) N q} noncomputable abbrev jNFun (N q : ℕ) [NeZero N] [NeZero q] : modularFunctionFieldBar (N * q) := ⟨coeffEmb (AlgebraicClosure ℚ) (qExpand ℚ N jq), coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jqd_mem_full (N * q) (dvd_mul_right N q))⟩ noncomputable abbrev jNQFun (N q : ℕ) [NeZero N] [NeZero q] : modularFunctionFieldBar (N * q) := ⟨coeffEmb (AlgebraicClosure ℚ) (qExpand ℚ (N * q) jq), coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jqd_mem_full (N * q) (dvd_refl (N * q)))⟩ noncomputable def evalBar (N q : ℕ) (c : Option (Fin 2) → modularFunctionFieldBar (N * q)) (H : MvPolynomial (Option (Fin 2)) A) : modularFunctionFieldBar (N * q) := MvPolynomial.eval₂ ((algebraMap (AlgebraicClosure ℚ) (modularFunctionFieldBar (N * q))).comp (algebraMap A (AlgebraicClosure ℚ))) c H def IsFstTriple (v : Place k (modularFunctionFieldC k N)) (c : k) (z y₁ y₂ : modularFunctionFieldBar (N * q)) : Prop := (z = ProlongationTuple.jFun N q ∧ y₁ = jNFun N q ∧ y₂ = jNQFun N q ∧ v.ord (jGeomGen k N - algebraMap k (modularFunctionFieldC k N) c) = 1) ∨ (z = jNFun N q ∧ y₁ = ProlongationTuple.jFun N q ∧ y₂ = jNQFun N q ∧ v.ord (jNGeomGen k N - algebraMap k (modularFunctionFieldC k N) c) = 1) def IsSndTriple (v : Place k (modularFunctionFieldC k N)) (c : k) (z y₁ y₂ : modularFunctionFieldBar (N * q)) : Prop := (z = ProlongationTuple.jQFun N q ∧ y₁ = jNQFun N q ∧ y₂ = ProlongationTuple.jFun N q ∧ v.ord (jGeomGen k N - algebraMap k (modularFunctionFieldC k N) c) = 1) ∨ (z = jNQFun N q ∧ y₁ = ProlongationTuple.jQFun N q ∧ y₂ = ProlongationTuple.jFun N q ∧ v.ord (jNGeomGen k N - algebraMap k (modularFunctionFieldC k N) c) = 1) def MDivRepresents (P : PlaceSpecialization A q N data hKr k red hα hβ) {d₁ d₂ : ℕ} (Q₁ : Fin d₁ → Place (AlgebraicClosure ℚ) (modularFunctionFieldBar (N * q))) (Q₂ : Fin d₂ → Place (AlgebraicClosure ℚ) (modularFunctionFieldBar (N * q))) (Q₁' : Fin d₁ → Place (AlgebraicClosure ℚ) (modularFunctionFieldBar (N * q))) (Q₂' : Fin d₂ → Place (AlgebraicClosure ℚ) (modularFunctionFieldBar (N * q))) (m' : ℕ) (h : Fin ((d₁ + d₂) * m' + 1) → modularFunctionFieldBar (N * q)) (D : IncidenceSystem.Data (d₁ + d₂) 2 m' A) : Prop := (∀ i : Fin (d₁ + d₂), ∃ (z y₁ y₂ : modularFunctionFieldBar (N * q)) (τ : A), Sum.elim (fun i₁ => IsFstTriple (q := q) (P.reduceFst (Q₁ i₁)) (red (D.u₀ i)) z y₁ y₂) (fun i₂ => IsSndTriple (q := q) (P.reduceSnd (Q₂ i₂)) (red (D.u₀ i)) z y₁ y₂) (finSumFinEquiv.symm i) ∧ (∀ j : Fin 2, evalBar N q (fun o => Option.elim o z ![y₁, y₂]) (D.G i j) = 0) ∧ (some 1 : Option (Fin 2)) ∉ (D.G i 0).vars ∧ 0 < (Sum.elim Q₁ Q₂ (finSumFinEquiv.symm i)).ord (z - algebraMap (AlgebraicClosure ℚ) _ (D.u₀ i : AlgebraicClosure ℚ)) ∧ (∀ j : Fin 2, 0 < (Sum.elim Q₁ Q₂ (finSumFinEquiv.symm i)).ord (![y₁, y₂] j - algebraMap (AlgebraicClosure ℚ) _ (D.w₀ i j 0 : AlgebraicClosure ℚ))) ∧ 0 < (Sum.elim Q₁' Q₂' (finSumFinEquiv.symm i)).ord (z - algebraMap (AlgebraicClosure ℚ) _ (τ : AlgebraicClosure ℚ)) ∧ (∀ kk : Option (Fin ((d₁ + d₂) * m')), evalBar N q (fun o => Option.elim o z ![y₁, y₂]) (D.p kk i) = Option.elim kk 1 (fun kk => h kk.succ) * (z - algebraMap (AlgebraicClosure ℚ) _ (D.u₀ i : AlgebraicClosure ℚ)) ^ m' * (z - algebraMap (AlgebraicClosure ℚ) _ (τ : AlgebraicClosure ℚ)) * evalBar N q (fun o => Option.elim o z ![y₁, y₂]) (D.s kk i)) ∧ D.p none i = (MvPolynomial.X none - MvPolynomial.C (D.u₀ i)) ^ m' * (MvPolynomial.X none - MvPolynomial.C τ) ∧ D.s none i = 1 ∧ D.σ₀ none i = Pi.single 0 1 ∧ (∀ kk : Option (Fin ((d₁ + d₂) * m')), red (D.sVal D.centre kk i) ≠ 0) ∧ (∀ j : Fin 2, red (D.dG D.centre i j) ≠ 0)) ∧ (∀ v : IncidenceSystem.Var (d₁ + d₂) 2 m', MvPolynomial.eval D.centre (D.system v) ∈ IsLocalRing.maximalIdeal A) end ModularCurve.PlaceSpecialization
Statements phrased using this module (14)
- Incidence data representing m-division on the residue polydisc
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_mDivRepresents588 below · depth 14 - Roots of the incidence system give m-division divisors
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_reduceFst_eq_reduceSnd_eq_ord_eq_of_mDivRepresents_of_forall_eval_eq_zero218 below · depth 14 - Unit Jacobian at the centre of the m-division system
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.isUnit_det_jacobian_centre_of_mDivRepresents124 below · depth 14 - Chart data at a strict first-kind place over a fixed reduction
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_chartData_of_isStrictFst231 below · depth 15 - Chart data at a strict place of the second kind
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_chartData_of_isStrictSnd231 below · depth 15 - Local quotient form at a smooth strict first-kind point
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_evalBar_eq_mul_evalBar_of_mem_smoothLocalRingFst214 below · depth 16 - Regular functions on a strict second-kind disc as p/s
ModularCurve.PlaceSpecialization.ProlongationTuple.IsModel.exists_evalBar_eq_mul_evalBar_of_mem_smoothLocalRingSnd219 below · depth 16 - Level-N and level-q modular equations among j,j_N,j_q,j_{Nq}
ModularCurve.evalModularPair_jFun_jNFun_jQFun_jNQFun_eq_zero0 below · depth 16 - Hartogs for R₂-integral functions integral over ℚ̄[j]
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_evalBar_eq_mul_evalBar_of_mem_integersSnd_of_isIntegral184 below · depth 17 - Local regularity of Gauss-integral functions integral over ℚ̄[j]
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_evalBar_eq_mul_evalBar_of_mem_integers_of_isIntegral178 below · depth 17 - Pole clearing for functions regular on a strict first-kind disc
ModularCurve.PlaceSpecialization.exists_red_eval_ne_zero_and_isIntegral_mul_evalBar_of_forall_isStrictFst127 below · depth 17 - Clearing poles on a strict second-kind residue disc
ModularCurve.PlaceSpecialization.exists_red_eval_ne_zero_and_isIntegral_mul_evalBar_of_forall_isStrictSnd127 below · depth 17 - Congruent coordinate data force equal strict first reductions
ModularCurve.PlaceSpecialization.isStrictFst_and_reduceFst_eq_of_ord_sub_pos0 below · depth 18 - Places congruent to a strict second-kind place
ModularCurve.PlaceSpecialization.isStrictSnd_and_reduceSnd_eq_of_ord_sub_pos0 below · depth 18