Definitions/Def_AlgebraicCurve_Correspondence.lean
Divisor correspondences along explicit function-field embeddings
Throughout, K is a field and F, F' are fields with K-algebra structures; all divisor-theoretic notions (\mathrm{Place}\,K\,F, \mathrm{Divisor}\,K\,F, \mathrm{Pic}^0, Place.restrict, ramification index, inertia degree, fibre, Divisor.pullback, Divisor.pushforward, and the hypothesis classes FundamentalIdentity, PushforwardNormFormula, HasPrincipalDivisors) are taken from the project's own earlier modules. The point of this module is to restate that calculus along an explicitly given K-algebra map \varphi : F \to_{\mathrm{alg}[K]} F' rather than along an ambient [Algebra F F'] instance, so that two such maps between the same pair of fields can coexist. algebraAlong φ is the algebra structure \varphi_* on F' over F obtained from the underlying ring homomorphism; it is an abbreviation, never an instance, and isScalarTower_along, isIntegral_along supply the tower and integrality facts for it. Against this the instance-free predicates FundamentalIdentityAlong K φ hφ, FiniteAlong K φ, NormFormulaAlong K φ hfin, SeparableAlong K φ and the number finrankAlong K φ are by definition the corresponding instance-form statements evaluated at algebraAlong φ (with integrality of \varphi as a hypothesis hφ where needed), and Divisor.pullbackAlong φ hφ, Divisor.pushforwardAlong φ hφ are the group homomorphisms Divisor.pullback, Divisor.pushforward taken there.
For a pair \varphi, \psi : F \to_{\mathrm{alg}[K]} F' of integral maps, Divisor.correspondence φ ψ hφ hψ is the additive endomorphism \psi_* \circ \varphi^* of \mathrm{Divisor}\,K\,F: pull back along \varphi, push forward along \psi. Its degree satisfies \deg = (\operatorname{finrankAlong} K\,\varphi)\cdot\deg under the fundamental identity along the pull-back leg; it preserves degree-zero divisors under the same hypothesis, and preserves principal divisors given finiteness and the norm formula along the push-forward leg. Combining these, Pic0.degZeroCorrespondence restricts it to degree-zero divisors and Pic0.correspondence φ ψ hφ hψ hFI hfin hN descends it to an additive endomorphism of \mathrm{Pic}^0\,K\,F; note the hypothesis split, the fundamental identity on \varphi and finiteness plus norm formula on \psi. The remaining declarations are the place calculus along \varphi (Place.restrictAlong, ramificationIndexAlong, inertiaDegAlong, fiberAlong, the valuation identity \operatorname{ord}_w(\varphi f) = e_w \cdot \operatorname{ord}_{w|_F}(f), and the single-place formulas for pull-back and push-forward), plus SemilinearAut.IntertwinesAlong ι g g', the predicate g'(\iota x) = \iota(g x) for all x, together with its closure under inversion, identity and multiplication.
Relation to Mathlib
algebraAlong is Mathlib's RingHom.toAlgebra applied to the underlying ring homomorphism, deliberately kept as a non-instance abbreviation; the divisor, place and \mathrm{Pic}^0 notions it is applied to, and the correspondence operator \psi_*\circ\varphi^*, are the project's own and have no Mathlib counterpart.
Where it is used
Applied to the two degeneracy maps of a modular curve, the correspondence \psi_*\circ\varphi^* gives the Hecke operators acting on J_0(N), which is where this general machinery is used; nothing in the module itself refers to modular curves, levels or primes.
References
- H. Stichtenoth, Algebraic Function Fields and Codes, Springer, 1993
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 347 lines
- 39 declarations
- used in the statements of 352 theorems and imported by 523 proofs
- imports 2 definition modules
Source file: Definitions/Def_AlgebraicCurve_Correspondence.lean
Imported by
Def_AlgebraicCurve_CechH1PushPullDef_AlgebraicCurve_DifferentialPushPullDef_AlgebraicCurve_FrobeniusEndoDef_AlgebraicCurve_GluedPic0PushforwardDef_CerednikDrinfeld_HeckeTowerDef_DrinfeldCurve_MapConstantsDef_Isogeny_ConditionalCurrencyDef_ModularCurve_FrobeniusModLDef_ModularCurve_HeckeOperatorDef_ModularCurve_IgusaFunctionFieldDef_ModularCurve_ModuliPlaceDef_ModularCurve_QExpSemistableSpecializationPinnedDef_ModularCurve_QExpSemistableSpecializationPinnedV3Def_ModularCurve_SSHeckeV2Def_ModularCurve_ShimuraKernelDef_ModularCurve_X1HeckeOperatorDef_ModularCurve_XHHeckeOperator
Declarations
- abbrev
AlgebraicCurve.algebraAlong - theorem
AlgebraicCurve.isScalarTower_along - theorem
AlgebraicCurve.isIntegral_along - def
AlgebraicCurve.FundamentalIdentityAlong - def
AlgebraicCurve.FiniteAlong - def
AlgebraicCurve.NormFormulaAlong - def
AlgebraicCurve.finrankAlong - def
AlgebraicCurve.Divisor.pullbackAlong - theorem
AlgebraicCurve.Divisor.isPrincipal_pullbackAlong - theorem
AlgebraicCurve.Divisor.degree_pullbackAlong - theorem
AlgebraicCurve.Divisor.pullbackAlong_mem_degZero - def
AlgebraicCurve.Divisor.pushforwardAlong - theorem
AlgebraicCurve.Divisor.degree_pushforwardAlong - theorem
AlgebraicCurve.Divisor.pushforwardAlong_mem_degZero - theorem
AlgebraicCurve.Divisor.isPrincipal_pushforwardAlong - def
AlgebraicCurve.Divisor.correspondence - theorem
AlgebraicCurve.Divisor.correspondence_apply - theorem
AlgebraicCurve.Divisor.degree_correspondence - theorem
AlgebraicCurve.Divisor.correspondence_mem_degZero - theorem
AlgebraicCurve.Divisor.correspondence_mem_principal - def
AlgebraicCurve.Pic0.degZeroCorrespondence - theorem
AlgebraicCurve.Pic0.coe_degZeroCorrespondence - def
AlgebraicCurve.Pic0.correspondence - theorem
AlgebraicCurve.Pic0.correspondence_mk - def
AlgebraicCurve.Place.restrictAlong - def
AlgebraicCurve.Place.ramificationIndexAlong - def
AlgebraicCurve.Place.inertiaDegAlong - theorem
AlgebraicCurve.Place.ord_restrictAlong - theorem
AlgebraicCurve.Divisor.pullbackAlong_apply - theorem
AlgebraicCurve.Divisor.pushforwardAlong_single - theorem
AlgebraicCurve.Place.restrictAlong_congr - def
AlgebraicCurve.Place.fiberAlong - theorem
AlgebraicCurve.Place.mem_fiberAlong - theorem
AlgebraicCurve.Divisor.pullbackAlong_single - def
AlgebraicCurve.SeparableAlong - def
AlgebraicCurve.SemilinearAut.IntertwinesAlong - theorem
AlgebraicCurve.SemilinearAut.IntertwinesAlong.inv - theorem
AlgebraicCurve.SemilinearAut.IntertwinesAlong.one - theorem
AlgebraicCurve.SemilinearAut.IntertwinesAlong.mul
Source
import Definitions.Def_AlgebraicCurve_DivisorPushPull import Definitions.Def_AlgebraicCurve_BaseChangeGalois set_option autoImplicit false noncomputable section namespace AlgebraicCurve section AlongHom variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] abbrev algebraAlong (φ : F →ₐ[K] F') : Algebra F F' := φ.toRingHom.toAlgebra theorem isScalarTower_along (φ : F →ₐ[K] F') : letI := algebraAlong φ; IsScalarTower K F F' := letI := algebraAlong φ IsScalarTower.of_algebraMap_eq fun k => (φ.commutes k).symm theorem isIntegral_along (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) : letI := algebraAlong φ; Algebra.IsIntegral F F' := letI := algebraAlong φ ⟨hφ⟩ variable (K) in def FundamentalIdentityAlong (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) [HasPrincipalDivisors K F'] : Prop := letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ FundamentalIdentity K F F' variable (K) in def FiniteAlong (φ : F →ₐ[K] F') : Prop := letI := algebraAlong φ Module.Finite F F' variable (K) in def NormFormulaAlong (φ : F →ₐ[K] F') (hfin : FiniteAlong K φ) : Prop := letI := algebraAlong φ haveI := isScalarTower_along φ haveI : Module.Finite F F' := hfin Divisor.PushforwardNormFormula K F F' variable (K) in def finrankAlong (φ : F →ₐ[K] F') : ℕ := letI := algebraAlong φ Module.finrank F F' end AlongHom namespace Divisor section AlongHom variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] section Pullback variable [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) def pullbackAlong : Divisor K F →+ Divisor K F' := letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ Divisor.pullback F' theorem isPrincipal_pullbackAlong {D : Divisor K F} (hD : D.IsPrincipal) : (pullbackAlong φ hφ D).IsPrincipal := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ exact Divisor.isPrincipal_pullback hD theorem degree_pullbackAlong (hFI : FundamentalIdentityAlong K φ hφ) (D : Divisor K F) : degree (pullbackAlong φ hφ D) = (finrankAlong K φ : ℤ) * degree D := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ haveI : FundamentalIdentity K F F' := hFI exact Divisor.degree_pullback D theorem pullbackAlong_mem_degZero (hFI : FundamentalIdentityAlong K φ hφ) {D : Divisor K F} (hD : D ∈ degZero (K := K) (F := F)) : pullbackAlong φ hφ D ∈ degZero (K := K) (F := F') := by rw [mem_degZero, degree_pullbackAlong φ hφ hFI, mem_degZero.mp hD, mul_zero] end Pullback section Pushforward variable (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) def pushforwardAlong : Divisor K F' →+ Divisor K F := letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ Divisor.pushforward F @[simp] theorem degree_pushforwardAlong (D : Divisor K F') : degree (pushforwardAlong φ hφ D) = degree D := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ exact Divisor.degree_pushforward D theorem pushforwardAlong_mem_degZero {D : Divisor K F'} (hD : D ∈ degZero (K := K) (F := F')) : pushforwardAlong φ hφ D ∈ degZero (K := K) (F := F) := by rwa [mem_degZero, degree_pushforwardAlong] theorem isPrincipal_pushforwardAlong (hfin : FiniteAlong K φ) (hN : NormFormulaAlong K φ hfin) {D : Divisor K F'} (hD : D.IsPrincipal) : (pushforwardAlong φ hφ D).IsPrincipal := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ haveI : Module.Finite F F' := hfin exact Divisor.isPrincipal_pushforward_of_normFormula hN hD end Pushforward end AlongHom section Correspondence variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] variable [HasPrincipalDivisors K F'] variable (φ ψ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (hψ : ψ.toRingHom.IsIntegral) def correspondence : Divisor K F →+ Divisor K F := (pushforwardAlong ψ hψ).comp (pullbackAlong φ hφ) theorem correspondence_apply (D : Divisor K F) : correspondence φ ψ hφ hψ D = pushforwardAlong ψ hψ (pullbackAlong φ hφ D) := rfl theorem degree_correspondence (hFI : FundamentalIdentityAlong K φ hφ) (D : Divisor K F) : Divisor.degree (correspondence φ ψ hφ hψ D) = (finrankAlong K φ : ℤ) * Divisor.degree D := by rw [correspondence_apply, degree_pushforwardAlong, degree_pullbackAlong φ hφ hFI] theorem correspondence_mem_degZero (hFI : FundamentalIdentityAlong K φ hφ) {D : Divisor K F} (hD : D ∈ degZero (K := K) (F := F)) : correspondence φ ψ hφ hψ D ∈ degZero (K := K) (F := F) := pushforwardAlong_mem_degZero ψ hψ (pullbackAlong_mem_degZero φ hφ hFI hD) theorem correspondence_mem_principal (hfin : FiniteAlong K ψ) (hN : NormFormulaAlong K ψ hfin) {D : Divisor K F} (hD : D ∈ principal (K := K) (F := F)) : correspondence φ ψ hφ hψ D ∈ principal (K := K) (F := F) := isPrincipal_pushforwardAlong ψ hψ hfin hN (isPrincipal_pullbackAlong φ hφ hD) end Correspondence end Divisor namespace Pic0 variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] variable [HasPrincipalDivisors K F'] variable (φ ψ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (hψ : ψ.toRingHom.IsIntegral) variable (hFI : FundamentalIdentityAlong K φ hφ) variable (hfin : FiniteAlong K ψ) (hN : NormFormulaAlong K ψ hfin) def degZeroCorrespondence : Divisor.degZero (K := K) (F := F) →+ Divisor.degZero (K := K) (F := F) := ((Divisor.correspondence φ ψ hφ hψ).domRestrict (Divisor.degZero (K := K) (F := F))).codRestrict _ (fun D => Divisor.correspondence_mem_degZero φ ψ hφ hψ hFI D.2) @[simp] theorem coe_degZeroCorrespondence (D : Divisor.degZero (K := K) (F := F)) : (degZeroCorrespondence φ ψ hφ hψ hFI D : Divisor K F) = Divisor.correspondence φ ψ hφ hψ (D : Divisor K F) := rfl def correspondence : Pic0 K F →+ Pic0 K F := QuotientAddGroup.map _ _ (degZeroCorrespondence φ ψ hφ hψ hFI) (by rintro ⟨D, hD0⟩ hD simp only [AddSubgroup.mem_addSubgroupOf] at hD ⊢ exact Divisor.correspondence_mem_principal φ ψ hφ hψ hfin hN hD) theorem correspondence_mk (D : Divisor.degZero (K := K) (F := F)) : correspondence φ ψ hφ hψ hFI hfin hN (mk D) = mk (degZeroCorrespondence φ ψ hφ hψ hFI D) := rfl end Pic0 end AlgebraicCurve namespace AlgebraicCurve section AlongPlaces variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] def Place.restrictAlong (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (w : Place K F') : Place K F := letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ w.restrict F def Place.ramificationIndexAlong (φ : F →ₐ[K] F') (w : Place K F') : ℕ := letI := algebraAlong φ w.ramificationIndex F def Place.inertiaDegAlong (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (w : Place K F') : ℕ := letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ w.inertiaDeg F theorem Place.ord_restrictAlong (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (w : Place K F') (f : F) : w.ord (φ f) = Place.ramificationIndexAlong φ w * (w.restrictAlong φ hφ).ord f := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ exact w.ord_restrict f theorem Divisor.pullbackAlong_apply [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (D : Divisor K F) (w : Place K F') : Divisor.pullbackAlong φ hφ D w = Place.ramificationIndexAlong φ w * D (w.restrictAlong φ hφ) := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ exact Divisor.pullback_apply D w theorem Divisor.pushforwardAlong_single (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) (w : Place K F') (n : ℤ) : Divisor.pushforwardAlong φ hφ (Finsupp.single w n) = Finsupp.single (w.restrictAlong φ hφ) (n * w.inertiaDegAlong φ hφ) := by letI := algebraAlong φ haveI := isScalarTower_along φ haveI := isIntegral_along φ hφ exact Divisor.pushforward_single w n end AlongPlaces end AlgebraicCurve namespace AlgebraicCurve variable {K F F₁ Z : Type*} [Field K] [Field F] [Field F₁] [Field Z] [Algebra K F] [Algebra K F₁] [Algebra K Z] namespace Place theorem restrictAlong_congr {φ φ' : F →ₐ[K] F₁} (h : φ = φ') (hφ : φ.toRingHom.IsIntegral) (hφ' : φ'.toRingHom.IsIntegral) (w : Place K F₁) : w.restrictAlong φ hφ = w.restrictAlong φ' hφ' := by subst h rfl section Fiber variable [HasPrincipalDivisors K Z] def fiberAlong (u : F₁ →ₐ[K] Z) (hu : u.toRingHom.IsIntegral) (w₁ : Place K F₁) : Finset (Place K Z) := letI := algebraAlong u haveI := isScalarTower_along u haveI := isIntegral_along u hu Place.fiber Z w₁ @[simp] theorem mem_fiberAlong {u : F₁ →ₐ[K] Z} {hu : u.toRingHom.IsIntegral} {w₁ : Place K F₁} {W : Place K Z} : W ∈ fiberAlong u hu w₁ ↔ W.restrictAlong u hu = w₁ := by letI := algebraAlong u haveI := isScalarTower_along u haveI := isIntegral_along u hu exact Place.mem_fiber theorem _root_.AlgebraicCurve.Divisor.pullbackAlong_single (u : F₁ →ₐ[K] Z) (hu : u.toRingHom.IsIntegral) (w₁ : Place K F₁) (n : ℤ) : Divisor.pullbackAlong u hu (Finsupp.single w₁ n) = ∑ W ∈ fiberAlong u hu w₁, Finsupp.single W (n * W.ramificationIndexAlong u) := by letI := algebraAlong u haveI := isScalarTower_along u haveI := isIntegral_along u hu exact Divisor.pullback_single w₁ n end Fiber end Place end AlgebraicCurve namespace AlgebraicCurve section AlongTransport variable {K F F₁ : Type*} [Field K] [Field F] [Field F₁] [Algebra K F] [Algebra K F₁] variable (K) in def SeparableAlong (φ : F →ₐ[K] F₁) : Prop := letI := algebraAlong φ Algebra.IsSeparable F F₁ end AlongTransport end AlgebraicCurve namespace AlgebraicCurve namespace SemilinearAut section Intertwines variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] def IntertwinesAlong (ι : F →+* F') (g : SemilinearAut K F) (g' : SemilinearAut K F') : Prop := ∀ x : F, g' • (ι x) = ι (g • x) theorem IntertwinesAlong.inv {ι : F →+* F'} {g : SemilinearAut K F} {g' : SemilinearAut K F'} (h : IntertwinesAlong ι g g') : IntertwinesAlong ι g⁻¹ g'⁻¹ := fun x => by have hx := h (g⁻¹ • x) rw [smul_inv_smul] at hx rw [← hx, inv_smul_smul] theorem IntertwinesAlong.one (ι : F →+* F') : IntertwinesAlong ι (1 : SemilinearAut K F) (1 : SemilinearAut K F') := fun x => by rw [one_smul, one_smul] theorem IntertwinesAlong.mul {ι : F →+* F'} {g₁ g₂ : SemilinearAut K F} {g₁' g₂' : SemilinearAut K F'} (h₁ : IntertwinesAlong ι g₁ g₁') (h₂ : IntertwinesAlong ι g₂ g₂') : IntertwinesAlong ι (g₁ * g₂) (g₁' * g₂') := fun x => by rw [mul_smul, mul_smul, h₂ x, h₁ (g₂ • x)] end Intertwines end SemilinearAut end AlgebraicCurve
Statements phrased using this module (352)
- Push–pull exchange for a linearly disjoint square of fields
AlgebraicCurve.Divisor.pullbackAlong_pushforwardAlong_eq_pushforwardAlong_pullbackAlong19 below · depth 8 - Finiteness along a composite of K-algebra maps
AlgebraicCurve.finiteAlong_comp0 below · depth 8 - Pushforward norm formula along a finite separable K-morphism
AlgebraicCurve.normFormulaAlong6 below · depth 8 - Integral extensions in characteristic zero are separable along φ
AlgebraicCurve.separableAlong_of_charZero0 below · depth 8 - Degree of the diagonal in the Hecke exchange square
ModularCurve.finrankAlong_towerSubstBar_comp_heckeAlphaBar147 below · depth 8 - Surjective K-algebra maps of fields are finite
AlgebraicCurve.finiteAlong_of_surjective0 below · depth 9 - Divisor-level commuting correspondences commute on Pic⁰
AlgebraicCurve.Pic0.correspondence_correspondence_comm0 below · depth 10 - Relations on Pic⁰ pass to regular differentials
AlgebraicCurve.Pic0.freeAlgebra_lift_differential_eq_zero_of_lift_correspondence_eq_zero148 below · depth 10 - Multiplicativity of the inertia degree in a tower
AlgebraicCurve.Place.inertiaDegAlong_comp0 below · depth 10 - Multiplicativity of the ramification index in a tower
AlgebraicCurve.Place.ramificationIndexAlong_comp1 below · depth 10 - Fundamental identity sum_w e_w f_w = [F':F] along an embedding
AlgebraicCurve.Place.sum_ramificationIndexAlong_mul_inertiaDegAlong6 below · depth 10 - Correspondences on Pic⁰ commute with intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.pic0_correspondence_smul9 below · depth 10 - Fundamental identity along a finite separable embedding
AlgebraicCurve.fundamentalIdentityAlong6 below · depth 10 - Degree of the q↦ q^ℓ degeneracy map over L
ModularCurve.finrankAlong_heckeBetaBar147 below · depth 10 - Trace of differentials at a geometric point is a sum over lifts
AlgebraicCurve.Differential.pullbackAlong_traceAlong_eq_sum_lifts0 below · depth 11 - Differential form of Abel's theorem over a constant-field extension
AlgebraicCurve.Differential.sum_ord_smul_pullbackAlong_eq_zero81 below · depth 11 - Divisor correspondences depend only on the two underlying maps
AlgebraicCurve.Divisor.correspondence_congr0 below · depth 11 - Correspondence of a multiple of a single place
AlgebraicCurve.Divisor.correspondence_single0 below · depth 11 - Collapse of a correspondence on a single place
AlgebraicCurve.Divisor.correspondence_single_of_forall_restrictAlong_eq1 below · depth 11 - Relations in Pic⁰ make geometric cycles principal
AlgebraicCurve.Pic0.exists_principal_geometricCycle_of_lift_correspondence_eq_zero140 below · depth 11 - Positivity of ramification indices along an integral map
AlgebraicCurve.Place.one_le_ramificationIndexAlong0 below · depth 11 - Transitivity of restriction of places along a tower
AlgebraicCurve.Place.restrictAlong_restrictAlong0 below · depth 11 - Surjectivity of restriction of places along a finite separable map
AlgebraicCurve.Place.restrictAlong_surjective4 below · depth 11 - Restriction of places along a commuting square
AlgebraicCurve.Place.smul_restrictAlong0 below · depth 11 - Divisor correspondences commute with intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.correspondence_smul8 below · depth 11 - Composite of two divisor correspondences through a roof
AlgebraicCurve.Divisor.correspondence_correspondence5 below · depth 12 - Functoriality of divisor push-forward along composites
AlgebraicCurve.Divisor.pushforwardAlong_pushforwardAlong2 below · depth 12 - Base change of correspondence relations on Pic⁰
AlgebraicCurve.Pic0.freeAlgebra_lift_baseChange_correspondence_eq_zero129 below · depth 12 - Roof package along a surjective leg of function fields
AlgebraicCurve.Pic0.roof_package_of_surjective167 below · depth 12 - Invariance of inertia degree under intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.inertiaDeg_smul0 below · depth 12 - Equivariance of divisor pull-back along an embedding
AlgebraicCurve.SemilinearAut.pullbackAlong_smul4 below · depth 12 - Equivariance of divisor pushforward along an embedding
AlgebraicCurve.SemilinearAut.pushforwardAlong_smul3 below · depth 12 - Ramification index is invariant under intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.ramificationIndex_smul1 below · depth 12 - Base change of a curve correspondence to a constant field extension
AlgebraicCurve.exists_baseChange_correspondence_of_constantFieldExtension74 below · depth 12 - Correspondence α_*β^* on J_H induced by an endomorphism
ModularCurve.XH.pic0Correspondence_pts_eq_comp_of_poincare_pullbackAlong_iso_laurentBaseChange180 below · depth 12 - Degeneracy embeddings and pinned level-M/p generic fibre
ModularCurve.XHDRModelAtP.exists_degeneracyEmb_curveModel_iso_genericFibre_restrictAlong_chartPin_of_atkinLehner_generic132 below · depth 12 - Level-M/p generic fibre and the two degeneracy embeddings
ModularCurve.XHDRModelAtP.exists_degeneracyEmb_curveModel_iso_genericFibre_restrictAlong_of_atkinLehner_generic132 below · depth 12 - Ramification index one along α_H at formally unramified points
ModularCurve.XHDRModelAtP.ramificationIndexAlong_degeneracyEmb_pointEquivPlace_eq_one_of_formallyUnramified2 below · depth 12 - Degeneracy push-forwards J_H(M) → J_{H'}(M/p) on divisor classes
ModularCurve.exists_degPts_mk_eq_mk_pushforwardAlong33 below · depth 12 - Finiteness of L-algebra maps between base-changed q-expansion fields
ModularCurve.finiteAlong_laurentBaseChange_qExpFunctionFieldC2 below · depth 12 - Both degeneracy embeddings have degree p+1 when p ‖ M
ModularCurve.finrankAlong_eq_add_one_and_finrankAlong_eq_add_one_of_coe_eq_qExpand247 below · depth 12 - Frobenius pullback of places equals arithmetic Frobenius twist
ModularCurve.qExpFrobeniusPlaceModL_eq_qExpArithFrobC_smul2 below · depth 12 - Formal unramifiedness near a rational point gives ramification index one
AlgebraicCurve.CurveModel.ramificationIndexAlong_pointEquivPlace_eq_one_of_formallyUnramified0 below · depth 13 - Constant reduction commutes with a correspondence and its base change
AlgebraicCurve.Divisor.mapDomain_placeReduction_correspondence75 below · depth 13 - Reduction compatible with conorm on degree-zero divisors
AlgebraicCurve.Divisor.mapDomain_pullbackAlong_eq_and_restrictAlong_eq_of_degZero0 below · depth 13 - Transitivity of divisor pull-back along composed embeddings
AlgebraicCurve.Divisor.pullbackAlong_pullbackAlong2 below · depth 13 - Pull-back after push-forward equals the sum over deck transformations
AlgebraicCurve.Divisor.pullbackAlong_pushforwardAlong_eq_sum_ofAlgAut_smul_of_forall_comp_eq153 below · depth 13 - Functoriality of divisor push-forward along composites
AlgebraicCurve.Divisor.pushforwardAlong_comp0 below · depth 13 - Pushforward after pullback along a surjection is the identity
AlgebraicCurve.Divisor.pushforwardAlong_pullbackAlong_of_surjective8 below · depth 13 - Frobenius fixed classes on Pic⁰ and resultants Res(Xⁿ-1,P)
AlgebraicCurve.Pic0.exists_monic_natCard_fixedPoints_iterate_eq_resultant_of_pushforwardAlong_frobenius133 below · depth 13 - Ramification indices along a commuting square of places
AlgebraicCurve.Place.ramificationIndexAlong_smul0 below · depth 13 - Restriction along σ is the action of σ⁻¹
AlgebraicCurve.Place.restrictAlong_algEquiv_eq_ofAlgAut_symm_smul0 below · depth 13 - Restriction along a Frobenius-type endomorphism is a twist
AlgebraicCurve.Place.restrictAlong_eq_smul_of_forall_eq_inv_smul_pow0 below · depth 13 - Order at a transported place of an element from the subfield
AlgebraicCurve.SemilinearAut.ord_algebraMap_smul0 below · depth 13 - Divisor pullback commutes with intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.pullback_smul3 below · depth 13 - Divisor pushforward commutes with intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.pushforward_smul2 below · depth 13 - Image point's place is the restriction along Φ
AlgebraicCurve.TwoChartIntegralModel.pointEquivPlace_eq_restrictAlong_of_chartPin0 below · depth 13 - Multiplicativity of degree along a composite of function-field maps
AlgebraicCurve.finrankAlong_comp0 below · depth 13 - Degree along a map equals relative degree over its image
AlgebraicCurve.finrankAlong_eq_relfinrank_fieldRange147 below · depth 13 - Pushforward norm formula along a finite separable embedding
AlgebraicCurve.normFormulaAlong_of_separableAlong7 below · depth 13 - Diamond ⟨ e⟩₀ on the j-finite chart
ModularCurve.XHDRModelAtP.iotaFin_comp_dia0_hom_eq_spec_map_comp_iotaFin158 below · depth 13 - Diamond ⟨ e⟩⁻¹ on the j-finite chart algebra
ModularCurve.exists_algEquiv_chartAlgFin_gammaH_infSubgroup_forall_coeffEmb_eq_diamondAutHBar_symm142 below · depth 13 - Inertia degree one along maps into L·ℚ(X(Γ))
ModularCurve.inertiaDegAlong_eq_one_laurentBaseChange_qExpFunctionFieldC136 below · depth 13 - Places of L·ℚ(X(Γ)) have degree one
ModularCurve.place_deg_eq_one_laurentBaseChange_qExpFunctionFieldC135 below · depth 13 - Geometric Frobenius as p-th power of the inverse arithmetic Frobenius
ModularCurve.qExpFrobeniusModL_eq_inv_qExpArithFrobC_smul_pow0 below · depth 13 - Base change of a finite self-embedding preserves its degree
WeierstrassCurve.Affine.exists_algHom_functionField_baseChange_finrankAlong_eq0 below · depth 13 - Descent of an elliptic curve with a function-field endomorphism to a countable subfield
WeierstrassCurve.exists_intermediateField_countable_map_eq_and_finrankAlong_eq2 below · depth 13 - A Frobenius endomorphism of a curve model twists places by g
AlgebraicCurve.CurveModel.placeOfPoint_eq_smul_of_fromSpecStalk_comp_eq_frobenius1 below · depth 14 - Pull-back along a K-automorphism is the semilinear action
AlgebraicCurve.Divisor.pullbackAlong_algEquiv_eq_ofAlgAut_smul0 below · depth 14 - Push–pull formula for a fibre square splitting into two components
AlgebraicCurve.Divisor.pullbackAlong_pushforwardAlong_eq_add_of_adjoin_eq_top7 below · depth 14 - Push–pull formula over a split fibre product of coverings
AlgebraicCurve.Divisor.pullbackAlong_pushforwardAlong_eq_sum_of_decomposition4 below · depth 14 - Existence of the Weil pairing on Pic⁰[n]
AlgebraicCurve.Pic0.exists_weilPairing306 below · depth 14 - Frobenius-fixed divisor classes counted by the class number
AlgebraicCurve.Pic0.natCard_fixedPoints_eq_natCard_pic0_of_pushforwardAlong_frobenius66 below · depth 14 - Embeddings inducing a given place counted by the ramification index
AlgebraicCurve.Place.ncard_algHom_comp_eq_preimage_eq_ramificationIndexAlong47 below · depth 14 - Equivariance of restriction of places under intertwined semilinear automorphisms
AlgebraicCurve.SemilinearAut.restrict_smul0 below · depth 14 - Class number of a curve as P(1)
AlgebraicCurve.eval_one_eq_natCard_pic0_of_natCard_fixedPoints_restrictAlong_eq80 below · depth 14 - Fixed points of Frobenius on places and the L-polynomial
AlgebraicCurve.exists_monic_natCard_fixedPoints_restrictAlong_eq_of_constantFieldExtension121 below · depth 14 - Simple-root place criterion along a finite morphism
AlgebraicCurve.exists_place_over_of_simple_root_along9 below · depth 14 - Degree along the identity is 1
AlgebraicCurve.finrankAlong_id147 below · depth 14 - Degeneracy map on ℚ̄-points restricts places along ᾱ
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeAlphaBar_of_comp_pi96 below · depth 14 - Second degeneracy morphism: places restrict along `heckeBetaBar`
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeBetaBar_of_comp_piw131 below · depth 14 - Function-field map of π has degree p+1
ModularCurve.XHDRModelAtP.exists_ringHom_functionField_fromSpecStalk_comp_pi_eq_and_finrank_eq_add_one248 below · depth 14 - Finiteness and finite presentation of π for X_H(M) at p‖M
ModularCurve.XHDRModelAtP.isFinite_and_locallyOfFinitePresentation_pi122 below · depth 14 - Roof prolongation at level Nℓ over a level-N reduction datum
ModularCurve.exists_charLDegeneracyRoof_regularProlongation_heckeCompat_of_ne_of_residue_jq_jqN768 below · depth 14 - Roof substitution leg has the degree of β_ℓ
ModularCurve.finrankAlong_towerSubstBar_roof147 below · depth 14 - Frobenius push-forward on Pic⁰ is arithmetic Frobenius
ModularCurve.qExpFrobeniusPushforwardModL_eq_qExpArithFrobC_smul47 below · depth 14 - Finite function-field embeddings realised by finite flat morphisms of models
AlgebraicCurve.CurveModel.exists_finite_flat_hom_of_algHom0 below · depth 15 - Finite flat morphism of curve models induced by a function-field embedding
AlgebraicCurve.CurveModel.exists_hom_of_algHom0 below · depth 15 - Exchanged legs force a divisor correspondence to be self-transpose
AlgebraicCurve.Divisor.correspondence_comm_of_exchange15 below · depth 15 - Pull-back of an unramified place: φ^*[w₀]=[W₀]+sumⱼ eⱼ[Wⱼ]
AlgebraicCurve.Divisor.exists_pullbackAlong_single_restrictAlong_eq_single_add_sum_of_ramificationIndexAlong_eq_one7 below · depth 15 - Correspondence adjointness of the divisorial Weil pairing
AlgebraicCurve.DivisorialWeilPairingData.pair_correspondence_eq_pair_correspondence26 below · depth 15 - Order of a pulled-back differential at a tame place
AlgebraicCurve.Place.ordDiff_pullbackDiff_of_natCast_ramificationIndexAlong_ne_zero16 below · depth 15 - Hilbert decomposition over a rational place of K(t)
AlgebraicCurve.Place.ord_restrictAlong_eq_natCard_algHom_of_isGalois28 below · depth 15 - A single integral characteristic polynomial for a correspondence on Tₚ(Pic⁰)
AlgebraicCurve.exists_monic_charpoly_tateModule_rep_correspondence_eq_map293 below · depth 15 - Fixed places of iterated Frobenius count places of F₀
AlgebraicCurve.finite_fixedPoints_restrictAlong_iterate_and_natCard_eq_sum_divisors7 below · depth 15 - Degeneracy morphism on generic points is Spec of α
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeAlphaBar2 below · depth 15 - Second degeneracy map on generic points is Specβ
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeBetaBar77 below · depth 15 - Places restrict along chart-pinned morphisms of Igusa schemes
ModularCurve.IgusaScheme.pointEquivPlace_eq_restrictAlong_of_chart_pin4 below · depth 15 - Factorisation of the pulled-back point ideal on the generic fibre
ModularCurve.XHDRModelAtP.comap_curveChange_pi_ofPoint_genericFibre_eq_mul_prod_pow_of_restrictAlong_pointEquivPlace_eq3 below · depth 15 - Degeneracy pair: finite separable of degree s+1, supersingularity preserved and reflected
ModularCurve.degeneracyPair_finiteSeparableDeg_ssPlaces_preserved_reflected402 below · depth 15 - Degeneracy pair at level Ms: degree s+1 and place transport
ModularCurve.degeneracyPair_finrankAlong_and_place_transports257 below · depth 15 - Degree one along the equal-level tower inclusion
ModularCurve.finrankAlong_towerInclBar_of_eq147 below · depth 15 - Norm transform endomorphism realises T_q on ℚ̄-points
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform359 below · depth 15 - Reduction commutes with the divisorial Hecke correspondence
ModularCurve.mapDomain_heckeDivBar_single_eq_heckeDivFibre_of_regularProlongation238 below · depth 15 - Divisor correspondence agrees with classifying endomorphism on ℚ̄-points
ModularCurve.pic0Correspondence_pts_eq_comp_of_poincare_pullbackAlong_iso359 below · depth 15 - Width one at off-diagonal affine places of level Ms
ModularCurve.placeWidthChar_eq_one_of_restrictAlong_ne535 below · depth 15 - Base change to ℚ̄ respects restriction of places
ModularCurve.pointEquivPlace_comp_eq_restrictAlong_of_baseChange41 below · depth 15 - Width transport along the degeneracy pair at supersingular places
ModularCurve.ramificationIndexAlong_mul_placeWidthChar_eq_placeWidthChar_restrictAlong_degeneracyPair502 below · depth 15 - Width transport along both degeneracy maps at every place
ModularCurve.ramificationIndexAlong_mul_placeWidth_eq_placeWidth_restrictAlong440 below · depth 15 - Pull-back of a push-forward across a two-component fibre product
AlgebraicCurve.Divisor.pullbackAlong_pushforwardAlong_eq_add_of_normFormulaAlong4 below · depth 16 - Places extend along an integral map of function fields
AlgebraicCurve.Place.exists_restrictAlong_eq_of_finiteDimensional_fieldRange4 below · depth 16 - Trace preserves pole-order bounds at a place
AlgebraicCurve.Place.neg_le_ord_trace_of_forall_le_ord2 below · depth 16 - Strict trace bound along places over a fixed place
AlgebraicCurve.Place.trace_eq_zero_or_neg_add_one_le_ord_trace_of_forall_le_ord0 below · depth 16 - One integral matrix for a correspondence on all Tate modules
AlgebraicCurve.exists_int_matrix_forall_toMatrix_tateModule_rep_correspondence_eq_map292 below · depth 16 - Atkin–Lehner involution restricts places along the geometric automorphism
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_geomAut_of_comp_w4 below · depth 16 - Reduction of places commutes with both degeneracy legs
ModularCurve.PlaceSpecialization.exists_spRoof_pullbackAlong_restrictAlong_compat_of_exists_placeMap_fullC_v2236 below · depth 16 - Cuspidal Hecke eigen-function yields mod-p cusp eigenform of weight 2m'
ModularCurve.SSHeckeV2.exists_isModPEigen_modPCusp_of_eigen_riemannRochSpace997 below · depth 16 - Hecke eigenfunctions in L(D_m) give mod-p eigenforms
ModularCurve.SSHeckeV2.exists_isModPEigen_of_eigen_riemannRochSpace876 below · depth 16 - The Hecke multiplier satisfies its defining differential identity
ModularCurve.SSHeckeV2.heckeMultiplier_spec121 below · depth 16 - Lead coefficients of the weight-2m Hecke image compute T_ℓ^{ss}
ModularCurve.SSHeckeV2.lead_trace_heckeBetaC_mul_pow_eq_ssHeckeFun_of_map893 below · depth 16 - Degeneracy pair at level Ms: finiteness, separability, supersingular places
ModularCurve.degeneracyPair_finite_separable_identity_ssPlaces178 below · depth 16 - Hecke operator T_q on J₀(p)(ℚ̄) realised by φ_η
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform_rat359 below · depth 16 - Vanishing of leadₓᵃ of a trace at supersingular places
ModularCurve.lead_trace_eq_zero_of_forall_le_ord366 below · depth 16 - Order bound for β(d)h^m on the α-fibre of an index place
ModularCurve.neg_mul_poleOrder_add_one_le_ord_heckeBetaC_mul_pow366 below · depth 16 - Floor bound for β(d)h^m along a supersingular fibre
ModularCurve.neg_mul_poleOrder_le_ord_heckeBetaC_mul_pow366 below · depth 16 - q-expansion of the weight-2m trace Hecke operator
ModularCurve.qexpOfWeight_trace_heckeBetaC_mul_pow_eq_heckePS_of_eq_smul_map132 below · depth 16 - Width transport along both degeneracy maps, characteristic ≥ 5
ModularCurve.ramificationIndexAlong_mul_placeWidth_eq_placeWidth_restrictAlong_of_five_le833 below · depth 16 - Conjugating a correspondence by cross-intertwining automorphisms transposes it
AlgebraicCurve.Divisor.ofAlgAut_smul_correspondence_eq_correspondence_ofAlgAut_smul_of_comp_eq_comp15 below · depth 17 - Frobenius acts with finite orbits on places, divisors and Pic⁰
AlgebraicCurve.Pic0.exists_iterate_apply_eq_self_of_pushforwardAlong_frobenius_of_isAlgebraic59 below · depth 17 - Trace at a place: Tr(g)(x)=sum_{y∣ x}e(y∣ x) g(y)
AlgebraicCurve.Place.mem_and_evalAt_trace_eq_sum_ramificationIndexAlong_smul_evalAt9 below · depth 17 - Trace preserves pole-order bounds at a place
AlgebraicCurve.Place.neg_le_ord_trace_of_forall_le_ord_of_isCurveOver2 below · depth 17 - Trace floor with the different gain at a place
AlgebraicCurve.Place.neg_le_ord_trace_of_forall_le_ord_sub_pred2 below · depth 17 - Kummer covers are totally ramified when ord u is prime to n
AlgebraicCurve.Place.ramificationIndexAlong_eq_of_pow_eq_of_isCoprime_ord7 below · depth 17 - Kummer covers are unramified at places where u is a unit
AlgebraicCurve.Place.ramificationIndexAlong_eq_one_of_pow_eq_of_mem_of_inv_mem1 below · depth 17 - Places and orders transport along inclusions between equal intermediate fields
AlgebraicCurve.Place.restrictAlong_inclusion_of_le_of_le0 below · depth 17 - Abel–Jacobi intertwines a correspondence with its differential matrix
AlgebraicCurve.abelJacobiDiv_correspondence_sub_vecMul_mem_pathPeriodLattice99 below · depth 17 - Lefschetz principle: descent of a curve with finitely many correspondences
AlgebraicCurve.exists_constantFieldDescent_correspondence40 below · depth 17 - Degree and trace under constant field extension
AlgebraicCurve.finrankAlong_eq_and_trace_eq_of_constantFieldExtension1 below · depth 17 - Trace integrality along a finite separable extension of fields
AlgebraicCurve.traceIntegralAlong_of_separableAlong0 below · depth 17 - Tameness of cusp pole orders on the ℓ-degeneracy roof
ModularCurve.cast_natAbs_ord_heckeAlphaC_ne_zero_and_heckeBetaC_of_ord_neg127 below · depth 17 - Roof reduction commutes place by place with both degeneracy maps
ModularCurve.exists_charLDegeneracyRoof_regularProlongation_heckeCompat_restrictAlong_eq_of_ne874 below · depth 17 - Common width along both degeneracy legs of the ℓ-roof
ModularCurve.exists_ramificationIndexAlong_mul_eq_placeWidth_restrictAlong_heckeAlphaC_heckeBetaC859 below · depth 17 - Hasse invariant intertwines the two Hecke operators at ℓ
ModularCurve.hasse_smul_traceAlong_smul_pullbackAlong_smul_D_jGeomGen_eq155 below · depth 17 - Degeneracy law for moduli places: level N down to M
ModularCurve.moduliPlace_restrictAlong_inclusion1 below · depth 17 - Second degeneracy map on moduli places via Vélu's odd-order model
ModularCurve.moduliPlace_restrictAlong_qExpand_veluQuotient92 below · depth 17 - Supersingular order bound for the Hecke difference on the roof
ModularCurve.neg_mul_add_one_le_ord_pow_mul_heckeBetaC_mul_pow_sub_of_mem_ssPlaces966 below · depth 17 - Poles of j(q) and j(q^ℓ) agree at every place
ModularCurve.ord_heckeAlphaC_jGeomGen_neg_iff_ord_heckeBetaC_jGeomGen_neg42 below · depth 17 - Order of the Hecke multiplier at a tame place
ModularCurve.ord_heckeMultiplier_eq17 below · depth 17 - Order of the Hecke multiplier at a pole of α^*j
ModularCurve.ord_heckeMultiplier_eq_of_ord_neg_of_eq_smul_map451 below · depth 17 - Width transport along an embedding fixing q-expansions
ModularCurve.ramificationIndexAlong_mul_placeWidth_eq_placeWidth_restrictAlong_of_coe_eq92 below · depth 17
… and 202 more statements (search for the module name to find them).