Definitions/Def_EllipticCurve_WeilPairingFun.lean
Weil functions and a point-level Weil pairing constant
Throughout, W is a Weierstrass curve over a field R and K is a field equipped with an R-algebra structure; (W⁄K) denotes the base-changed affine curve, with its coordinate ring (W⁄K).CoordinateRing, its function field (W⁄K).FunctionField and its group of points (W⁄K).Point. For a point P, placeIdeal W K P is the unit ideal when P = 0 and otherwise the underlying ideal of the height-one place placeOf W K P, namely the maximal ideal (x - x_P,\,y - y_P) of the coordinate ring cut out by the affine point P; the two accompanying lemmas record these two cases. For n \in \mathbb{Z} and a point Q, fibSet W K n Q is the set \{P : n \cdot P = Q\}, with membership unfolding by definition, and fibIdeal W K n Q is the product of placeIdeal W K P over that set when it is finite (the finite set being taken in the sense of Set.Finite.toFinset), and the unit ideal otherwise. weilNum W K n T is a chosen generator of fibIdeal W K n T when that ideal is principal, and 1 otherwise; span_weilNum states that under principality the span of this element is the ideal. The Weil function weilFun W K n T is then the quotient, in the function field, of the images of weilNum W K n T and weilNum W K n 0.
Assuming in addition that K is algebraically closed and W is elliptic, weilPairing0 W K n S T is defined to be a unit c \in K^{\times} satisfying \tau_S^{*}(g_{n,T}) = c \cdot g_{n,T}, where \tau_S^{*} = transEquiv W K S is the automorphism of the function field pulling back along translation by S and g_{n,T} = weilFun W K n T, and to be 1 when no such unit exists. The defining relation (transEquiv_weilFun) and the fallback value (weilPairing0_of_not) are recorded as the two characterising lemmas; no bilinearity, alternation or non-degeneracy is asserted at this stage.
Relation to Mathlib
Mathlib supplies the affine coordinate ring of a Weierstrass curve, its ideals XYIdeal/XClass/YClass and the group of affine points; the places attached to points, the translation automorphisms of the function field, and the Weil functions and pairing constant defined here are the project's own, Mathlib having no Weil pairing.
Where it is used
These Weil functions and the constant e_0 attached to a pair of points are the basis for the project's treatment of the Weil pairing on n-torsion, whose bilinearity, alternation and Galois equivariance give the determinant of the mod-n representation attached to an elliptic curve as the cyclotomic character.
References
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986, III.8
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 70 lines
- 13 declarations
- used in the statements of 100 theorems and imported by 118 proofs
- imports 1 definition modules
Source file: Definitions/Def_EllipticCurve_WeilPairingFun.lean
Imported by
- no other definition module
Declarations
- def
WeierstrassCurve.Affine.placeIdeal - theorem
WeierstrassCurve.Affine.placeIdeal_zero - theorem
WeierstrassCurve.Affine.placeIdeal_of_ne_zero - def
WeierstrassCurve.Affine.fibSet - theorem
WeierstrassCurve.Affine.mem_fibSet - def
WeierstrassCurve.Affine.fibIdeal - theorem
WeierstrassCurve.Affine.fibIdeal_eq - def
WeierstrassCurve.Affine.weilNum - theorem
WeierstrassCurve.Affine.span_weilNum - def
WeierstrassCurve.Affine.weilFun - def
WeierstrassCurve.Affine.weilPairing0 - theorem
WeierstrassCurve.Affine.transEquiv_weilFun - theorem
WeierstrassCurve.Affine.weilPairing0_of_not
Source
import Definitions.Def_EllipticCurve_FunctionFieldPullback namespace WeierstrassCurve.Affine section WeilPairingDefs variable {R : Type*} [Field R] (W : WeierstrassCurve R) (K : Type*) [Field K] [Algebra R K] [DecidableEq K] open Classical in noncomputable def placeIdeal (P : (W⁄K).Point) : Ideal (W⁄K).CoordinateRing := if hP : P = 0 then ⊤ else (placeOf W K P hP).asIdeal theorem placeIdeal_zero : placeIdeal W K 0 = ⊤ := dif_pos rfl theorem placeIdeal_of_ne_zero {P : (W⁄K).Point} (hP : P ≠ 0) : placeIdeal W K P = (placeOf W K P hP).asIdeal := dif_neg hP def fibSet (n : ℤ) (Q : (W⁄K).Point) : Set (W⁄K).Point := {P | n • P = Q} @[simp] theorem mem_fibSet {n : ℤ} {Q P : (W⁄K).Point} : P ∈ fibSet W K n Q ↔ n • P = Q := Iff.rfl open Classical in noncomputable def fibIdeal (n : ℤ) (Q : (W⁄K).Point) : Ideal (W⁄K).CoordinateRing := if h : (fibSet W K n Q).Finite then ∏ P ∈ h.toFinset, placeIdeal W K P else ⊤ theorem fibIdeal_eq {n : ℤ} {Q : (W⁄K).Point} (h : (fibSet W K n Q).Finite) : fibIdeal W K n Q = ∏ P ∈ h.toFinset, placeIdeal W K P := by rw [fibIdeal, dif_pos h] open Classical in noncomputable def weilNum (n : ℤ) (T : (W⁄K).Point) : (W⁄K).CoordinateRing := if h : (fibIdeal W K n T).IsPrincipal then @Submodule.IsPrincipal.generator _ _ _ _ _ _ h else 1 theorem span_weilNum {n : ℤ} {T : (W⁄K).Point} (h : (fibIdeal W K n T).IsPrincipal) : Ideal.span {weilNum W K n T} = fibIdeal W K n T := by rw [weilNum, dif_pos h] exact @Ideal.span_singleton_generator _ _ _ h noncomputable def weilFun (n : ℤ) (T : (W⁄K).Point) : (W⁄K).FunctionField := algebraMap _ (W⁄K).FunctionField (weilNum W K n T) / algebraMap _ (W⁄K).FunctionField (weilNum W K n 0) open Classical in noncomputable def weilPairing0 [IsAlgClosed K] [W.IsElliptic] (n : ℤ) (S T : (W⁄K).Point) : Kˣ := if h : ∃ c : Kˣ, transEquiv W K S (weilFun W K n T) = algebraMap K (W⁄K).FunctionField (c : K) * weilFun W K n T then h.choose else 1 theorem transEquiv_weilFun [IsAlgClosed K] [W.IsElliptic] {n : ℤ} {S T : (W⁄K).Point} (h : ∃ c : Kˣ, transEquiv W K S (weilFun W K n T) = algebraMap K (W⁄K).FunctionField (c : K) * weilFun W K n T) : transEquiv W K S (weilFun W K n T) = algebraMap K (W⁄K).FunctionField (weilPairing0 W K n S T : K) * weilFun W K n T := by rw [weilPairing0, dif_pos h] exact h.choose_spec theorem weilPairing0_of_not [IsAlgClosed K] [W.IsElliptic] {n : ℤ} {S T : (W⁄K).Point} (h : ¬ ∃ c : Kˣ, transEquiv W K S (weilFun W K n T) = algebraMap K (W⁄K).FunctionField (c : K) * weilFun W K n T) : weilPairing0 W K n S T = 1 := by rw [weilPairing0, dif_neg h] end WeilPairingDefs end WeierstrassCurve.Affine
Statements phrased using this module (100)
- Translation invariance of the Weil function g_T up to a constant
WeierstrassCurve.Affine.exists_transEquiv_weilFun_eq20 below · depth 8 - Valuation of the Weil function g_T at an affine place
WeierstrassCurve.Affine.valuation_weilFun5 below · depth 8 - Multiplicativity of e₀ in the first variable
WeierstrassCurve.Affine.weilPairing0_add_left21 below · depth 8 - Additivity of e₀(S,·) in the second variable
WeierstrassCurve.Affine.weilPairing0_add_right21 below · depth 8 - Galois equivariance of the Weil pairing e₀
WeierstrassCurve.Affine.weilPairing0_galois23 below · depth 8 - The pairing e₀ is trivial on the diagonal: e₀(T,T)=1
WeierstrassCurve.Affine.weilPairing0_self19 below · depth 8 - Galois conjugation of the Weil function up to a constant
WeierstrassCurve.Affine.exists_map_weilFun_eq_mul_weilFun_smul10 below · depth 9 - Valuation of the translated Weil function at finite places
WeierstrassCurve.Affine.valuation_transEquiv_weilFun16 below · depth 9 - Divisor of `weilNum`: simple zeros on the [n]-fibre over T
WeierstrassCurve.Affine.valuation_weilNum4 below · depth 9 - Nonvanishing of the Weil function g_T for T ∈ E[n]
WeierstrassCurve.Affine.weilFun_ne_zero6 below · depth 9 - Fibres of multiplication by n are finite
WeierstrassCurve.Affine.fibSet_finite1 below · depth 10 - Fibres of [n] on an elliptic curve have n² points
WeierstrassCurve.Affine.ncard_fibSet3 below · depth 10 - Non-vanishing of the Weil numerator at n-torsion
WeierstrassCurve.Affine.weilNum_ne_zero5 below · depth 10 - Special-fibre points of the rigid chart as level structures
ModularCurve.FullLevel.exists_ssFibreDictionary_chartAlgFin_rigidDataPow2,868 below · depth 28 - Transitivity of Γ(N₀) on Weil-normalised level-ℓ structures
ModularCurve.LevelRelabelling.exists_mem_Gamma_relabel_eq_of_weilPairing0_eq45 below · depth 28 - Special-fibre dictionary for the rigid chart at level Γ(q)∩Γ₁(ℓ_g)∩Γ₀(M')
ModularCurve.FullLevel.Diamond.exists_ssFibreDictionary_chartAlgFin_rigidDataGamma1Pow2,857 below · depth 29 - Constancy of the level-ℓ' Weil pairing on the special fibre
ModularCurve.FullLevel.exists_forall_weilPairing0_eq_of_eq_map_classify_rigidDataPow42 below · depth 29 - No q-torsion and alignment above a supersingular place
ModularCurve.FullLevel.forall_nsmul_eq_zero_and_exists_variableChange_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,862 below · depth 29 - Non-degeneracy of the Weil pairing: trivial pairing forces T = O
WeierstrassCurve.Affine.eq_zero_of_forall_weilPairing0_eq_one35 below · depth 29 - Cusp-regular integral level-M' functions lie in the j-chart
ModularCurve.FullLevel.Diamond.coeffEmb_mem_chartAlgFin_of_cuspRegular_of_mem_integers827 below · depth 30 - Directed supersingular-fibre dictionary for the Γ₁(ℓ_g)-rigid moduli data
ModularCurve.FullLevel.Diamond.exists_ssFibreDictionary_chartAlgFin_rigidDataGamma1Pow_directedAt2,856 below · depth 30 - One moduli place for all rigid-chart points over s
ModularCurve.FullLevel.exists_place_forall_isModuliPlaceOf_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,858 below · depth 30 - Universal Katz level-ℓ Weil pairing as ℓ-th root of unity
ModularCurve.LevelComponent.exists_pow_eq_one_and_forall_weilPairing0_toPoint_mapRing_eq_of_mk_eq_univ39 below · depth 30 - Invariance of the point-level Weil pairing under coordinate change
WeierstrassCurve.Affine.weilPairing0_toPoint_variableChange2 below · depth 30 - Vanishing q-torsion and line alignment at supersingular places
ModularCurve.FullLevel.Diamond.forall_nsmul_eq_zero_and_exists_variableChange_and_inLine_of_over_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,852 below · depth 31 - Supersingular fibre dictionary with automorphism count at s
ModularCurve.FullLevel.exists_ssFibreDictionary_autCount_chartAlgFin_rigidDataPow2,889 below · depth 31 - Closed points above a supersingular place carry no q-torsion
ModularCurve.FullLevel.forall_nsmul_eq_zero_of_over_of_eq_map_classify_rigidDataPow104 below · depth 31 - Equal floor readings and supersingular fibre force equal Γ₀(M')-class
ModularCurve.FullLevel.moduliPoint_mk_eq_of_forall_apply_qExpand_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,857 below · depth 31 - Local constancy of the Weil pairing of a level-ℓ basis
ModularCurve.LevelComponent.exists_not_mem_and_exists_pow_eq_one_forall_weilPairing0_toPoint_mapRing_localizationAway_eq33 below · depth 31 - Weil-normalised level-ℓ structures number #SL₂(ℤ/ℓ)
ModularCurve.LevelRelabelling.natCard_isLevelPStructure_weilPairing0_eq_eq_natCard_specialLinearGroup51 below · depth 31 - Rigidity of Katz level-ℓ structures over algebraically closed fields
ModularCurve.LevelRelabelling.variableChange_eq_one_of_smul_eq_of_variableChange_eq_of_isLevelPStructure3 below · depth 31 - Presentation independence of the point-level Weil pairing
WeierstrassCurve.Affine.weilPairing0_toPoint_eq_of_baseChange_eq0 below · depth 31 - A single moduli place above a supersingular place, H₁ level
ModularCurve.FullLevel.Diamond.exists_place_forall_isModuliPlaceOf_of_over_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,847 below · depth 32 - Supersingular places read off injectively from Γ₀(M')-classes
ModularCurve.FullLevel.exists_injective_forall_place_eq_of_forall_evalAt_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,847 below · depth 32 - Closed points of the rigid j-chart read rational floor places
ModularCurve.FullLevel.exists_place_forall_evalAt_eq_apply_qExpand_of_eq_map_classify_rigidDataPow865 below · depth 32 - Transport of level automorphism and supersingular point to j-chart
ModularCurve.FullLevel.exists_ringHom_chartAlgFin_levelAut_comap_eq_of_isLevelAutAt_of_ringHom_cyclotomic_rigidDataPow968 below · depth 32 - Admissible constants over a cyclotomic discrete valuation ring
ModularCurve.FullLevel.exists_valuationSubring_admissibleConstants_over_cyclotomic11 below · depth 32 - Level automorphisms in Γ(ℓ')∩Γ₀(M') fix supersingular closed points
ModularCurve.FullLevel.levelAut_sub_self_mem_of_isLevelAutAt_of_mem_Gamma_of_over_ssPlace_rigidDataPow2,871 below · depth 32 - Automorphisms of the Γ₀(M')-fibre datum over a supersingular place
ModularCurve.FullLevel.natCard_variableChange_act_curve_eq_and_level_fst_eq_eq_two_mul_placeWidthChar_of_over_of_eq_map_classify_rigidDataPow_of_tatePoint2,872 below · depth 32 - Degeneracy image of a cusp-regular integral function is chart-integral
ModularCurve.FullLevel.qExpand_mem_chartAlgFin_of_cuspRegular_of_mem_integers828 below · depth 32 - Weil pairing of integral torsion points lies in a valuation subring
WeierstrassCurve.Affine.exists_algebraMap_eq_weilPairing0_and_map_eq_weilPairing0_of_valuationSubring30 below · depth 32 - Weil pairing of a Katz level-ℓ structure is primitive
WeierstrassCurve.Affine.isPrimitiveRoot_weilPairing0_toPoint_of_isLevelPStructure44 below · depth 32 - Weil pairing under an integral relabelling: eₙ((S,T)g)=eₙ(S,T)^{det g}
WeierstrassCurve.Affine.weilPairing0_linComb_linComb_eq_zpow_det24 below · depth 32 - Transport of a cyclotomic level automorphism to the k₀-chart
ModularCurve.FullLevel.Diamond.exists_ringHom_chartAlgFin_levelAut_comap_eq_of_isLevelAutAt_of_ringHom_cyclotomic_rigidDataGamma1Pow939 below · depth 33 - Supersingular specialisations of the H₁ datum have no q-torsion
ModularCurve.FullLevel.Diamond.forall_nsmul_eq_zero_of_over_of_eq_map_classify_rigidDataH1Pow104 below · depth 33 - Trivial-diamond level automorphisms fix supersingular chart points
ModularCurve.FullLevel.Diamond.levelAut_sub_self_mem_of_isLevelAutAt_of_mem_gamma0_of_apply_eq_one_of_over_ssPlace_rigidDataGamma1Pow2,859 below · depth 33 - Equal floor readings force equal Γ₀(M')-moduli class
ModularCurve.FullLevel.Diamond.moduliPoint_mk_eq_of_forall_apply_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,846 below · depth 33 - Closed points of the rigid chart read through R₀
ModularCurve.FullLevel.exists_algHom_forall_apply_residue_eq_apply_qExpand_of_eq_map_classify_rigidDataPow860 below · depth 33 - Supersingular closed point lifts to the chart over admissible constants
ModularCurve.FullLevel.exists_isMaximal_chartAlgFin_comap_eq_of_coeffMap_cyclotomic_rigidDataPow197 below · depth 33 - Read place is a moduli place of the Frobenius-twisted fibre
ModularCurve.FullLevel.exists_isModuliPlaceOf_map_frobenius_of_forall_evalAt_eq_of_eq_map_classify_rigidDataPow_of_tatePoint2,828 below · depth 33 - Transport of level automorphisms along a cyclotomic coefficient map
ModularCurve.FullLevel.exists_ringHom_chartAlgFin_isLevelAutAt_restrict_comp_eq_of_isLevelAutAt_cyclotomic_rigidDataPow242 below · depth 33 - Supersingular fibre dictionary with Γ₀(M') relabelling
ModularCurve.FullLevel.exists_ssFibreDictionary_relabel_of_isLevelAutAt_chartAlgFin_rigidDataPow2,868 below · depth 33 - Supersingular points of the j-chart lie over supersingular places
ModularCurve.FullLevel.exists_ssPlace_under_of_isMaximal_chartAlgFin_of_mem_ssJSet_rigidDataPow891 below · depth 33 - Relabelling by γ∈Γ(ℓ')∩Γ₀(M') fixes a supersingular class
ModularCurve.FullLevel.quotMk_eq_of_relabel_of_mem_Gamma_of_forall_smul_eq_zero_rigidDataPow10 below · depth 33 - Integral Weil numerator along a valuation subring
WeierstrassCurve.Affine.exists_smul_basis_eq_algebraMap_mul_weilNum_of_valuationSubring16 below · depth 33 - Supersingular places injectively indexed by Γ₀(M')-moduli points
ModularCurve.FullLevel.Diamond.exists_injective_forall_place_eq_of_forall_evalAt_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,836 below · depth 34 - A maximal ideal of the k₀-chart contracting to y₁
ModularCurve.FullLevel.Diamond.exists_isMaximal_chartAlgFin_comap_eq_of_coeffMap_cyclotomic_rigidDataGamma1Pow198 below · depth 34 - One rational place reads all admissible functions at H₁ level
ModularCurve.FullLevel.Diamond.exists_place_forall_evalAt_eq_apply_of_eq_map_classify_rigidDataH1Pow864 below · depth 34 - Transfer of level automorphisms to the j-finite chart
ModularCurve.FullLevel.Diamond.exists_ringHom_chartAlgFin_isLevelAutAt_restrict_comp_eq_of_isLevelAutAt_cyclotomic_rigidDataGamma1Pow212 below · depth 34 - Directed supersingular-fibre dictionary under Γ₀(M')-level automorphisms
ModularCurve.FullLevel.Diamond.exists_ssFibreDictionary_chartAlgFin_rigidDataGamma1Pow_directedAt_of_mem_gamma02,856 below · depth 34 - Supersingular chart points lie over supersingular places (Γ₁(ℓ_g) frame)
ModularCurve.FullLevel.Diamond.exists_ssPlace_under_of_isMaximal_chartAlgFin_of_mem_ssJSet_rigidDataGamma1Pow890 below · depth 34 - q-expansion criterion at a supersingular point, H₁ level
ModularCurve.FullLevel.Diamond.mem_of_forall_coeff_mem_maximalIdeal_of_isMaximal_of_mem_ssJSet_chartAlgFin_rigidDataGamma1Pow_of_isPrimitiveRoot_mul2,299 below · depth 34 - Trivial-diamond Γ₀(M')-relabelling fixes supersingular Γ₁(ℓ_g)-points
ModularCurve.FullLevel.Diamond.quotMk_eq_of_relabel_of_apply_eq_one_of_forall_smul_eq_zero_rigidDataGamma1Pow7 below · depth 34 - Reading admissible level-M' functions gives a κ_A-embedding
ModularCurve.FullLevel.exists_algHom_modularFunctionFieldFullC_forall_apply_residue_eq_ringHom_of_transcendental_of_tatePoint863 below · depth 34 - Frobenius twist and cyclic-quotient j at a Tate point
ModularCurve.FullLevel.exists_place_curve_reduction_eq_map_frobenius_cyclicQuotientJ_eq_of_levelAut_of_originChart_of_tatePoint2,251 below · depth 34 - Supersingular branch with second Drinfeld section at the origin
ModularCurve.FullLevel.exists_place_ringHom_chartAlgFin_residue_eq_originChart_levelAut_of_forall_nsmul_eq_zero_of_tatePoint2,365 below · depth 34 - Integrality and cusp-regularity of j(qᵈ) for d ∣ M'
ModularCurve.FullLevel.mem_integers_and_cuspRegular_qExpand_jq_of_dvd44 below · depth 34 - Equal classifying kernels give equal q-Weil pairing values
ModularCurve.LevelModuliPackageAbs.weilPairing0_drinfeld_mapRing_eq_of_ker_classify_eq_rigidDataPow254 below · depth 34 - Weil pairing determined by the kernel of `classify`
ModularCurve.LevelModuliPackageAbs.weilPairing0_mapRing_eq_of_ker_classify_eq_rigidDataPow41 below · depth 34 - Weil pairing of a Drinfeld Γ(q)-basis is primitive
WeierstrassCurve.DrinfeldGlobal.isPrimitiveRoot_weilPairing0_of_isLevel_of_isSectionThrough_ed2196 below · depth 34 - Specialisation of the H₁ chart yields a κ(A)-algebra homomorphism
ModularCurve.FullLevel.Diamond.exists_algHom_forall_apply_residue_eq_apply_of_eq_map_classify_rigidDataH1Pow859 below · depth 35 - Existence of a moduli place for the Frobenius-twisted Γ₀(M')-class
ModularCurve.FullLevel.Diamond.exists_isModuliPlaceOf_map_frobenius_of_forall_evalAt_eq_of_eq_map_classify_rigidDataH1Pow_of_tatePoint_pinGamma12,817 below · depth 35 - Gauss nonunits lie in the supersingular maximal ideal
ModularCurve.FullLevel.Diamond.mem_of_coe_mem_nonunits_of_isMaximal_of_mem_ssJSet_chartAlgFin2,297 below · depth 35 - Specialisation of j(q^{dℓ'}) as the q-th power of a cyclic-quotient j
ModularCurve.FullLevel.apply_eq_cyclicQuotientJ_pow_of_levelAut_of_originChart_of_forall_nsmul_eq_zero_of_tatePoint2,242 below · depth 35 - First Drinfeld section is the origin at the Gauss place
ModularCurve.FullLevel.exists_originChart_fst_of_forall_ringHom_eq_zero_iff_mem_nonunits_of_tatePoint23 below · depth 35 - Equal `classify` kernels give equal Drinfeld Weil pairing values
ModularCurve.LevelModuliPackageAbs.weilPairing0_drinfeld_mapRing_eq_of_ker_classify_eq_rigidDataH1Pow254 below · depth 35 - Galois-invariant torsion gives base-field-rational Weil pairing
WeierstrassCurve.Affine.exists_algebraMap_eq_weilPairing0_of_forall_smul_eq24 below · depth 35 - Weil pairing commutes with embeddings of algebraically closed fields
WeierstrassCurve.Affine.weilPairing0_map_algHom25 below · depth 35 - Weil pairing of a Drinfeld q-basis is variable-change invariant
WeierstrassCurve.DrinfeldGlobal.weilPairing0_toPoint_variableChange_of_isLevel_of_isSectionThrough160 below · depth 35 - Supersingular maximal ideals agreeing on q-substituted functions coincide
ModularCurve.FullLevel.Diamond.eq_of_isMaximal_of_mem_ssJSet_of_forall_coe_eq_qExpand_iff_chartAlgFin2,214 below · depth 36 - Branch reading gives an embedding of the full level-M' field
ModularCurve.FullLevel.Diamond.exists_algHom_modularFunctionFieldFullC_forall_apply_residue_eq_ringHom_of_transcendental_rigidDataH1Pow_of_tatePoint_pinGamma1864 below · depth 36 - Frobenius twist of the H₁ branch after place extension
ModularCurve.FullLevel.Diamond.exists_place_curve_reduction_eq_map_frobenius_cyclicQuotientJ_eq_of_levelAut_of_originChart_rigidDataH1Pow_of_tatePoint_pinGamma12,187 below · depth 36 - Branch place at a supersingular point of the H₁ chart
ModularCurve.FullLevel.Diamond.exists_place_ringHom_chartAlgFin_residue_eq_originChart_levelAut_of_forall_nsmul_eq_zero_rigidDataH1Pow_of_tatePoint_pinGamma12,343 below · depth 36 - Preimage in B₀ of j(mathsf q^{qℓ'd}) as cyclic quotient j-invariant
ModularCurve.FullLevel.exists_classify_preimage_forall_apply_eq_cyclicQuotientJ_etale_of_tatePoint_gamma0Pow2,227 below · depth 36 - Étale part of the pinned Tate point descends under qmapstoq^q
ModularCurve.FullLevel.exists_raw_etale_map_eq_map_qExpand_of_tatePoint169 below · depth 36 - Base change of the Weil function along an F-embedding
WeierstrassCurve.Affine.exists_map_weilFun_eq_mul_weilFun_map_of_algHom10 below · depth 36 - Base change of the function field along an F-algebra map
WeierstrassCurve.Affine.exists_ringHom_functionField_baseChange_of_algHom0 below · depth 36 - Translation pull-back commutes with base change of scalars
WeierstrassCurve.Affine.map_transEquiv_eq_transEquiv_map_of_algHom0 below · depth 36 - Specialisation of j(qᵈ) as q-th power of cyclic-quotient invariant
ModularCurve.FullLevel.Diamond.apply_eq_cyclicQuotientJ_pow_of_levelAut_of_originChart_of_forall_nsmul_eq_zero_rigidDataH1Pow_of_tatePoint_pinGamma12,178 below · depth 37 - First Drinfeld section is the origin on the Gauss branch
ModularCurve.FullLevel.Diamond.exists_originChart_fst_of_forall_ringHom_eq_zero_iff_mem_nonunits_rigidDataH1Pow_of_tatePoint_pinGamma123 below · depth 37 - Étale part of the pinned H₁ Tate point as a q-expansion
ModularCurve.FullLevel.Diamond.exists_raw_etale_map_eq_map_qExpand_of_tatePoint_pinGamma1150 below · depth 37 - Tate point: j(mathsf q^{qℓ'd}) as a cyclic quotient j-invariant
ModularCurve.FullLevel.algebraMap_jqNModC_eq_cyclicQuotientJ_of_eq_map_tatePoint_gamma0Pow153 below · depth 37 - Specialising the Tate reading of j(mathsf q^{qℓ'd}) to cyclic quotients
ModularCurve.FullLevel.apply_eq_cyclicQuotientJ_of_classify_eq_jqNModC_of_tatePoint_gamma0Pow92 below · depth 37 - Surjectivity of the Tate-point classifying map onto the j-chart algebra
ModularCurve.FullLevel.exists_clC_eq_of_mem_chartAlgFin_of_tatePoint_gamma0Pow2,211 below · depth 37 - Base change of a function: valuations at old and new points
WeierstrassCurve.Affine.valuation_placeOf_map_of_algHom0 below · depth 37 - Classifying preimage of j(mathsf q^{qd}) computing quotient j-invariants
ModularCurve.FullLevel.Diamond.exists_classify_preimage_forall_apply_eq_cyclicQuotientJ_etale_rigidDataH1Pow_of_tatePoint_pinGamma12,170 below · depth 38 - Raw étale Γ₀(M')∩Γ₁(ℓ_g)-structure on the twisted Tate curve
ModularCurve.FullLevel.Diamond.exists_variableChange_raw_etale_tate_weightOne_level_fst_level_snd_fst_of_ker148 below · depth 38 - Tate point of the H₁ problem reads j(q^{qd})
ModularCurve.FullLevel.Diamond.algebraMap_jqNModC_eq_cyclicQuotientJ_of_eq_map_rigidDataH1Pow_of_tatePoint_pinGamma1153 below · depth 39 - Classify-preimage of j(mathsf q^{qd}) specialises to cyclic-quotient j
ModularCurve.FullLevel.Diamond.apply_eq_cyclicQuotientJ_of_classify_eq_jqNModC_rigidDataH1Pow_of_tatePoint_pinGamma192 below · depth 39 - Surjectivity of the rigid H₁ classifying map at the Tate point
ModularCurve.FullLevel.Diamond.exists_clC_eq_of_mem_chartAlgFin_rigidDataH1Pow_of_tatePoint_pinGamma12,132 below · depth 39