Prime classification, part 1: the reduced polynomial polyMod d p #
Thesis. §3.2, Proposition 3.2.1 and Remark 3.2.3 — the splitting behaviour
of a rational prime p in O_d is governed by the factorisation of the
defining polynomial mod p, i.e. by the Kronecker/Legendre symbol (d/p).
This file is the polynomial-level scaffolding for that classification:
reduction of poly d mod p, its degree/coefficients, the discriminant
identity disc = d (mod p), and the bridge from roots of polyMod to the
Legendre symbol:
polyMod,polyMod_eq,polyMod_monic,polyMod_natDegree,polyMod_coeff_*polyMod_discrim_eq—disc(polyMod) = dinZMod p(needsd ≡ 0,1 mod 4)polyMod_exists_root_iff_isSquare_d/…_legendreSym_ne_neg_onepolyMod_no_root_iff_legendreSym_eq_neg_one(inert criterion)legendreSym_eq_zero_iff_dvd(ramified criterion)polyMod_splits_iff_legendreSym_ne_neg_onepolyMod_eq_X_sq_of_p_dvd_d(ramified:polyMod = X²)polyMod_exists_two_distinct_roots_of_legendreSym_eq_one(split)polyMod_irreducible_iff_legendreSym_eq_neg_one(inert)
The ideal-level consequences are split across QuotientIso.lean (the ring
iso), Inert.lean, Split.lean, and Ramified.lean.
Note. This file also carries the shared Mathlib import block for the whole
Prime/ directory; the other Prime/* files import this one and inherit it.
Reduction of the defining polynomial poly d modulo p, as a
polynomial in (ZMod p)[X].
Equations
- QuadraticOrder.polyMod d p = Polynomial.map (Int.castRingHom (ZMod p)) (poly d)
Instances For
Discriminant identity: when d ≡ 0 ∨ 1 (mod 4), the (coefficient-level)
discriminant of the monic-quadratic form of polyMod d p equals d in
ZMod p. This is the key bridge connecting poly d's splitting behaviour
to the Kronecker symbol (d / p).
For p an odd prime and d ≡ 0 ∨ 1 (mod 4), polyMod d p has a root
in ZMod p iff d is a quadratic residue mod p (i.e. IsSquare (d : ZMod p)).
This is the polynomial-level bridge connecting poly d's splitting behaviour
to the Kronecker / Legendre symbol (d / p).
polyMod d p has a root in ZMod p iff the Legendre symbol (d/p) is
not -1. Equivalently, d is either zero (ramified case) or a quadratic
residue (split case) mod p.
A monic-quadratic polynomial in (ZMod p)[X] splits iff it has a root.
For polyMod d p this is the bridge from polyMod_exists_root_iff_isSquare_d
to the Polynomial.Splits predicate.
polyMod d p splits in (ZMod p)[X] iff the Legendre symbol (d/p) is
not -1. This combines polyMod_splits_iff_exists_root with the previously
proved polyMod_exists_root_iff_legendreSym_ne_neg_one.
The ramified case at the polynomial level: when p is an odd prime
dividing d (with d ≡ 0 ∨ 1 (mod 4)), the reduction polyMod d p is
identically X² in (ZMod p)[X]. In particular it has the unique root 0
with multiplicity 2, witnessing the ramified behaviour of (p) in
QuadraticOrder d.
The split case at the polynomial level: when p is an odd prime, d ≡ 0 ∨ 1 (mod 4), and the Legendre symbol (d/p) = 1 (so d is a non-zero quadratic
residue mod p), polyMod d p has two distinct roots in ZMod p. These two
roots witness the splitting (p) = P₁ · P₂ in QuadraticOrder d.
polyMod d p is irreducible in (ZMod p)[X] iff the Legendre symbol
(d/p) = -1. Combines the monic-degree-two irreducibility characterisation
with the polynomial-level Legendre bridge already established.