Definitions/Def_Polynomial_DeuringPolynomial.lean
The Deuring polynomial of a natural number
This module introduces a single object, Polynomial.deuringPolynomial, which attaches to a natural number q an element of \mathbb{Z}[X]. Writing m = (q-1)/2 for the truncated natural-number quotient of the truncated predecessor q-1 (so m = (q-1)/2 exactly when q is odd, m = 0 for q \in \{0,1,2\}), the definition is the finite sum
H_q(X) \;=\; \sum_{i=0}^{m} \binom{m}{i}^{2} X^{i},
the i-th coefficient being the integer \binom{m}{i}^2, obtained as the square of the binomial coefficient \binom{m}{i} viewed in \mathbb{Z}, and the index i running over \{0, 1, \dots, m\}. Thus the polynomial is monic of degree m, has constant term 1, is palindromic, and specialises at X = 1 to \binom{2m}{m}.
Two points about the shape of the definition are worth noting. First, the polynomial is indexed by q rather than by m: the passage from q to m = (q-1)/2 is built into the definition, so that statements about H_q for an odd prime q can be made directly in terms of q. Second, the definition uses natural-number subtraction and division, so it returns a well-defined integer polynomial for every natural number q, with no primality or parity hypothesis; for even q the value is whatever the truncated arithmetic produces rather than anything of classical significance. No supersingularity property is part of the definition: deuringPolynomial is purely the above binomial-square generating polynomial, and the classical characterisation of its roots modulo q is the content of separate theorems.
Relation to Mathlib
Mathlib has no Deuring (Hasse) polynomial for the Legendre family; this is the project's own definition, built from Mathlib's Polynomial and Nat.choose.
Where it is used
Modulo an odd prime q, H_q is the classical Hasse polynomial of the Legendre family: the curve y^2 = x(x-1)(x-\lambda) in characteristic q is supersingular precisely when H_q(\lambda) = 0. The polynomial is therefore the basic tool for the characteristic-q analysis of supersingular elliptic curves and for counting supersingular invariants.
References
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986, Theorem V.4.1(b)
- R. Hartshorne, Algebraic Geometry, Graduate Texts in Mathematics 52, Springer, 1977, Exercises IV.4.21–4.23
- D. Husemöller, Elliptic Curves, Graduate Texts in Mathematics 111, Springer, 1987, Chapter 13, §3
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 13 lines
- 1 declarations
- used in the statements of 20 theorems and imported by 25 proofs
- imports 0 definition modules
Source file: Definitions/Def_Polynomial_DeuringPolynomial.lean
Declarations
Source
import Mathlib set_option autoImplicit false open Polynomial namespace Polynomial noncomputable def deuringPolynomial (q : ℕ) : ℤ[X] := ∑ i ∈ Finset.range ((q - 1) / 2 + 1), C ((((q - 1) / 2).choose i : ℤ) ^ 2) * X ^ i end Polynomial
Statements phrased using this module (20)
- Eichler–Deuring mass formula in Hasse-invariant form
ModularCurve.sum_inv_jWidth_of_ssJSetHasse19 below · depth 15 - Hasse-supersingular j-set as image of Deuring roots
ModularCurve.ssJSetHasse_eq_image_legendreJ_toFinset6 below · depth 16 - Eichler–Deuring mass formula in Legendre–Deuring form
ModularCurve.sum_inv_jWidth_of_deuringPolynomial11 below · depth 16 - The Hasse invariant has weight q-1
WeierstrassCurve.hasseInvariant_variableChange0 below · depth 16 - Hasse-supersingular j-invariants are the j(λ) with H_q(λ)=0
ModularCurve.ssJSetHasse_eq_image_legendreJ5 below · depth 17 - The Deuring polynomial has (q-1)/2 distinct roots in characteristic q
Polynomial.card_roots_toFinset_deuringPolynomial_map0 below · depth 17 - Value at 1 of the Deuring polynomial mod q
Polynomial.eval_one_deuringPolynomial_map0 below · depth 17 - Functional equation H_q(1-t)=(-1)^m H_q(t) in characteristic q
Polynomial.eval_one_sub_deuringPolynomial_map0 below · depth 17 - The Deuring polynomial has constant term 1
Polynomial.eval_zero_deuringPolynomial_map0 below · depth 17 - Self-reciprocity of the Deuring polynomial
Polynomial.pow_mul_eval_inv_deuringPolynomial_map0 below · depth 17 - Degree of the Deuring polynomial over any field
Polynomial.natDegree_deuringPolynomial_map0 below · depth 18 - Separability of the Deuring polynomial in characteristic q
Polynomial.separable_deuringPolynomial_map0 below · depth 18 - Hasse invariant of the Legendre curve via the Deuring polynomial
WeierstrassCurve.hasseInvariant_legendreCurve0 below · depth 18 - Finiteness of the Hasse-supersingular j-invariants
ModularCurve.ssJSetHasse_finite6 below · depth 19 - Kronecker remainder non-vanishing at supersingular λ-values
ModularCurve.eval_lambdaKroneckerRemainder_ne_zero184 below · depth 22 - Supersingular Legendre parameter is a root of the Deuring polynomial
ModularCurve.deuringPolynomial_eval_eq_zero_of_exists_mem_ssJSet16 below · depth 23 - Kronecker remainder is nonzero at supersingular λ-points
ModularCurve.eval_lambdaKroneckerRemainder_ne_zero_of_deuringPolynomial169 below · depth 23 - Wronskian closed form for the λ-line Kronecker remainder
ModularCurve.lambdaKroneckerRemainder_frobeniusGraph_ode167 below · depth 24 - H_q(16λ)² (θλ)^{q-1}=(λ(1-16λ))^{q-1} in characteristic q
ModularCurve.deuringPolynomial_sq_mul_thetaL_lambda_pow163 below · depth 25 - Level-two Deuring polynomial identity in characteristic q
ModularCurve.delta_pow_mul_deuringPolynomial_lambda_pow_twelve84 below · depth 26