Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.Isogeny.MulByInt.WeilPairing.Bilinear

The Weil pairing as a ZMod N-bilinear form #

Let W be an elliptic curve over a separably closed field F and N a positive integer invertible in F. Both E[N] and μ_N, written additively, are killed by N, so they are ZMod N-modules, and the Weil pairing e_N, being additive in each variable, is ZMod N-linear in each variable. This file records that linearity and packages e_N as a ZMod N-bilinear form on E[N], which is alternating and left-separating. This is the form in which linear algebra over ZMod N applies to the Weil pairing.

The pairing is defined on Submodule.torsionBy ℤ, while the ZMod N-module structure is on AddSubgroup.torsionBy, the same subtype of points. The statements here are made on the latter, so that c • S is the ZMod N-action.

Main definitions #

Main results #

References #

theorem TauCeti.Isogeny.weilPairing_zmod_smul_left {F : Type u_1} [Field F] [DecidableEq F] [IsSepClosed F] (W : WeierstrassCurve F) [W.IsElliptic] (N : ℕ) [NeZero N] (hN : ↑N ≠ 0) (c : ZMod N) (S T : ↥(AddSubgroup.torsionBy W.toAffine.Point ↑N)) :
((weilPairing W N hN) (c • S)) T = c • ((weilPairing W N hN) S) T

The Weil pairing is ZMod N-linear in its first variable.

theorem TauCeti.Isogeny.weilPairing_zmod_smul_right {F : Type u_1} [Field F] [DecidableEq F] [IsSepClosed F] (W : WeierstrassCurve F) [W.IsElliptic] (N : ℕ) [NeZero N] (hN : ↑N ≠ 0) (c : ZMod N) (S T : ↥(AddSubgroup.torsionBy W.toAffine.Point ↑N)) :
((weilPairing W N hN) S) (c • T) = c • ((weilPairing W N hN) S) T

The Weil pairing is ZMod N-linear in its second variable.

The Weil pairing as a ZMod N-bilinear form on E[N], over a separably closed field in which N is invertible.

Instances For
    @[simp]
    theorem TauCeti.Isogeny.weilPairingBilin_apply {F : Type u_1} [Field F] [DecidableEq F] [IsSepClosed F] (W : WeierstrassCurve F) [W.IsElliptic] (N : ℕ) [NeZero N] (hN : ↑N ≠ 0) (S T : ↥(AddSubgroup.torsionBy W.toAffine.Point ↑N)) :
    ((weilPairingBilin W N hN) S) T = ((weilPairing W N hN) S) T

    The bilinear form weilPairingBilin evaluates to the Weil pairing.

    theorem TauCeti.Isogeny.isAlt_weilPairingBilin {F : Type u_1} [Field F] [DecidableEq F] [IsSepClosed F] (W : WeierstrassCurve F) [W.IsElliptic] (N : ℕ) [NeZero N] (hN : ↑N ≠ 0) :

    The Weil pairing, as a ZMod N-bilinear form, is alternating.

    The Weil pairing, as a ZMod N-bilinear form, is left-separating.