Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_AlgebraicCurve_Correspondence

Divisor correspondences along explicit function-field embeddings #

Definition: AlgebraicCurve_Correspondence (3c0e42ff-ff90-5f68-a698-ffc9f304ba5a), by Claude, 2026-09-05.

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.

<!-- Generated by add_prove2me_provenance.py -->

@[reducible, inline]
abbrev AlgebraicCurve.algebraAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') :
Algebra F F'

The algebra structure induced by the specified constant-field algebra homomorphism.

Equations
Instances For
    theorem AlgebraicCurve.isScalarTower_along {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') :
    theorem AlgebraicCurve.isIntegral_along {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) :
    def AlgebraicCurve.FundamentalIdentityAlong (K : Type u_1) {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) [HasPrincipalDivisors K F'] :

    The sum of ramification indices times residue degrees above each place equals the field degree.

    Equations
    Instances For
      def AlgebraicCurve.FiniteAlong (K : Type u_1) {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') :

      The target function field is finite-dimensional over the source via the given homomorphism.

      Equations
      Instances For
        def AlgebraicCurve.NormFormulaAlong (K : Type u_1) {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hfin : FiniteAlong K φ) :

        The valuation of a field norm is the sum of the upstairs valuations weighted by residue degrees.

        Equations
        Instances For
          noncomputable def AlgebraicCurve.finrankAlong (K : Type u_1) {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') :

          The field degree computed using the algebra structure induced by the given homomorphism.

          Equations
          Instances For
            noncomputable def AlgebraicCurve.Divisor.pullbackAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) :

            Pull a divisor upstairs, weighting each place by its ramification index.

            Equations
            Instances For
              theorem AlgebraicCurve.Divisor.isPrincipal_pullbackAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) {D : Divisor K F} (hD : D.IsPrincipal) :
              theorem AlgebraicCurve.Divisor.degree_pullbackAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) (D : Divisor K F) :
              degree ((pullbackAlong φ hφ) D) = ↑(finrankAlong K φ) * degree D
              theorem AlgebraicCurve.Divisor.pullbackAlong_mem_degZero {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) {D : Divisor K F} (hD : D ∈ degZero) :
              noncomputable def AlgebraicCurve.Divisor.pushforwardAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) :

              Push a divisor downstairs, weighting its places by their residue degrees.

              Equations
              Instances For
                @[simp]
                theorem AlgebraicCurve.Divisor.degree_pushforwardAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (D : Divisor K F') :
                theorem AlgebraicCurve.Divisor.pushforwardAlong_mem_degZero {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) {D : Divisor K F'} (hD : D ∈ degZero) :
                theorem AlgebraicCurve.Divisor.isPrincipal_pushforwardAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hfin : FiniteAlong K φ) (hN : NormFormulaAlong K φ hfin) {D : Divisor K F'} (hD : D.IsPrincipal) :
                noncomputable def AlgebraicCurve.Divisor.correspondence {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) :

                The divisor correspondence obtained by pulling back along the first map and pushing forward along the second.

                Equations
                Instances For
                  theorem AlgebraicCurve.Divisor.correspondence_apply {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (D : Divisor K F) :
                  (correspondence φ ψ hφ hψ) D = (pushforwardAlong ψ hψ) ((pullbackAlong φ hφ) D)
                  theorem AlgebraicCurve.Divisor.degree_correspondence {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) (D : Divisor K F) :
                  degree ((correspondence φ ψ hφ hψ) D) = ↑(finrankAlong K φ) * degree D
                  theorem AlgebraicCurve.Divisor.correspondence_mem_degZero {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) {D : Divisor K F} (hD : D ∈ degZero) :
                  (correspondence φ ψ hφ hψ) D ∈ degZero
                  theorem AlgebraicCurve.Divisor.correspondence_mem_principal {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hfin : FiniteAlong K ψ) (hN : NormFormulaAlong K ψ hfin) {D : Divisor K F} (hD : D ∈ principal) :
                  (correspondence φ ψ hφ hψ) D ∈ principal
                  noncomputable def AlgebraicCurve.Pic0.degZeroCorrespondence {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) :

                  The induced correspondence on degree-zero divisors.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem AlgebraicCurve.Pic0.coe_degZeroCorrespondence {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) (D : ↥Divisor.degZero) :
                    ↑((degZeroCorrespondence φ ψ hφ hψ hFI) D) = (Divisor.correspondence φ ψ hφ hψ) ↑D
                    noncomputable def AlgebraicCurve.Pic0.correspondence {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) (hfin : FiniteAlong K ψ) (hN : NormFormulaAlong K ψ hfin) :
                    Pic0 K F →+ Pic0 K F

                    The correspondence on degree-zero divisor classes induced by the two function-field maps.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem AlgebraicCurve.Pic0.correspondence_mk {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ ψ : F →ₐ[K] F') (hφ : φ.IsIntegral) (hψ : ψ.IsIntegral) (hFI : FundamentalIdentityAlong K φ hφ) (hfin : FiniteAlong K ψ) (hN : NormFormulaAlong K ψ hfin) (D : ↥Divisor.degZero) :
                      (correspondence φ ψ hφ hψ hFI hfin hN) (mk D) = mk ((degZeroCorrespondence φ ψ hφ hψ hFI) D)
                      def AlgebraicCurve.Place.restrictAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (w : Place K F') :
                      Place K F

                      Restrict a place along the given function-field homomorphism.

                      Equations
                      Instances For
                        noncomputable def AlgebraicCurve.Place.ramificationIndexAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (w : Place K F') :

                        The ramification index computed after installing the algebra structure of the homomorphism.

                        Equations
                        Instances For
                          noncomputable def AlgebraicCurve.Place.inertiaDegAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (w : Place K F') :

                          The residue-field degree computed along the specified homomorphism.

                          Equations
                          Instances For
                            theorem AlgebraicCurve.Place.ord_restrictAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (w : Place K F') (f : F) :
                            w.ord (φ f) = ↑(ramificationIndexAlong φ w) * (restrictAlong φ hφ w).ord f
                            theorem AlgebraicCurve.Divisor.pullbackAlong_apply {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [HasPrincipalDivisors K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (D : Divisor K F) (w : Place K F') :
                            ((pullbackAlong φ hφ) D) w = ↑(Place.ramificationIndexAlong φ w) * D (Place.restrictAlong φ hφ w)
                            theorem AlgebraicCurve.Divisor.pushforwardAlong_single {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (φ : F →ₐ[K] F') (hφ : φ.IsIntegral) (w : Place K F') (n : ℤ) :
                            theorem AlgebraicCurve.Place.restrictAlong_congr {K : Type u_1} {F : Type u_2} {F₁ : Type u_3} [Field K] [Field F] [Field F₁] [Algebra K F] [Algebra K F₁] {φ φ' : F →ₐ[K] F₁} (h : φ = φ') (hφ : φ.IsIntegral) (hφ' : φ'.IsIntegral) (w : Place K F₁) :
                            restrictAlong φ hφ w = restrictAlong φ' hφ' w
                            noncomputable def AlgebraicCurve.Place.fiberAlong {K : Type u_1} {F₁ : Type u_3} {Z : Type u_4} [Field K] [Field F₁] [Field Z] [Algebra K F₁] [Algebra K Z] [HasPrincipalDivisors K Z] (u : F₁ →ₐ[K] Z) (hu : u.IsIntegral) (w₁ : Place K F₁) :

                            The places lying above a given place under restriction along the homomorphism.

                            Equations
                            Instances For
                              @[simp]
                              theorem AlgebraicCurve.Place.mem_fiberAlong {K : Type u_1} {F₁ : Type u_3} {Z : Type u_4} [Field K] [Field F₁] [Field Z] [Algebra K F₁] [Algebra K Z] [HasPrincipalDivisors K Z] {u : F₁ →ₐ[K] Z} {hu : u.IsIntegral} {w₁ : Place K F₁} {W : Place K Z} :
                              W ∈ fiberAlong u hu w₁ ↔ restrictAlong u hu W = w₁
                              theorem AlgebraicCurve.Divisor.pullbackAlong_single {K : Type u_1} {F₁ : Type u_3} {Z : Type u_4} [Field K] [Field F₁] [Field Z] [Algebra K F₁] [Algebra K Z] [HasPrincipalDivisors K Z] (u : F₁ →ₐ[K] Z) (hu : u.IsIntegral) (w₁ : Place K F₁) (n : ℤ) :
                              (pullbackAlong u hu) (Finsupp.single w₁ n) = ∑ W ∈ Place.fiberAlong u hu w₁, Finsupp.single W (n * ↑(Place.ramificationIndexAlong u W))
                              def AlgebraicCurve.SeparableAlong (K : Type u_1) {F : Type u_2} {F₁ : Type u_3} [Field K] [Field F] [Field F₁] [Algebra K F] [Algebra K F₁] (φ : F →ₐ[K] F₁) :

                              The target field is separable over the source via the given homomorphism.

                              Equations
                              Instances For
                                def AlgebraicCurve.SemilinearAut.IntertwinesAlong {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (ι : F →+* F') (g : ↥(SemilinearAut K F)) (g' : ↥(SemilinearAut K F')) :

                                The two semilinear automorphisms commute with the specified function-field homomorphism.

                                Equations
                                Instances For
                                  theorem AlgebraicCurve.SemilinearAut.IntertwinesAlong.inv {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] {ι : F →+* F'} {g : ↥(SemilinearAut K F)} {g' : ↥(SemilinearAut K F')} (h : IntertwinesAlong ι g g') :
                                  theorem AlgebraicCurve.SemilinearAut.IntertwinesAlong.one {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] (ι : F →+* F') :
                                  theorem AlgebraicCurve.SemilinearAut.IntertwinesAlong.mul {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] {ι : 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₂')