Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.Isogeny.DivisorPullback

Pulling a divisor back along an isogeny #

An isogeny embeds F(W₂) in F(W₁) as a finite extension, and the conorm of that extension is the pullback of divisors: the coefficient of φ* D at a place P' is e(P' ∣ P) times the coefficient of D at the place below it. Nothing about curves enters beyond the embedding being finite, which is what the degree of an isogeny says.

The one fact the divisor construction of the Weil pairing needs of this is that it carries principal divisors to principal divisors: φ*(div z) is the divisor of the pulled-back function. That is what lets a function with a prescribed divisor be pulled back and its divisor read off.

Conventions #

The algebra structure on F(W₁) over F(W₂) is not an instance — it depends on φ — so it is taken as a parameter together with the hypothesis that its structure map is fieldPullback, the form TauCeti.Isogeny.degree_eq_finrank and TauCeti.Isogeny.finiteDimensional_functionField already use. A caller supplies it with let _ := φ.fieldPullback.toRingHom.toAlgebra.

Main definitions #

Main results #

Each is the corresponding TauCeti.Divisor.conorm result read through the isogeny; the definition is opaque outside this module, so the wrappers are what a consumer has.

References #

noncomputable def TauCeti.Isogeny.divisorPullback {F : Type u_1} [Field F] {W₁ W₂ : WeierstrassCurve.Affine F} (φ : Isogeny W₁ W₂) [Algebra W₂.FunctionField W₁.FunctionField] (h : ∀ (z : W₂.FunctionField), (algebraMap W₂.FunctionField W₁.FunctionField) z = φ.fieldPullback z) :

The pullback of a divisor along an isogeny: the conorm of the finite extension of function fields that the isogeny induces.

Equations
Instances For

    The coefficients and the support #

    These three read the place below P', so the base-field tower and the finiteness of the extension have to be in scope for their statements to elaborate, not just for their proofs. Both follow from h, so they are installed while the statement elaborates rather than quantified: a caller that can supply h should not have to supply them a second time.

    @[simp]

    The defining coefficient formula: the coefficient of φ* D at a place P' of F(W₁) is e(P' ∣ P) times the coefficient of D at the place P below it.

    A place of F(W₁) lies in the support of φ* D exactly when the place below it lies in the support of D: the ramification indices are positive, so nothing cancels.

    The pullback of a point divisor is its fibre, the places above P weighted by their ramification indices — geometrically φ⁻¹(P) with multiplicity.

    theorem TauCeti.Isogeny.divisorPullback_mono {F : Type u_1} [Field F] {W₁ W₂ : WeierstrassCurve.Affine F} (φ : Isogeny W₁ W₂) [Algebra W₂.FunctionField W₁.FunctionField] (h : ∀ (z : W₂.FunctionField), (algebraMap W₂.FunctionField W₁.FunctionField) z = φ.fieldPullback z) :

    The pullback is monotone: it multiplies coefficients by positive ramification indices.

    The pullback of an effective divisor is effective.

    The pullback is injective: every place of F(W₂) is the restriction of a place of F(W₁), and the ramification indices are nonzero.

    An isogeny carries div z to the divisor of the pulled-back function (Stichtenoth, Proposition 3.1.9). This is the step the divisor construction of the Weil pairing runs on: a function with a prescribed divisor pulls back to one whose divisor is the pullback.

    The pullback respects linear equivalence (Stichtenoth, Proposition 3.1.9), so it descends to divisor classes.

    Functoriality and divisor classes #

    @[simp]
    theorem TauCeti.Isogeny.divisorPullback_comp {F : Type u_1} [Field F] {W₁ W₂ : WeierstrassCurve.Affine F} (φ : Isogeny W₁ W₂) [Algebra W₂.FunctionField W₁.FunctionField] (h : ∀ (z : W₂.FunctionField), (algebraMap W₂.FunctionField W₁.FunctionField) z = φ.fieldPullback z) {W₃ : WeierstrassCurve.Affine F} (ψ : Isogeny W₂ W₃) [Algebra W₃.FunctionField W₂.FunctionField] [Algebra W₃.FunctionField W₁.FunctionField] (hψ : ∀ (z : W₃.FunctionField), (algebraMap W₃.FunctionField W₂.FunctionField) z = ψ.fieldPullback z) (hc : ∀ (z : W₃.FunctionField), (algebraMap W₃.FunctionField W₁.FunctionField) z = (ψ.comp φ).fieldPullback z) (D : Divisor F W₃.FunctionField) :
    (φ.divisorPullback h) ((ψ.divisorPullback hψ) D) = ((ψ.comp φ).divisorPullback hc) D

    Pulling back along a composite is pulling back twice, in the reverse order (Stichtenoth, Definition 3.1.8): the conorm is transitive in a tower, and the three function-field embeddings form one.

    @[simp]

    The identity law: pulling back along Isogeny.id changes nothing.

    The pullback on divisor classes: the pullback carries principal divisors to principal divisors, so it descends to a homomorphism Cl(F(W₂)) →+ Cl(F(W₁)).

    Equations
    Instances For
      @[simp]

      The pullback on classes is the pullback on divisors, which is what makes the descent usable: a class given by a divisor is carried to the class of its pullback.

      @[simp]

      Contravariant functoriality on classes, the quotient of divisorPullback_comp.