Stage G — the Dickson zero-count of a nonsingular F₂ quadratic form #
This file closes the two finite-field Gauss-sum axioms of
Quadratic/GaussSign.lean (prop:candidatezero / prop:localzero):
candidate_base_zeroCountandq2_local_base_zeroCount, both in the consistent existential form∃ ram, (numZeros q : ℤ) = baseZeroCount ram (finrank V)for a nonsingularQuadF2formq.
Both axioms are the same statement (the candidate qc and the local ql are just
two instances of an arbitrary nonsingular F₂ quadratic space), so a single general
theorem — nonsingular_numZeros_dickson — discharges both. This is the classical
Dickson / Arf count: a nonsingular quadratic form of dimension d over F₂ has
2^{d-1} ± 2^{d/2-1} zeros, the sign being (-1)^{Arf}. It is finite-field linear
algebra (NOT local CFT), proven here sorry-free with no new axioms.
Method: the Gauss sum (avoids an explicit Witt/Arf decomposition) #
Let χ : F₂ → ℤ be the sign character (χ 0 = 1, χ 1 = -1; multiplicative,
χ(a+b) = χ a · χ b), and let D := ∑_{v} χ(q v) be the Gauss sum. Two clean
identities pin down the zero count:
- Counting.
χ(q v) = 2·[q v = 0] - 1, soD = 2·#Q⁻¹(0) - |V|, i.e.2·numZeros q = |V| + D(two_mul_numZeros). - Square.
D² = |V|(gaussSum_sq). IndeedD² = ∑_{v,w} χ(q v + q w); reindexingw = v + uand using the quadratic lawq v + q(v+u) = q u + b(v,u)givesD² = ∑_u χ(q u)·∑_v χ(b(v,u)). The inner sum is|V|whenb(·,u) ≡ 0and0otherwise (a nonzeroF₂-functional is killed by the translationv ↦ v + y,b(y,u) = 1); nonsingularity forcesb(·,u) ≡ 0 ⇔ u = 0, leaving only theu = 0term= |V|.
With |V| = 2^d (FiniteField.pow_finrank_eq_card) we get D² = 2^d, so d is even
and D = ±2^{d/2} (extracted via Nat.dvd_prime_pow); then
numZeros q = (2^d + D)/2 = 2^{d-1} ± 2^{d/2-1} = baseZeroCount ram d.
A residual edge case (reported): d = 0 #
baseZeroCount ram d = 2^{d-1} + (±1)·2^{d/2-1} uses truncated nat subtraction.
For even d ≥ 2 this equals the honest (2^d ± 2^{d/2})/2, and everything matches.
But at d = 0 (the zero space V = 0, vacuously nonsingular) it gives
baseZeroCount true 0 = 2, baseZeroCount false 0 = 0, whereas the true count is
numZeros = 1. So the verbatim axiom statement (which quantifies over all finite
V, including V = 0) is in fact FALSE at V = 0 — the existential ∃-fix removed the
old double-ram inconsistency but a d = 0 inconsistency remains (see
baseZeroCount_zero_false / dickson_count_false_at_zero below).
The fix is a single hypothesis 0 < finrank V (equivalently [Nontrivial V]), which is
automatic for the candidate/local applications (nonzero self-dual simple modules). The
main theorem therefore carries 0 < finrank V, and the drop-in corollaries
candidate_base_zeroCount_proven / q2_local_base_zeroCount_proven add [Nontrivial V]
to the verbatim axiom signature. Modulo that one instance they are the axioms and can
replace them; GaussSign.lean only needs the same [Nontrivial V] added to the two
axiom lines for a literal swap.
The sign character χ : F₂ → ℤ #
The sign character χ(0) = 1, χ(1) = -1.
Instances For
The Gauss sum and its square #
The Gauss sum D(q) = ∑_v χ(q v).
Equations
Instances For
A nonzero F₂-linear functional has vanishing character sum: translating by a y
with ℓ y = 1 flips every sign, so ∑ χ(ℓ v) = -∑ χ(ℓ v) = 0.
The Gauss sum squares to |V| for a nonsingular form (the key identity).
The counting identity #
The Gauss sum counts: D = 2·#Q⁻¹(0) - |V|.
2·numZeros q = |V| + D.
Extracting the Dickson count from D² = 2^d #
The number-theoretic core: from 2·n = 2^d + D and D² = 2^d with 0 < d, the
count n is 2^{d-1} ± 2^{d/2-1} = baseZeroCount ram d for the sign ram of D.
The Dickson zero-count theorem and the two corollaries #
The Dickson zero-count of a nonsingular F₂ quadratic form. For a nonsingular
QuadF2 V on a finite V of dimension d > 0, the number of zeros is
2^{d-1} ± 2^{d/2-1} = baseZeroCount ram d for a ram : Bool (the form's Arf type).
This is the finite-field content shared by prop:candidatezero and prop:localzero;
the proof is the Gauss-sum identity D² = |V| = 2^d together with the counting identity
2·numZeros = |V| + D (see Dickson.gaussSum_sq, Dickson.two_mul_numZeros).
The hypothesis 0 < finrank V is necessary: at d = 0 the truncated nat-subtraction in
baseZeroCount makes the statement false (the zero space has 1 zero, but
baseZeroCount ram 0 ∈ {0,2}); see dickson_count_false_at_zero.
Closes candidate_base_zeroCount (prop:candidatezero). Verbatim the axiom of
GaussSign.lean plus [Nontrivial V] (automatic for the nonzero candidate module): the
candidate base form's zero count realizes one of the two baseZeroCount values.
Closes q2_local_base_zeroCount (prop:localzero). Identical to the candidate
corollary — the local base form is just another nonsingular F₂ quadratic space, so the
"irreducible local CFT input" is in fact the same finite-field Dickson count.
The reported d = 0 edge case, rigorously #
The verbatim axioms (no Nontrivial) are refutable at V = 0.
baseZeroCount at d = 0 misses the true count 1 (nat-subtraction truncation).
The verbatim axiom statement is FALSE at V = 0. The zero space carries a
(vacuously) nonsingular QuadF2 with numZeros = 1 and finrank = 0, yet
baseZeroCount ram 0 ∈ {0,2}; so the residual d = 0 instance is outright refutable
(closure ⊆ {propext, Classical.choice, Quot.sound}), i.e. the [Nontrivial V] hypothesis
of the corollaries above is genuinely required.
The Gauss-type pinning and the §6 comparison (re-homed) #
Formerly GaussSign Parts 4–6, resting on the two zero-count AXIOMS —
which were refutable at V = 0. With the Dickson theorems above
(candidate_base_zeroCount_proven / q2_local_base_zeroCount_proven,
honest [Nontrivial V] guard) the pinning and the comparison are
axiom-free. The hcr/hlr hypotheses still carry the manuscript's
§6.3 sign statement (both base forms take V's ramification type);
their local half is the future q2_local_base_gaussType keep
(audit/BLOCKR_P6_DESIGN.md), the candidate half the P6.4–P6.7
program.
The candidate base form's zero count realizes its own Gauss
type (prop:candidatezero, now via Dickson).
The local base form's zero count realizes its own Gauss type
(prop:localzero's count clause, now via Dickson).
Equal ramification type + equal dimension force equal zero counts (re-homed helper: both counts are the shared base value).
The candidate Gauss sign equals the local Gauss sign given the
§6.3 shared-ramification input hcr/hlr (cor:sourceinterface(iv)
sign half).
Equal base determinant zero counts given shared dimension and
ramification (cor:sourceinterface(iv) numerical half).