Definitions/Def_ModularCurve_JZeroHeightForm.lean
Height form on divisors; divisor representatives in J_0(N)
The first half works with a function field F over \overline{\mathbb{Q}} in the project's AlgebraicCurve framework, where a Place is a valuation subring of F containing the image of the base field, proper and with principal ideals, and a Divisor is a finitely supported \mathbb{Z}-valued function on places. For a finite family x of algebraic numbers, absLogHeight is the logarithmic height of x, computed in the intermediate field \mathbb{Q}(\operatorname{range} x) of \overline{\mathbb{Q}}, divided by [\mathbb{Q}(\operatorname{range} x):\mathbb{Q}]; that this field is finite over \mathbb{Q} is finiteDimensional_adjoin_range. Given s : \mathrm{Fin}\,r \to F and a place v, pivotIndex selects (when r>0) an index minimising \operatorname{ord}_v(s_i), evalVec s v is the vector of residues v(s_i/s_{\mathrm{piv}}) under Place.evalAt, and chordVec s v w is the family of 2\times2 minors \,e_v(i)e_w(j)-e_v(j)e_w(i). Then pointHt s v is absLogHeight of evalVec s v, pairHt s v w = pointHt v + pointHt w - absLogHeight (chordVec v w), and baseHt s b v is pairHt s v b, set to 0 when v=b. For \gamma \in \mathbb{Z}, a base place b and a divisor D=\sum_v n_v v, heightFormAux is \Big(\gamma+\sum_v n_v-1\Big)\sum_v n_v\,\mathrm{baseHt}(v)-\tfrac12\sum_{v\neq w \in \operatorname{supp} D} n_v n_w\,\mathrm{pairHt}(v,w)-(2-2\gamma)\sum_v \tfrac{n_v(n_v-1)}{2}\,\mathrm{baseHt}(v), and heightForm applies this after erasing the coefficient at b. Hence the form is unchanged on adding any multiple of b (heightForm_add_single_base) and satisfies Q(2D)=4\,Q(D) (heightForm_two_smul).
The second half specialises to N with NeZero N. With g= genusFF of \overline{\mathbb{Q}}-function field modularFunctionFieldBar N, embDegree is 2g+1, embDivisor is (2g+1)\cdot\infty at the place cuspInftyBar N, and IsEmbBasis s says that s is linearly independent over \overline{\mathbb{Q}} and spans riemannRochSpace (embDivisor N), i.e. the space of functions with poles bounded by (2g+1)\infty. JZero.heightForm N s D is heightForm with \gamma=g and base place cuspInftyBar N, inheriting both identities. Finally, for a number field K \subset \overline{\mathbb{Q}} and a class c in the additive fixed points of JZero N under K.fixingSubgroup, JZero.IsRepOf N K n c D asserts the existence of a degree-zero divisor E with: D effective, E+n\cdot\infty=D, D invariant under the arithmeticGalois action of every \sigma fixing K, and \mathrm{Pic}^0-class of E equal to c. JZero.mem_repHeights_iff identifies repHeights with the set of divNaiveHeight values of such representatives; IsRepOf.nsmul gives m\cdotscaling (m n, m\bullet c, m\bullet D) and IsRepOf.add_single allows adding p\cdot\infty, raising n to n+p, under the hypothesis that the cusp place itself is fixed by the relevant Galois elements.
Relation to Mathlib
The normalised height absLogHeight is built from Mathlib's Height.logHeight for number fields by dividing by the degree of the field generated by the coordinates. Places, divisors, Pic0, riemannRochSpace and genusFF are the project's own function-field notions; Mathlib has no height form on divisors of a curve.
Where it is used
The form defined here is the quadratic-form companion of the naive height divNaiveHeight on effective divisors of X_0(N), and IsRepOf isolates exactly the Galois-stable effective representatives E + n\cdot\infty of a class of J_0(N) over which that naive height is minimised. Together they supply the height machinery used in the bounds on rational points and torsion of J_0(N) entering the modular-curve side of the argument.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
- S. Lang, Fundamentals of Diophantine Geometry, Springer, 1983
- M. Hindry and J. H. Silverman, Diophantine Geometry: An Introduction, Graduate Texts in Mathematics 201, Springer, 2000
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 195 lines
- 23 declarations
- used in the statements of 118 theorems and imported by 121 proofs
- imports 4 definition modules
Source file: Definitions/Def_ModularCurve_JZeroHeightForm.lean
Imports
Declarations
- theorem
AlgebraicCurve.finiteDimensional_adjoin_range - def
AlgebraicCurve.absLogHeight - def
AlgebraicCurve.pivotIndex - def
AlgebraicCurve.evalVec - def
AlgebraicCurve.chordVec - def
AlgebraicCurve.pointHt - def
AlgebraicCurve.pairHt - def
AlgebraicCurve.baseHt - def
AlgebraicCurve.heightFormAux - def
AlgebraicCurve.heightForm - theorem
AlgebraicCurve.heightFormAux_two_smul - theorem
AlgebraicCurve.heightForm_two_smul - theorem
AlgebraicCurve.heightForm_add_single_base - def
ModularCurve.embDegree - def
ModularCurve.embDivisor - def
ModularCurve.IsEmbBasis - def
ModularCurve.JZero.heightForm - theorem
ModularCurve.JZero.heightForm_two_smul - theorem
ModularCurve.JZero.heightForm_add_single_cuspInftyBar - def
ModularCurve.JZero.IsRepOf - theorem
ModularCurve.JZero.mem_repHeights_iff - theorem
ModularCurve.JZero.IsRepOf.nsmul - theorem
ModularCurve.JZero.IsRepOf.add_single
Source
import Definitions.Def_ModularCurve_JZeroNaiveHeight import Definitions.Def_AlgebraicCurve_PlaceEvaluation import Definitions.Def_AlgebraicCurve_Repartitions import Definitions.Def_Compat_Mathlib430 noncomputable section open AlgebraicCurve namespace AlgebraicCurve theorem finiteDimensional_adjoin_range {ι : Type} [Fintype ι] (x : ι → AlgebraicClosure ℚ) : FiniteDimensional ℚ (IntermediateField.adjoin ℚ (Set.range x)) := IntermediateField.finiteDimensional_adjoin fun y _ => ((AlgebraicClosure.isAlgebraic ℚ).isAlgebraic y).isIntegral def absLogHeight {ι : Type} [Fintype ι] (x : ι → AlgebraicClosure ℚ) : ℝ := haveI := finiteDimensional_adjoin_range x (Module.finrank ℚ (IntermediateField.adjoin ℚ (Set.range x)) : ℝ)⁻¹ * Height.logHeight fun i => (⟨x i, IntermediateField.subset_adjoin ℚ (Set.range x) ⟨i, rfl⟩⟩ : IntermediateField.adjoin ℚ (Set.range x)) variable {F : Type} [Field F] [Algebra (AlgebraicClosure ℚ) F] open Classical in def pivotIndex {r : ℕ} (s : Fin r → F) (v : Place (AlgebraicClosure ℚ) F) (hr : 0 < r) : Fin r := if h : ∃ i : Fin r, ∀ j : Fin r, v.ord (s i) ≤ v.ord (s j) then Classical.choose h else ⟨0, hr⟩ open Classical in def evalVec {r : ℕ} (s : Fin r → F) (v : Place (AlgebraicClosure ℚ) F) : Fin r → AlgebraicClosure ℚ := fun i => if hr : 0 < r then v.evalAt (s i * (s (pivotIndex s v hr))⁻¹) else 0 def chordVec {r : ℕ} (s : Fin r → F) (v w : Place (AlgebraicClosure ℚ) F) : Fin r × Fin r → AlgebraicClosure ℚ := fun p => evalVec s v p.1 * evalVec s w p.2 - evalVec s v p.2 * evalVec s w p.1 def pointHt {r : ℕ} (s : Fin r → F) (v : Place (AlgebraicClosure ℚ) F) : ℝ := absLogHeight (evalVec s v) def pairHt {r : ℕ} (s : Fin r → F) (v w : Place (AlgebraicClosure ℚ) F) : ℝ := pointHt s v + pointHt s w - absLogHeight (chordVec s v w) open Classical in def baseHt {r : ℕ} (s : Fin r → F) (b v : Place (AlgebraicClosure ℚ) F) : ℝ := if v = b then 0 else pairHt s v b def heightFormAux {r : ℕ} (s : Fin r → F) (γ : ℤ) (b : Place (AlgebraicClosure ℚ) F) (D : Divisor (AlgebraicClosure ℚ) F) : ℝ := ((γ : ℝ) + (D.sum fun _ n => (n : ℝ)) - 1) * (D.sum fun v n => (n : ℝ) * baseHt s b v) - (∑ p ∈ D.support.offDiag, ((D p.1 : ℝ) * (D p.2 : ℝ)) * pairHt s p.1 p.2) / 2 - (2 - 2 * (γ : ℝ)) * (D.sum fun v n => ((n : ℝ) * ((n : ℝ) - 1) / 2) * baseHt s b v) def heightForm {r : ℕ} (s : Fin r → F) (γ : ℤ) (b : Place (AlgebraicClosure ℚ) F) (D : Divisor (AlgebraicClosure ℚ) F) : ℝ := heightFormAux s γ b (D.erase b) theorem heightFormAux_two_smul {r : ℕ} (s : Fin r → F) (γ : ℤ) (b : Place (AlgebraicClosure ℚ) F) (D : Divisor (AlgebraicClosure ℚ) F) : heightFormAux s γ b ((2 : ℤ) • D) = 4 * heightFormAux s γ b D := by have hsupp : ((2 : ℤ) • D).support = D.support := Finsupp.support_smul_eq two_ne_zero simp only [heightFormAux, Finsupp.sum, hsupp, Finsupp.smul_apply, smul_eq_mul, Int.cast_mul, Int.cast_ofNat] have h1 : ∑ x ∈ D.support, ((2 : ℝ) * (D x : ℝ)) = 2 * ∑ x ∈ D.support, (D x : ℝ) := by rw [Finset.mul_sum] have h2 : ∑ x ∈ D.support, (2 : ℝ) * (D x : ℝ) * baseHt s b x = 2 * ∑ x ∈ D.support, (D x : ℝ) * baseHt s b x := by rw [Finset.mul_sum]; exact Finset.sum_congr rfl fun x _ => by ring have h3 : ∑ p ∈ D.support.offDiag, (2 : ℝ) * (D p.1 : ℝ) * ((2 : ℝ) * (D p.2 : ℝ)) * pairHt s p.1 p.2 = 4 * ∑ p ∈ D.support.offDiag, (D p.1 : ℝ) * (D p.2 : ℝ) * pairHt s p.1 p.2 := by rw [Finset.mul_sum]; exact Finset.sum_congr rfl fun x _ => by ring have h4 : ∑ x ∈ D.support, (2 : ℝ) * (D x : ℝ) * ((2 : ℝ) * (D x : ℝ) - 1) / 2 * baseHt s b x = 4 * (∑ x ∈ D.support, (D x : ℝ) * ((D x : ℝ) - 1) / 2 * baseHt s b x) + ∑ x ∈ D.support, (D x : ℝ) * baseHt s b x := by rw [Finset.mul_sum, ← Finset.sum_add_distrib] exact Finset.sum_congr rfl fun x _ => by ring rw [h1, h2, h3, h4] ring theorem heightForm_two_smul {r : ℕ} (s : Fin r → F) (γ : ℤ) (b : Place (AlgebraicClosure ℚ) F) (D : Divisor (AlgebraicClosure ℚ) F) : heightForm s γ b ((2 : ℤ) • D) = 4 * heightForm s γ b D := by unfold heightForm rw [two_zsmul, Finsupp.erase_add, ← two_zsmul] exact heightFormAux_two_smul s γ b _ theorem heightForm_add_single_base {r : ℕ} (s : Fin r → F) (γ : ℤ) (b : Place (AlgebraicClosure ℚ) F) (D : Divisor (AlgebraicClosure ℚ) F) (m : ℤ) : heightForm s γ b (D + Finsupp.single b m) = heightForm s γ b D := by unfold heightForm rw [Finsupp.erase_add, Finsupp.erase_single, add_zero] end AlgebraicCurve namespace ModularCurve variable (N : ℕ) [NeZero N] def embDegree : ℕ := 2 * genusFF (AlgebraicClosure ℚ) (modularFunctionFieldBar N) + 1 def embDivisor : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N) := (embDegree N : ℤ) • Finsupp.single (cuspInftyBar N) 1 def IsEmbBasis {r : ℕ} (s : Fin r → modularFunctionFieldBar N) : Prop := LinearIndependent (AlgebraicClosure ℚ) s ∧ Submodule.span (AlgebraicClosure ℚ) (Set.range s) = riemannRochSpace (embDivisor N) def JZero.heightForm {r : ℕ} (s : Fin r → modularFunctionFieldBar N) (D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) : ℝ := AlgebraicCurve.heightForm s (genusFF (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) (cuspInftyBar N) D theorem JZero.heightForm_two_smul {r : ℕ} (s : Fin r → modularFunctionFieldBar N) (D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) : JZero.heightForm N s ((2 : ℤ) • D) = 4 * JZero.heightForm N s D := AlgebraicCurve.heightForm_two_smul s _ _ D theorem JZero.heightForm_add_single_cuspInftyBar {r : ℕ} (s : Fin r → modularFunctionFieldBar N) (D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) (m : ℤ) : JZero.heightForm N s (D + Finsupp.single (cuspInftyBar N) m) = JZero.heightForm N s D := AlgebraicCurve.heightForm_add_single_base s _ _ D m variable (K : IntermediateField ℚ (AlgebraicClosure ℚ)) [FiniteDimensional ℚ K] def JZero.IsRepOf (n : ℕ) (c : ↥(JZero N ^+ ↥K.fixingSubgroup)) (D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) : Prop := ∃ E : Divisor.degZero (K := AlgebraicClosure ℚ) (F := ↥(modularFunctionFieldBar N)), (∀ v, 0 ≤ D v) ∧ (E : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) + (n : ℤ) • Finsupp.single (cuspInftyBar N) 1 = D ∧ (∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, σ ∈ K.fixingSubgroup → arithmeticGalois (modularFunctionFieldFull N) σ • D = D) ∧ Pic0.mk E = (c : JZero N) theorem JZero.mem_repHeights_iff (n : ℕ) (c : ↥(JZero N ^+ ↥K.fixingSubgroup)) (x : ℝ) : x ∈ JZero.repHeights N K n c ↔ ∃ D, JZero.IsRepOf N K n c D ∧ x = divNaiveHeight N K n D := by constructor · rintro ⟨D, E, h1, h2, h3, h4, h5⟩ exact ⟨D, ⟨E, h1, h2, h3, h4⟩, h5⟩ · rintro ⟨D, ⟨E, h1, h2, h3, h4⟩, h5⟩ exact ⟨D, E, h1, h2, h3, h4, h5⟩ variable {N K} omit [FiniteDimensional ℚ K] in theorem JZero.IsRepOf.nsmul {n : ℕ} {c : ↥(JZero N ^+ ↥K.fixingSubgroup)} {D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)} (h : JZero.IsRepOf N K n c D) (m : ℕ) : JZero.IsRepOf N K (m * n) (m • c) (m • D) := by obtain ⟨E, hD, hshape, hstab, hc⟩ := h refine ⟨m • E, fun v => ?_, ?_, fun σ hσ => ?_, ?_⟩ · rw [Finsupp.smul_apply] exact nsmul_nonneg (hD v) m · rw [← hshape, smul_add, AddSubmonoidClass.coe_nsmul, Nat.cast_mul, mul_smul, natCast_zsmul] · have key := map_nsmul (DistribSMul.toAddMonoidHom (Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) (arithmeticGalois (modularFunctionFieldFull N) σ)) m D simp only [DistribSMul.toAddMonoidHom_apply] at key rw [key, hstab σ hσ] · have key : Pic0.mk (m • E) = m • Pic0.mk E := QuotientAddGroup.mk_nsmul _ E m rw [key, hc, AddSubmonoidClass.coe_nsmul] omit [FiniteDimensional ℚ K] in theorem JZero.IsRepOf.add_single {n : ℕ} {c : ↥(JZero N ^+ ↥K.fixingSubgroup)} {D : Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)} (h : JZero.IsRepOf N K n c D) (p : ℕ) (hfix : ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, σ ∈ K.fixingSubgroup → arithmeticGalois (modularFunctionFieldFull N) σ • cuspInftyBar N = cuspInftyBar N) : JZero.IsRepOf N K (n + p) c (D + (p : ℤ) • Finsupp.single (cuspInftyBar N) 1) := by obtain ⟨E, hD, hshape, hstab, hc⟩ := h refine ⟨E, fun v => ?_, ?_, fun σ hσ => ?_, hc⟩ · classical have h0 : (0 : ℤ) ≤ ((p : ℤ) • Finsupp.single (cuspInftyBar N) (1 : ℤ)) v := by rw [Finsupp.smul_apply, smul_eq_mul, Finsupp.single_apply] split_ifs <;> simp rw [Finsupp.add_apply] exact add_nonneg (hD v) h0 · rw [← hshape, Nat.cast_add, add_smul, add_assoc] · have key := map_zsmul (DistribSMul.toAddMonoidHom (Divisor (AlgebraicClosure ℚ) (modularFunctionFieldBar N)) (arithmeticGalois (modularFunctionFieldFull N) σ)) (p : ℤ) (Finsupp.single (cuspInftyBar N) (1 : ℤ)) simp only [DistribSMul.toAddMonoidHom_apply] at key rw [smul_add, hstab σ hσ, key, AlgebraicCurve.SemilinearAut.smul_single, hfix σ hσ] end ModularCurve end
Statements phrased using this module (118)
- Height form bounded above by naive height of representatives
ModularCurve.JZero.heightForm_le215 below · depth 13 - Lower bound for the height form on near-minimal representatives
ModularCurve.JZero.heightForm_lower_of_prime_of_five_le1,956 below · depth 13 - Quasi-invariance of the J₀(N) height form under linear equivalence
ModularCurve.JZero.heightForm_quasiInvariant_of_prime_of_five_le1,829 below · depth 13 - Riemann–Roch spaces strictly grow at each place in large degree
ModularCurve.exists_mem_riemannRochSpace_notMem_sub_single_of_le_degree164 below · depth 13 - Height form bounds the naive height from below
ModularCurve.JZero.exists_isRepOf_heightForm_lower1,040 below · depth 14 - Quasi-invariance of the height form along a class, prime level ≥ 5
ModularCurve.JZero.heightForm_quasiInvariant_eps_of_prime_of_five_le1,829 below · depth 14 - Height pairing against principal divisors is almost zero
ModularCurve.JZero.pairing_principal_le_of_prime_of_five_le1,823 below · depth 14 - Point heights of a representative bounded by its naive height
ModularCurve.JZero.ptsum_pointHt_le_divNaiveHeight214 below · depth 14 - Riemann's inequality for the function field of X₀(N) over ℚ̄
ModularCurve.degree_add_one_sub_genusFF_le_finrank_riemannRochSpace185 below · depth 14 - Heights of roots bounded by height of coefficients
AlgebraicCurve.sum_absLogHeight_roots_le_coeff1 below · depth 15 - Chord height at a non-cuspidal place equals the value-tuple height
ModularCurve.JZero.absLogHeight_chordVec_eq_evalAt_of_ne146 below · depth 15 - Chord-height comparison bounded by divisor mass, prime level
ModularCurve.JZero.chordLine_core_of_prime_of_five_le1,805 below · depth 15 - Naive height of a representative bounded by base mass
ModularCurve.JZero.divNaiveHeight_le_baseMass_of_isRepOf299 below · depth 15 - Height form dominates base mass on suitable representatives
ModularCurve.JZero.exists_isRepOf_baseMass_le_heightForm1,032 below · depth 15 - Point heights bounded linearly by the j-coordinate height
ModularCurve.JZero.exists_pointHt_le_absLogHeight_jCoord210 below · depth 15 - Point height bounded by (2g+1) times base height
ModularCurve.JZero.exists_pointHt_le_mul_baseHt273 below · depth 15 - Bounded-mass principal divisors with small self-pairing at every place
ModularCurve.JZero.pairing_chord_self_le_of_prime_of_five_le1,812 below · depth 15 - Divisors of degree at least the genus admit nonzero sections
ModularCurve.exists_section_of_genusFF_le_degree186 below · depth 15 - Height of coefficients bounded by heights of roots
AlgebraicCurve.absLogHeight_coeff_le_sum_roots2 below · depth 16 - Height of a root bounded by height of coefficients
AlgebraicCurve.absLogHeight_root_le_coeff2 below · depth 16 - Uniform lower bound for the base height
AlgebraicCurve.exists_forall_neg_le_baseHt3 below · depth 16 - Additivity of point heights under products of coordinate families
AlgebraicCurve.pointHt_mul_eq_add1 below · depth 16 - The base mass ignores the cusp at infinity
ModularCurve.JZero.baseMass_add_single_cuspInftyBar0 below · depth 16 - Base mass of a one-point divisor
ModularCurve.JZero.baseMass_single0 below · depth 16 - Chord-line height identity for sections on X₀(N), N≥ 5 prime
ModularCurve.JZero.chordLine_section_ledger_of_prime_of_five_le1,803 below · depth 16 - Effective divisors of off-cusp mass at most one
ModularCurve.JZero.eq_single_add_single_cuspInftyBar_of_offBaseMass_le_one0 below · depth 16 - Height of j(v) bounded linearly by the model point height
ModularCurve.JZero.exists_absLogHeight_jCoord_le_pointHt294 below · depth 16 - Height of the chord vector at v equals h_D(v)+h_{D+K}(v)+O(1)
ModularCurve.JZero.exists_abs_absLogHeight_regVal_sub_pointHt_add_pointHt_le297 below · depth 16 - Additivity up to O(1) of model heights on X₀(N)
ModularCurve.JZero.exists_abs_pointHt_sub_add_pointHt_le273 below · depth 16 - Equal-degree linear systems: heights agree up to ε h + C
ModularCurve.JZero.exists_abs_pointHt_sub_pointHt_le_mul_add_of_degree_eq273 below · depth 16 - Point heights of a base-point-free subfamily differ boundedly
ModularCurve.JZero.exists_abs_pointHt_sub_pointHt_le_of_forall_exists_ord_add_eq_zero263 below · depth 16 - Height form dominates base mass at confluent divisors
ModularCurve.JZero.exists_baseMass_le_heightForm_of_exists_two_le1,012 below · depth 16 - Existence of a cusp-maximal representative of a class in J₀(N)
ModularCurve.JZero.exists_isRepOf_forall_apply_cuspInftyBar_le221 below · depth 16 - Pair-height sums bounded by base heights for reduced divisors
ModularCurve.JZero.exists_sum_pairHt_le_of_forall_le_one1,005 below · depth 16 - Height form equals genus times base mass when off-cusp mass ≤ 1
ModularCurve.JZero.heightForm_eq_genusFF_mul_baseMass_of_offBaseMass_le_one4 below · depth 16 - Height form minus base mass, grouped by points
ModularCurve.JZero.heightForm_sub_baseMass_eq0 below · depth 16 - The off-cusp mass ignores the cusp ∞̄
ModularCurve.JZero.offBaseMass_add_single_cuspInftyBar0 below · depth 16 - Off-cusp mass is at most the genus when L(D^∘-∞)=0
ModularCurve.JZero.offBaseMass_le_genusFF_of_riemannRochSpace_eq_bot254 below · depth 16 - Off-cusp mass of a one-point divisor
ModularCurve.JZero.offBaseMass_single0 below · depth 16 - Quotients of sections of k· E with bounded k
ModularCurve.JZero.quot_rep231 below · depth 16 - Two-line height identity at non-cuspidal base places, prime level ≥ 5
ModularCurve.JZero.sum_pairHt_twoLine_ledger_of_nonCuspidal_of_prime_of_five_le1,798 below · depth 16 - Uniform lower bound for the chordal pair height
AlgebraicCurve.exists_forall_neg_le_pairHt2 below · depth 17 - Symmetry of the pair height pairHt
AlgebraicCurve.pairHt_comm1 below · depth 17 - Chord functions at w are a scalar multiple of the chord vector
ModularCurve.JZero.chordFun_evalAt_eq_smul_chordVec149 below · depth 17 - Embedding bases separate places: nonvanishing chord vectors
ModularCurve.JZero.chordVec_ne_zero_of_ne242 below · depth 17 - Degree of the off-cusp part equals off-cusp mass
ModularCurve.JZero.degree_erase_cuspInftyBar144 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 - Tangent datum height exceeds 2h(P) by (2g-2+ε)t(P)+C
ModularCurve.JZero.exists_absLogHeight_regVal_sub_two_mul_pointHt_le305 below · depth 17 - Homogeneous certificate s_k^{M+1}=sumⱼ qⱼ(s)uⱼ on X₀(N)
ModularCurve.JZero.exists_isHomogeneous_sum_aeval_mul_eq_pow193 below · depth 17 - Lower bound for pair heights against a fixed place
ModularCurve.JZero.exists_sub_mul_baseHt_le_pairHt276 below · depth 17 - Many-point determinantal Jensen inequality on X₀(N)
ModularCurve.JZero.exists_sum_pairHt_le_of_det_evalAt_ne_zero986 below · depth 17 - Index of speciality of the off-cusp part: ℓ(K-D^∘)+deg D^∘=g
ModularCurve.JZero.finrank_riemannRochSpace_canonicalDivisorOf_sub_erase_add_offBaseMass263 below · depth 17 - Height form of a one-point divisor
ModularCurve.JZero.heightForm_single0 below · depth 17 - Two representatives of a class of J₀(N) differ by a principal divisor
ModularCurve.JZero.isPrincipal_sub_of_isRepOf0 below · depth 17 - Archimedean Jensen bound at infinite places of number fields
ModularCurve.JZero.jensen_arch470 below · depth 17 - One-sided archimedean Jensen bound at non-cuspidal base places
ModularCurve.JZero.jensen_arch_at_le_of_nonCuspidal475 below · depth 17 - Archimedean Jensen line at ∞̄ and non-cuspidal places
ModularCurve.JZero.jensen_arch_at_of_nonCuspidal472 below · depth 17 - One-sided Jensen inequality at bad finite places
ModularCurve.JZero.jensen_bad_at_le402 below · depth 17 - Bad-place regularised Jensen inequality on X₀(N), N prime ≥ 5
ModularCurve.JZero.jensen_bad_at_of_prime_of_five_le1,666 below · depth 17 - Jensen bound at bad primes, prime level at least five
ModularCurve.JZero.jensen_bad_primes_of_prime_of_five_le1,671 below · depth 17 - A ν-adic Jensen identity uniform in the base place
ModularCurve.JZero.jensen_good_at752 below · depth 17 - Explicit one-sided Jensen inequality at good finite places
ModularCurve.JZero.jensen_good_at_le753 below · depth 17 - Non-archimedean Jensen formula at good places, cusp included
ModularCurve.JZero.jensen_good_primes753 below · depth 17 - Quadratic normality of L((2g+1)∞̄) on X₀(N)
ModularCurve.JZero.riemannRochSpace_embDivisor_mul_self256 below · depth 17 - Confluent many-point Jensen inequality for a section frame
ModularCurve.JZero.sum_pairHt_le_of_isUnit_det_jetMatrix277 below · depth 17 - Nonvanishing of a determinant of values at rational places
ModularCurve.det_evalAt_ne_zero_of_span_inf_riemannRochSpace_eq_bot122 below · depth 17 - Effective divisor with ℓ(D)=1 is alone in its class
ModularCurve.eq_of_isPrincipal_sub_of_finrank_riemannRochSpace_eq_one0 below · depth 17 - Auxiliary places making K-E non-special on X₀(N)
ModularCurve.exists_injective_riemannRochSpace_canonicalDivisorOf_sub_eq_bot196 below · depth 17 - Pairwise disjoint base divisors off the cusp in L(2E-K)
ModularCurve.exists_mem_riemannRochSpace_sub_canonicalDivisorOf_forall_ne_not_and274 below · depth 17 - Base-point freeness of the embedding system on X₀(N)
ModularCurve.exists_ord_add_embDivisor_eq_zero254 below · depth 17 - Model coordinates give uniformisers away from the cusp
ModularCurve.exists_ord_sub_evalAt_eq_one266 below · depth 17 - Effective divisor with L(D-v)=0 has ℓ(D)=1
ModularCurve.finrank_riemannRochSpace_eq_one_of_sub_single_eq_bot214 below · depth 17 - Heights of 2× 2 minors of two tuples
ModularCurve.JZero.exists_absLogHeight_minors_le1 below · depth 18 - Pair height against a fixed place, up to ε h
ModularCurve.JZero.exists_abs_pairHt_sub_pointHt_div_le274 below · depth 18 - Uniform non-archimedean disc charts at pivots on X₀(N)
ModularCurve.JZero.exists_chart_of_isPivot391 below · depth 18 - Upper bound h_f ≤ deg A (1+ε) t + C off the cusp
ModularCurve.JZero.exists_pointHt_le_degree_mul_baseHt_of_mem_riemannRochSpace278 below · depth 18 - Non-vanishing chord datum for an embedding basis
ModularCurve.JZero.exists_regVal_chord_ne_zero263 below · depth 18 - Approach to a base point: limits of archimedean chordal terms
ModularCurve.JZero.exists_seq_tendsto_place318 below · depth 18 - Archimedean Jensen comparison at all complex embeddings
ModularCurve.JZero.jensen_arch_embedding469 below · depth 18 - One-sided archimedean proximity bound with explicit normalisation
ModularCurve.JZero.prox_sum_le_of_forall_log_secVal_le471 below · depth 18 - Projective normality of the |(2g+1)∞| model of X₀(N)
ModularCurve.JZero.riemannRochSpace_embDivisor_mul_eq259 below · depth 18 - Good constant reduction of the embedded modular curve, with charts
ModularCurve.exists_constantReduction_chartData_of_isEmbBasis749 below · depth 18 - Riemann–Roch for the function field of X₀(N) over ℚ̄
ModularCurve.finrank_riemannRochSpace_sub_finrank_canonicalDivisorOf_sub_eq185 below · depth 18 - Chow reciprocity for sections of the embedding divisor
ModularCurve.JZero.chowReciprocity_embedding239 below · depth 19 - Archimedean Chow-side estimate for embedding sections on X₀(N)
ModularCurve.JZero.chowSide_arch_embedding435 below · depth 19 - Finite chart data covering places where sᵢ has least order
ModularCurve.JZero.exists_forall_exists_ord_sub_evalAt_eq_one_and_derivative_evalEval_ne_zero294 below · depth 19 - At each place a normalised coordinate is a local parameter
ModularCurve.JZero.exists_ord_div_sub_evalAt_eq_one264 below · depth 19 - Chordal proximity sums agree with the Chow side up to O(k)
ModularCurve.JZero.prox_sum_chowSide258 below · depth 19 - Hyperplane sections of the embedding system have degree 2g+1
ModularCurve.JZero.sum_toNat_hyperplaneSection_eq_embDegree176 below · depth 19 - Total multiplicity of a section cycle equals kcdotembDegree
ModularCurve.JZero.sum_toNat_sectionCycle_eq_mul_embDegree176 below · depth 19 - Non-archimedean Łojasiewicz bound for a function on X₀(N)
ModularCurve.exists_log_absValue_evalAt_ge_of_forall_prox_le334 below · depth 19 - Degree 2g+1 reduced divisor separates rational points and tangents
ModularCurve.exists_mem_riemannRochSpace_mapDomain_embDivisor_sub_notMem237 below · depth 19 - Algebraic places accumulate at a non-cuspidal place of X₀(N)
ModularCurve.exists_seq_place_tendsto_evalAt238 below · depth 19 - Residues of an embedding basis span the reduced Riemann–Roch space
ModularCurve.span_residue_eq_riemannRochSpace_of_isEmbBasis_of_isGood273 below · depth 19 - Chow-side archimedean comparison off the support of B
ModularCurve.JZero.chowSide_arch_embedding_off_support416 below · depth 20 - Chow side at the cusp from off-support bounds
ModularCurve.JZero.chowSide_cusp_of_off_support324 below · depth 20 - Local constancy of μ(h) on small chordal balls, uniformly in μ
ModularCurve.JZero.exists_abv_evalAt_eq_abv_evalAt_of_le_prox283 below · depth 20 - Separating form vanishing on the model of X₀(N)
ModularCurve.JZero.exists_isHomogeneous_aeval_eq_zero_and_eval_ne_zero277 below · depth 20 - Nonzero plane relation between s_l/sᵢ and a function h
ModularCurve.JZero.exists_ne_zero_eval_zero_ne_zero_evalEval_div_eq_zero114 below · depth 20 - A function is large at places chordally near one of its poles
ModularCurve.JZero.exists_one_le_abv_evalAt_of_le_prox283 below · depth 20 - Good chart datum at a prescribed place of X₀(N)
ModularCurve.JZero.exists_ord_sub_evalAt_eq_one_and_derivative_evalEval_ne_zero293 below · depth 20 - Places approaching the base cusp: proximities and section sizes
ModularCurve.JZero.exists_seq_tendsto_cuspInftyBar307 below · depth 21 - Two-sided pencil bound for the Chow-side comparison
ModularCurve.JZero.pencil_secProd_chowForm_two_sided413 below · depth 21 - Regular functions as quotients of two forms of equal degree
ModularCurve.exists_isHomogeneous_mul_aeval_eq_aeval_and_secVal_ne_zero277 below · depth 21 - Good hyperplane sections through a given place on X₀(N)
ModularCurve.JZero.exists_hyperplaneSection_sum_log_secVal_ge404 below · depth 22 - Upper bound for normalised section values on X₀(N)
ModularCurve.JZero.exists_log_secVal_sub_le309 below · depth 22 - Boundedness of the hyperplane-section Chow cocycle
ModularCurve.JZero.hyperplaneSection_cocycle_bounded326 below · depth 22 - Auxiliary hyperplane section with bounded defect on X₀(N)
ModularCurve.JZero.exists_hyperplaneSection_defect_le323 below · depth 23 - Cocycle identity for the hyperplane-section defect
ModularCurve.JZero.hyperplaneSection_cocycle257 below · depth 23 - Uniform p-power window for model bases at q-criterion charts
ModularCurve.exists_uniform_window_smul_mem_integers_of_qCoeff_criterion123 below · depth 23 - Pivot value of a linear section equals the Chow form at e
ModularCurve.JZero.secProd_one_linSec_eq_eval_chowForm256 below · depth 24 - Coefficients of ℚ̄-modular functions lie in a number field
ModularCurve.exists_finiteDimensional_forall_coeff_mem0 below · depth 24 - Embedding basis of X₀(p) with rational q-expansions
ModularCurve.exists_ratFamily_isEmbBasis141 below · depth 24 - Bounded denominators with attained Gauss norm at ∞̄
ModularCurve.exists_smul_forall_coeff_mem_and_exists_not_mem_nonunits118 below · depth 24 - Uniform p-adic window for a finite family of modular functions
ModularCurve.exists_uniform_window_smul_mem_integers_of_qCoeff_criterion_of_ne_zero184 below · depth 24 - Functions on X₀(N) as quotients with poles only at ∞̄
ModularCurve.exists_mem_riemannRochSpace_mul_eq_of_ne_zero168 below · depth 25 - Uniform p-power window for scaling a finite family in L(n∞̄)
ModularCurve.exists_uniform_window_smul_mem_integers_of_qCoeff_criterion_of_mem_riemannRochSpace123 below · depth 25 - Gauss normalisation of q-expansions with poles among those of j
ModularCurve.exists_smul_forall_coeff_mem_and_exists_not_mem_nonunits_of_forall_ord_neg118 below · depth 26