WP1 1.1 — norm transfer for the Hilbert symbol #
The Hilbert symbol (a, b)_k depends on b only through its class in kˣ / kˣ², but in the
form used later (the descent in the proof of quadratic reciprocity) the input is not a square
multiple of b but a norm from k(√a): we are handed t with t ^ 2 - a = b * b'.
Geometrically, t + √a has norm t ^ 2 - a = b * b' in k(√a), so if b is a norm then so is
b' (divide the norm identity by b), and conversely. Since a nonzero nonsquare a satisfies
(b, a)_k = 1 exactly when b is a norm from k(√a), the two symbols agree.
If t ^ 2 - a = b * b' with b and b' nonzero, then (a, b)_k = (a, b')_k: the two
second arguments differ by the norm of t + √a in k(√a), and being a norm from k(√a) is
invariant under multiplication by a square class, in particular under b ↦ (t² - a) / b.
WP1 1.4 — the squarefree normal form #
Every nonzero integer is a squarefree integer times a nonzero square, and the same holds for every nonzero rational after clearing denominators.
WP1 1.3 — combining the local congruences by CRT #
If t ^ 2 ≡ a (mod p) is solvable for every prime p ∣ b with b squarefree, then it is
solvable modulo b, and the solution can be chosen in the balanced range 2 |t| ≤ |b|.
The balanced representative is Int.bmod, which preserves the congruence and satisfies the
bound.
CRT plus a size bound. For squarefree b, if t ^ 2 - a is divisible by every prime
factor of b, then some residue class t satisfies b ∣ t ^ 2 - a and 2 * |t| ≤ |b|.
WP1 1.2 — the local symbol being 1 forces a square residue #
If (a, b)_p = 1, b is squarefree and p ∣ b, then a is a square modulo p. The case
p ∣ a is trivial (t = 0), and p = 2 follows from a ^ 2 ≡ a (mod 2) (t = a). For odd
p with p ∤ a, the integer b has p-adic valuation 1 (squarefree plus p ∣ b), so
its norm is p⁻¹, while p ∤ a makes a a unit of ℤ_[p]. Serre's case 10 formula then
reads
(a, b)_p = (a / p), the quadratic character of a; being 1 it says a is a square mod p,
and that square lifts back to an integer t with p ∣ t ^ 2 - a.
Local square residue. If the local Hilbert symbol (a, b)_p equals 1 for a squarefree
b divisible by p, then a ≡ t ^ 2 (mod p) for some integer t.
WP1 1.5 — the integral descent (Legendre's theorem) #
The local–global principle for the Hilbert symbol at the integral place (Serre, Cours
d'arithmétique, IV §3.2, Theorem 8): for squarefree integers a, b, if (a, b)_v = 1 at
every place v — every prime and the real place — then (a, b)_ℚ = 1. The argument is an
elementary descent on
|a| + |b|: by symmetry assume |a| ≤ |b|; for |b| ≤ 1 all cases are immediate, while for
|b| ≥ 2 CRT (exists_sq_mod_squarefree) produces t with t ^ 2 ≡ a (mod b), the size bound
2|t| ≤ |b| makes b' = (t ^ 2 - a) / b strictly smaller than b, the norm-transfer lemma
hilbertSym_eq_of_sq_sub_eq_mul moves every local hypothesis from b to b', and stripping the
square class of b' (exists_squarefree_mul_sq_int) lets the induction hypothesis finish.
Integral descent. If the Hilbert symbol (a, b)_v equals 1 at every finite place and
at the real place, for squarefree integers a, b, then (a, b)_ℚ = 1.
WP1 1.6 — the rank-three local–global principle #
With legendre_int in hand we can discharge the hypothesis that RankThree.lean isolated:
a global Hilbert symbol (A, B)_ℚ is 1 as soon as all its localizations are. The reduction
from arbitrary nonzero A, B to squarefree integers is the square-class normal form 1.4, and
the local hypotheses are moved along the same square factors by hilbertSym_mul_square_eq.
Legendre's theorem / Hasse norm theorem for ℚ(√B). If (A, B)_v = 1 at every place
v of ℚ (every prime p and v = ∞), then (A, B)_ℚ = 1.
Rank-three local–global principle (unconditional). A nondegenerate quadratic form of
rank three over ℚ that is isotropic over every completion is isotropic over ℚ.