Local Hilbert symbols at the completions of ℚ #
This file collects the place-by-place facts about the Hilbert symbol (·,·)_k for
k = ℚ_[p] (and, later, ℝ). The first item is the bilinearity of the symbol in its
first argument, HasBilinHilbertSym ℚ_[p], which makes the generic rank criteria of
RankCriteria.lean available at every p-adic place.
The two-adic case is imported from HilbertSymbol/Two.lean; for odd p the result is
hilbertSym_padic_odd_mul_left.
Bilinearity of the p-adic Hilbert symbol #
The Hilbert symbol on the p-adic numbers is bilinear in its first argument.
For p = 2 this is instHasBilinHilbertSym from HilbertSymbol/Two.lean; for odd p it
is hilbertSym_padic_odd_mul_left.
The rank-two representation criterion #
A nonzero vector of the plane ⟨a, b⟩ represents x exactly when the ternary form
⟨a, b, -x⟩ is isotropic.
This is the bridge between representability by a rank-two form and the ternary isotropy
criterion of RankCriteria.lean. The hard case is when the isotropic vector of ⟨a, b, -x⟩
has last coordinate 0: then ⟨a, b⟩ is itself isotropic, and since it is nondegenerate it
represents every value.
Nontriviality of x ↦ (x, c) for a nonsquare c #
For a nonsquare c ≠ 0 the character x ↦ (x, c)_k is nontrivial. Over ℝ this is
immediate from hilbertSym_real_eq; over ℚ_[p] it is read off Serre's closed formulas,
using the decomposition c = p ^ α · u.