Elementary identities, the norm-form layer, and parity reduction #
This file proves the B7′-2 component of hilbertSymbol_dyadic. It supplies, in
namespace GQ2.HilbertSymbol, the elementary Hilbert-symbol algebra the later engines
(B7′-3/4/5) rely on:
- Elementary identities — twelve definition-level theorems (the base definitions in
GQ2/HilbertSymbol.leanare unchanged): the symmetry / self-negation / square-class lemmas forIsHilbertSolvableandhilbertSymbol, and theε/ωresidue homomorphism + table facts. Added:hilbertSymbol_mul_sq_right(square-class invariance on the right, viacomm) andhilbertSymbol_isSquare_left(a square first slot ⇒ symbol1). - The norm-form characterization
isHilbertSolvable_iff(↔ IsSquare a ∨ b ∈ {s² − a t²}), the Brahmagupta identity (the norm set is multiplicatively closed), and the keyhilbertSymbol_neg_mul_right : (a, -(a·b)) = (a, b)— the elementary identity that collapses the(1,1)parity family onto(0,1), so the leaves live at mod 8 (no mod-16 blowup). - Parity reduction
symbol_zpow_reduce(2^α = 2^(α%2)·(2^(α/2))²) and the residue-dispatch helpertoZModPow_unit_mem(u mod 8 ∈ {1,3,5,7}), which feed the final leafrcases.
Placement. It imports GQ2.HilbertSymbol only (Mathlib-only, upstream of
Foundations/Axioms.lean). The GQ2.DyadicSquares import (B7′-1's Hensel square criterion) is
not needed here; the necessity and sufficiency engines import it directly.
Restored elementary identities (definition-level; from 2a238af^) #
The defining locus is symmetric: swap the roles of X and Y.
a X² + (-a) Y² = Z² has the nontrivial solution (1, 1, 0).
Rescaling the first slot by a nonzero square does not change the locus (X ↦ c X).
Symmetry of the Hilbert symbol: (a, b)₂ = (b, a)₂.
(a, -a)₂ = 1.
Square-class invariance in the first slot: (a c², b)₂ = (a, b)₂.
Square-class invariance in the second slot: (a, b c²)₂ = (a, b)₂ (via comm).
A square first slot gives symbol 1: witness (1, 0, c) with a = c².
On the unit residues {1,3,5,7} ⊂ ℤ/8, ε is additive.
On the unit residues {1,3,5,7} ⊂ ℤ/8, ω is additive.
ε is a homomorphism ℤ₂ˣ → 𝔽₂: ε(uv) = ε(u) + ε(v).
ω is a homomorphism ℤ₂ˣ → 𝔽₂: ω(uv) = ω(u) + ω(v).
Residue table for ε: ε ≡ 0 on {1, 5} (≡ 1 mod 4), ε ≡ 1 on {3, 7} (≡ 3 mod 4).
Residue table for ω: ω ≡ 0 on {1, 7} (≡ ±1 mod 8), ω ≡ 1 on {3, 5}
(≡ ±3 mod 8).
The norm-form characterization, Brahmagupta, and the (1,1)-family reduction #
hilbertSymbol is +1 exactly when the ternary form is solvable; solving for b when y ≠ 0
(and for a when y = 0) turns this into membership of b in the set of norms {s² − a t²} from
ℚ₂(√a) (or a being a square). The norm set is multiplicatively closed (Brahmagupta), contains
-a (= 0² − a·1²), and is closed under division by squares — the three facts that make
(a, -(a·b)) = (a, b).
Norm-form characterization: the form a X² + b Y² = Z² has a nontrivial ℚ₂-zero iff a
is a square or b is a norm s² − a t² from ℚ₂(√a).
Brahmagupta: the norm set {s² − a t²} is closed under multiplication.
The (1,1)-family killer: (a, -(a·b))₂ = (a, b)₂. Both -(a·b) and b differ by the
norm -a, and the norm set is multiplicatively closed and square-divisible — so b is a norm iff
-(a·b) is. This collapses the (1,1) parity family onto (0,1), keeping all leaves at mod 8.
Parity reduction and residue dispatch #
Parity split of the 2-power slot: 2^α = 2^(α mod 2) · (2^(α / 2))², so the symbol only
sees α mod 2 after square-class invariance.
Residue dispatch: the mod-8 residue of a 2-adic unit is one of {1,3,5,7} — the four
unit residues, over which the leaf rcases runs.
Coercion helpers for the leaf engines (shared by B7′-3 / B7′-4) #
The axiom's arguments are the unit2/unitCoe wrappers; the leaf proofs (necessity via
not_isHilbertSolvable_of_mod, sufficiency via explicit witnesses) work with raw ℤ_[2] → ℚ_[2]
coercions. These two rfl-lemmas bridge them. Owned by B7′-3 per
docs/orchestration/b7prime-b34-coordination.md; B7′-4 imports (does not edit) this file.
unitCoe u, valued in ℚ₂, is the double coercion ℤ₂ˣ → ℤ₂ → ℚ₂ of u.