6. The Weil-pairing route to positivity
(Determinant = degree on E[\ell] — Silverman III.8.6.) For an endomorphism
\psi whose Weil pairing scales by its degree,
e_\ell(\psi S,\psi T)=e_\ell(S,T)^{\deg\psi}, the matrix \rho_\ell(\psi) of \psi
on the \ell-torsion satisfies
\det \rho_\ell(\psi) \;\equiv\; \deg\psi \pmod{\ell}.
The discrete log of the symplectic Weil pairing gives an alternating bilinear form whose
top exterior power reads off the determinant.
Lean code for Theorem6.1●2 theorems
Associated Lean declarations
-
theoremdefined in HasseWeil/WeilPairing/DetDeg.leancomplete
theorem HasseWeil.WeilPairing.TorsionGeometric.det_rhoEll_eq_degree.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (ψ : W.toAffine.Point →+ W.toAffine.Point) (d : ℕ) (hsc : ∀ (S T : ↥(HasseWeil.torsionSubgroup W.toAffine ↑ℓ)), HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ (ψ ↑S) (ψ ↑T) ⋯ ⋯ = HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ ↑S ↑T ⋯ ⋯ ^ d) : (HasseWeil.WeilPairing.TorsionGeometric.rhoEll W ℓ hℓF ψ).det = ↑d
theorem HasseWeil.WeilPairing.TorsionGeometric.det_rhoEll_eq_degree.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (ψ : W.toAffine.Point →+ W.toAffine.Point) (d : ℕ) (hsc : ∀ (S T : ↥(HasseWeil.torsionSubgroup W.toAffine ↑ℓ)), HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ (ψ ↑S) (ψ ↑T) ⋯ ⋯ = HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ ↑S ↑T ⋯ ⋯ ^ d) : (HasseWeil.WeilPairing.TorsionGeometric.rhoEll W ℓ hℓF ψ).det = ↑d
**DET-DEG (matrix form)** (Silverman III.8.6): `det(ρ_ℓ ψ) = (d : ZMod ℓ)` from the pairing scaling, via `rhoEll_det`.
-
theoremdefined in HasseWeil/WeilPairing/DetDeg.leancomplete
theorem HasseWeil.WeilPairing.TorsionGeometric.linearMap_det_torsionRestrict_eq.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (ψ : W.toAffine.Point →+ W.toAffine.Point) (d : ℕ) (hsc : ∀ (S T : ↥(HasseWeil.torsionSubgroup W.toAffine ↑ℓ)), HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ (ψ ↑S) (ψ ↑T) ⋯ ⋯ = HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ ↑S ↑T ⋯ ⋯ ^ d) : LinearMap.det (HasseWeil.WeilPairing.TorsionGeometric.torsionRestrict W ℓ ψ) = ↑d
theorem HasseWeil.WeilPairing.TorsionGeometric.linearMap_det_torsionRestrict_eq.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (ψ : W.toAffine.Point →+ W.toAffine.Point) (d : ℕ) (hsc : ∀ (S T : ↥(HasseWeil.torsionSubgroup W.toAffine ↑ℓ)), HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ (ψ ↑S) (ψ ↑T) ⋯ ⋯ = HasseWeil.WeilPairing.weilPairing W ↑ℓ ⋯ ↑S ↑T ⋯ ⋯ ^ d) : LinearMap.det (HasseWeil.WeilPairing.TorsionGeometric.torsionRestrict W ℓ ψ) = ↑d
**DET-DEG (module form)** (Silverman III.8.6): for an `AddMonoidHom ψ` preserving `E[ℓ]` whose Weil-pairing scaling is `e_ℓ(ψS, ψT) = e_ℓ(S,T)^d`, the determinant of `ψ` on `E[ℓ]` is `(d:ZMod ℓ)`. Combines `omegaForm_scaling` (the additive scaling) with `PairingDet.det_eq_of_alternating_scaling` (the `Λ²` lemma on the nondegenerate alternating form `ω`).
Passing to the additive form \omega = \log e_\ell makes the scaling
\omega(\psi S,\psi T) = \deg\psi \cdot \omega(S,T); on the 2-dimensional symplectic
space E[\ell] the induced map on \Lambda^2 is multiplication by
\det\rho_\ell(\psi), forcing \det\rho_\ell(\psi) \equiv \deg\psi.
(Frobenius determinant data on E[\ell].) For each prime \ell \ne p, the Frobenius
matrix M=\rho_\ell(\pi) over \overline{K} satisfies, modulo \ell,
\det M = q, \qquad \det(I-M) = q+1-t, \qquad \det(rM - sI) = \deg(r\pi-s),
assembling the determinant-degree identity across the separable pencil (Silverman III.8.6
-
V.2.3.1).
Lean code for Theorem6.2●2 theorems
Associated Lean declarations
-
theoremdefined in HasseWeil/WeilPairing/DetDeg.leancomplete
theorem HasseWeil.WeilPairing.TorsionGeometric.frob_det_residual_of_weil_scaling.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (πhom : W.toAffine.Point →+ W.toAffine.Point) (q t Dν r s : ℤ) (dπ d1 drs : ℕ) (hqd : ↑dπ = q) (h1d : ↑d1 = q + 1 - t) (hDd : ↑drs = Dν) (hπ : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF πhom dπ) (h1 : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF (AddMonoidHom.id W.toAffine.Point - πhom) d1) (hrs : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF (r • πhom - s • AddMonoidHom.id W.toAffine.Point) drs) : ∃ M, M.det = ↑q ∧ (1 - M).det = ↑(q + 1 - t) ∧ (↑r • M - ↑s • 1).det = ↑Dν
theorem HasseWeil.WeilPairing.TorsionGeometric.frob_det_residual_of_weil_scaling.{u_1} {F : Type u_1} [Field F] [DecidableEq F] (W : WeierstrassCurve F) [WeierstrassCurve.IsElliptic W.toAffine] [IsIntegrallyClosed { toAffine := W.toAffine }.CoordinateRing] (ℓ : ℕ) [hℓ : Fact (Nat.Prime ℓ)] [IsAlgClosed F] (hℓF : ↑ℓ ≠ 0) (πhom : W.toAffine.Point →+ W.toAffine.Point) (q t Dν r s : ℤ) (dπ d1 drs : ℕ) (hqd : ↑dπ = q) (h1d : ↑d1 = q + 1 - t) (hDd : ↑drs = Dν) (hπ : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF πhom dπ) (h1 : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF (AddMonoidHom.id W.toAffine.Point - πhom) d1) (hrs : HasseWeil.WeilPairing.TorsionGeometric.WeilScales W ℓ hℓF (r • πhom - s • AddMonoidHom.id W.toAffine.Point) drs) : ∃ M, M.det = ↑q ∧ (1 - M).det = ↑(q + 1 - t) ∧ (↑r • M - ↑s • 1).det = ↑Dν
**The per-`ℓ` Frobenius determinant residual from the Weil scalings, integer form** (the exact shape of the shipped `Reduction.deg_eq_of_frob_det_data` / `Assembly.qf_nonneg_of_frob_det_residual` hypothesis). Given the Frobenius hom on `E[ℓ]` over `K̄`, integers `q, t, Dν` equal (as integers) to the geometric degrees `deg π`, `q+1−deg(1−π)`, `deg(rπ−s)`, and the three Weil-pairing scalings, there is a matrix `M = ρ_ℓ(π)` with `det M = q`, `det(1−M) = q+1−t`, `det(rM−sI) = Dν` in `ZMod ℓ`.
-
theoremdefined in HasseWeil/WeilPairing/FrobMatrixData.leancomplete
theorem HasseWeil.WeilPairing.frob_det_residual_baseChange.{u_1, u_2} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] (p r : ℕ) [Fact (Nat.Prime p)] [CharP K p] [Fact (Fintype.card K = p ^ r)] (L : Type u_2) [Field L] [DecidableEq L] [Algebra K L] [IsAlgClosed L] [ExpChar L p] [WeierstrassCurve.IsElliptic (W.baseChange L).toAffine] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (r' s' : ℤ) (ℓ : ℕ) (hℓp : Nat.Prime ℓ) (hℓF : ↑ℓ ≠ 0) (hsc : HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L) (Fintype.card K) ∧ HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (AddMonoidHom.id (W.baseChange L).toAffine.Point - HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L) (HasseWeil.isogOneSub_negFrobenius W hq).degree ∧ HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (r' • HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L - s' • AddMonoidHom.id (W.baseChange L).toAffine.Point) (deg r' s').toNat) : ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r' • M - ↑s' • 1).det = ↑(deg r' s')
theorem HasseWeil.WeilPairing.frob_det_residual_baseChange.{u_1, u_2} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] (p r : ℕ) [Fact (Nat.Prime p)] [CharP K p] [Fact (Fintype.card K = p ^ r)] (L : Type u_2) [Field L] [DecidableEq L] [Algebra K L] [IsAlgClosed L] [ExpChar L p] [WeierstrassCurve.IsElliptic (W.baseChange L).toAffine] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (r' s' : ℤ) (ℓ : ℕ) (hℓp : Nat.Prime ℓ) (hℓF : ↑ℓ ≠ 0) (hsc : HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L) (Fintype.card K) ∧ HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (AddMonoidHom.id (W.baseChange L).toAffine.Point - HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L) (HasseWeil.isogOneSub_negFrobenius W hq).degree ∧ HasseWeil.WeilPairing.TorsionGeometric.WeilScales (W.baseChange L) ℓ hℓF (r' • HasseWeil.WeilPairing.frobeniusHomBaseChange W p r L - s' • AddMonoidHom.id (W.baseChange L).toAffine.Point) (deg r' s').toNat) : ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r' • M - ↑s' • 1).det = ↑(deg r' s')
Apply the determinant-=-degree identity (Theorem 6.1) to \pi, 1-\pi, and
the separable pencil r\pi-s, then expand the 2\times2 determinants
(Theorem 5.4); \deg\pi=q (Definition 1.6) and
\det(I-M)=q+1-t recovers the trace.
(Positivity of the form, via the Weil pairing.) From the per-\ell Frobenius
determinant data, the Hasse quadratic form is non-negative for all (r,s):
q\,r^2 - t\,rs + s^2 \;\ge\; 0.
This discharges the geometric leaf without the characteristic-p dual-additivity wall,
using only the separable (genuine) locus.
Lean code for Theorem6.3●2 theorems
Associated Lean declarations
-
theoremdefined in HasseWeil/WeilPairing/HasseAssembly.leancomplete
theorem HasseWeil.WeilPairing.qf_nonneg_skeleton_of_weil_det_data.{u_1} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] [Fintype W.toAffine.Point] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (hres : ∀ (r s : ℤ), ¬↑(ringChar K) ∣ s → ∀ (ℓ : ℕ), Nat.Prime ℓ → ℓ ≠ ringChar K → ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r • M - ↑s • 1).det = ↑(deg r s)) (r s : ℤ) : 0 ≤ ↑(Fintype.card K) * r ^ 2 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq) * r * s + s ^ 2
theorem HasseWeil.WeilPairing.qf_nonneg_skeleton_of_weil_det_data.{u_1} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] [Fintype W.toAffine.Point] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (hres : ∀ (r s : ℤ), ¬↑(ringChar K) ∣ s → ∀ (ℓ : ℕ), Nat.Prime ℓ → ℓ ≠ ringChar K → ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r • M - ↑s • 1).det = ↑(deg r s)) (r s : ℤ) : 0 ≤ ↑(Fintype.card K) * r ^ 2 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq) * r * s + s ^ 2
**GAP-QF top leaf via the Weil pairing** (Silverman III.6.3 / V.2.3.1, the Route-2A capstone). Given the per-`ℓ` Frobenius-matrix determinant data `hres` (the output of the Weil-pairing `DET-DEG`, `det(ρ_ℓ φ) = deg φ`, for `φ ∈ {π, 1−π, rπ−s}`, on the base change of `E` to `K̄`) and a non-negative degree function `deg` realising the third determinant, the Hasse quadratic form `(#K)·r² − tr(π)·rs + s²` is non-negative for **all** `(r,s)` — exactly the conclusion the legacy `qf_nonneg_skeleton` chain targeted (retired 2026-06-11). This is the additivity-free Weil-pairing route to the GAP-QF leaf: the determinant data avoids the characteristic-`p` dual-additivity wall (the retired `genuineIsogSmulSub_degree_eq_signed`), because the per-isogeny scaling `det(ρ_ℓ φ) = deg φ` holds for every `φ` individually (Silverman III.8.6). It composes `det = deg` (`DetDeg`) with the shipped arithmetic reduction `qf_nonneg_of_frob_det_residual`. -
theoremdefined in HasseWeil/WeilPairing/HasseAssembly.leancomplete
theorem HasseWeil.WeilPairing.qf_nonneg_skeleton_of_weil_det_data_both.{u_1} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] [Fintype W.toAffine.Point] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (hres : ∀ (r s : ℤ), ¬↑(ringChar K) ∣ r → ¬↑(ringChar K) ∣ s → ∀ (ℓ : ℕ), Nat.Prime ℓ → ℓ ≠ ringChar K → ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r • M - ↑s • 1).det = ↑(deg r s)) (r s : ℤ) : 0 ≤ ↑(Fintype.card K) * r ^ 2 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq) * r * s + s ^ 2
theorem HasseWeil.WeilPairing.qf_nonneg_skeleton_of_weil_det_data_both.{u_1} {K : Type u_1} [Field K] [Fintype K] [DecidableEq K] (W : WeierstrassCurve K) [WeierstrassCurve.IsElliptic W.toAffine] [Fintype W.toAffine.Point] (hq : 2 ≤ Fintype.card K) (deg : ℤ → ℤ → ℤ) (hdeg_nonneg : ∀ (r s : ℤ), 0 ≤ deg r s) (hres : ∀ (r s : ℤ), ¬↑(ringChar K) ∣ r → ¬↑(ringChar K) ∣ s → ∀ (ℓ : ℕ), Nat.Prime ℓ → ℓ ≠ ringChar K → ∃ M, M.det = ↑↑(Fintype.card K) ∧ (1 - M).det = ↑(↑(Fintype.card K) + 1 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq)) ∧ (↑r • M - ↑s • 1).det = ↑(deg r s)) (r s : ℤ) : 0 ≤ ↑(Fintype.card K) * r ^ 2 - HasseWeil.isogTrace (HasseWeil.frobeniusIsog W) (HasseWeil.isogOneSub_negFrobenius W hq) * r * s + s ^ 2
**GAP-QF top leaf via the Weil pairing, coprime-BOTH form** (reviewer round-23, Route B). Identical to `qf_nonneg_skeleton_of_weil_det_data` but requesting the per-`ℓ` Frobenius det data only on the locus `{p ∤ r ∧ p ∤ s}` (both coordinates coprime to `p = char K`). This is exactly the locus on which the Weil-pairing pencil scaling for `rπ − s` is available **without** the inseparable `p ∣ r` geometric input (the last pencil `sorry`). The discriminant lift is the stronger `qf_nonneg_of_frob_det_residual_both`.
On the separable locus \det(rM-sI) = \deg(r\pi-s) \ge 0 reduces the form modulo every
\ell \ne p to a degree (Theorem 6.2); since this holds for infinitely many
\ell the integer form is \ge 0 on the genuine locus, and the discriminant lemma
(Theorem 5.3) extends it to all (r,s).