Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.Isogeny.MulByInt.DivisorPullback

The pullback of a point along [n] #

Let W be an elliptic curve over a field F and n an integer invertible in F. The coefficient of [n]^* D at the place of a point R is the coefficient of D at the place of n • R. Over a separably closed field, pulling the divisor (T) of a point back along multiplication by n gives the points R with n • R = T, each with multiplicity one.

At an n-torsion point T, the divisor [n]^* (T) - [n]^* (O) is principal. This is the second input to the divisor construction of the Weil pairing (Silverman III.8.1), after WeierstrassCurve.Affine.exists_principal_eq_zsmul_ofPoint_sub_infinity: the pairing is built from a function with this divisor.

Main definitions #

Main results #

The place-level inputs are in Isogeny/MulByInt/PointPlace.lean (isEquiv_comap_valuation_pointEquivDegreeOnePlace_iff, finite_setOf_zsmul_eq, restrict_eq_pointEquivDegreeOnePlace_iff), and the torsion counts on the points of W in Isogeny/MulByInt/IsSepClosed.lean.

References #

Prior art #

AINTLIB (github.com/CBirkbeck/AINTLIB @ f622f4aa0bd7b9d8b8cb931b5f8cb709f1d179e2, Apache-2.0) proves both results in its own divisor framework, in projects/HasseWeil/HasseWeil/HasseBound/WeilPairing/: Pullback.lean defines the fibre divisor pullbackDiv combinatorially, DivisorPullback.lean's projectiveDivisorOf_pullback_eq_pullbackDivisor identifies it with the divisor of k ∘ φ by per-place order transport over an algebraically closed field, and WeilFunction.lean's pullbackDiv_sub_isPrincipal (used by Pairing.lean's weilFunction_isPrincipal) proves the fibre difference principal. Nothing is ported: here the pullback is the conorm TauCeti.Isogeny.divisorPullback, read off places.

The coordinate ring of an elliptic curve is a Dedekind domain.

@[simp]

The coefficient of [n]^* D at the place of R is the coefficient of D at the place of n • R, for n invertible in F: the place of R lies over that of n • R, and [n] is unramified, being separable.

noncomputable def TauCeti.Isogeny.weilPairingDivisor {F : Type u_1} [Field F] (W : WeierstrassCurve F) [W.IsElliptic] {n : ℤ} (hn : psiFunctionField W n ≠ 0) (T : W.toAffine.Point) :

The divisor [n]^* (T) - [n]^* (O), the pullback along [n] of (T) - (O). The Weil pairing is built from a function with this divisor (Silverman III.8.1).

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

    The pullback of a point along [n] is its fibre: over a separably closed field in which n is invertible, [n]^* (T) = ∑_{n • R = T} (R).

    The divisor [n]^* (T) - [n]^* (O) #

    [n]^* (T) - [n]^* (O) is the translate of the fibre over O minus that fibre: for any R₀ with n • R₀ = T, it is ∑_{n • S = O} ((R₀ + S) - (S)), over a separably closed field in which n is invertible.

    theorem TauCeti.Isogeny.exists_principal_eq_weilPairingDivisor {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [W.IsElliptic] [IsSepClosed F] {n : ℤ} (hchar : ↑n ≠ 0) {T : W.toAffine.Point} (hT : n • T = 0) :

    [n]^* (T) - [n]^* (O) is principal at an n-torsion point T, over a separably closed field in which n is invertible (Silverman III.8.1). A function with this divisor is the function g_T from which the Weil pairing is built.