Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_AlgebraicCurve_PlaceEvaluation

Evaluation at rational places and divisors; Weil reciprocity predicate #

Definition: AlgebraicCurve_PlaceEvaluation (d5fccec9-c50a-5b0f-9eb1-08b6be4c96f8), by Claude, 2026-09-05.

The setting is a field extension $K \subseteq F$ (an algebra $F$ over a field $K$, with $F$ a field), with places, orders and divisors as in the divisor-class-group module: a Place K F is a valuation subring $\mathcal O_v \subseteq F$ containing the image of $K$, different from $F$ and with principal ideals (hence a discrete valuation ring), $v.\mathrm{ord}$ is minus the logarithm of the associated adic valuation, and a divisor is a finitely supported function from places to $\mathbb Z$. Here a place $v$ is declared IsRational when the structure map $K \to \kappa(v)$ into the residue field of $\mathcal O_v$ is surjective; since that map is automatically injective, this says $\kappa(v) = K$, i.e. $\deg v = 1$. The map residueInv is a chosen left inverse of $K \to \kappa(v)$ (the Function.invFun, so it is a genuine inverse exactly when $v$ is rational, and arbitrary elsewhere), and evalAt sends $f \in F$ to residueInv of the residue class of $f$ when $f \in \mathcal O_v$, and to $0$ otherwise; thus $f(v) \in K$ is the value of $f$ at $v$ when $v$ is rational and $f$ has no pole there, with the junk value $0$ at poles. The accompanying lemmas record the two inversion identities, the defining equation of evalAt on $\mathcal O_v$, the fact that $K \to \kappa(v)$ carries $f(v)$ to the residue of $f$ when $v$ is rational, and $1(v) = 1$.

For a divisor $D$, Divisor.evalFun f D is the finite product $\prod_{v \in \mathrm{supp}\,D} f(v)^{D(v)}$ of integer powers in $K$; it is $1$ on the zero divisor and equals $f(v)^n$ on $n \cdot v$. Finally WeilReciprocity K F is a predicate on the pair $(K,F)$, not a theorem: it asserts that for all nonzero $f, g \in F$ and all divisors $D_f, D_g$ with $D_f(v) = \mathrm{ord}_v f$ and $D_g(v) = \mathrm{ord}_v g$ at every place, such that at each place at least one of $\mathrm{ord}_v f$, $\mathrm{ord}_v g$ vanishes and such that every place in the support of $D_f$ or of $D_g$ is rational, one has $f(D_g) = g(D_f)$.

Relation to Mathlib. Built on Mathlib's ValuationSubring and IsLocalRing.ResidueField, with residueInv obtained from Function.invFun; the evaluation of a function at a place or at a divisor, and the Weil reciprocity statement, are the project's own, Mathlib having no such notions.

Where it is used. These definitions underlie the project's treatment of Weil reciprocity for function fields and, through it, the divisor-class description of the Weil pairing $e_n(D_1,D_2) = f_1(D_2)/f_2(D_1)$ on elliptic curves, which feeds into the study of the mod $n$ Galois representations used on the Frey-curve side of the argument.

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

def AlgebraicCurve.Place.IsRational {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) :

The constant field maps surjectively onto the residue field at the place.

Equations
Instances For
    noncomputable def AlgebraicCurve.Place.residueInv {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) :
    v.ResidueField → K

    A chosen inverse on the image of the constant field in the residue field, used at rational places.

    Equations
    Instances For
      theorem AlgebraicCurve.Place.algebraMap_residueInv {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) (hv : v.IsRational) (x : v.ResidueField) :
      theorem AlgebraicCurve.Place.residueInv_algebraMap {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) (a : K) :
      noncomputable def AlgebraicCurve.Place.evalAt {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) (f : F) :
      K

      Evaluation by residue followed by residueInv, with value zero outside the valuation ring.

      Equations
      Instances For
        theorem AlgebraicCurve.Place.evalAt_of_mem {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) {f : F} (hf : f ∈ v.toValuationSubring) :
        theorem AlgebraicCurve.Place.algebraMap_evalAt {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) (hv : v.IsRational) {f : F} (hf : f ∈ v.toValuationSubring) :
        @[simp]
        theorem AlgebraicCurve.Place.evalAt_one {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (v : Place K F) :
        v.evalAt 1 = 1
        noncomputable def AlgebraicCurve.Divisor.evalFun {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (f : F) (D : Divisor K F) :
        K

        Evaluation of a function on a divisor, multiplying its values with the divisor's integer exponents.

        Equations
        Instances For
          theorem AlgebraicCurve.Divisor.evalFun_def {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (f : F) (D : Divisor K F) :
          evalFun f D = ∏ v ∈ D.support, v.evalAt f ^ D v
          @[simp]
          theorem AlgebraicCurve.Divisor.evalFun_zero {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (f : F) :
          evalFun f 0 = 1
          theorem AlgebraicCurve.Divisor.evalFun_single {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (f : F) (v : Place K F) (n : ℤ) :
          def AlgebraicCurve.WeilReciprocity (K : Type u_1) (F : Type u_2) [Field K] [Field F] [Algebra K F] :

          The equality f(div g) = g(div f) for disjoint principal divisors supported at rational places.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For