|
|
635d83a90d
|
fix(transform): rewrite CharacterTransform.lean — 0 native_decide, 0 sorries, 0 axioms
Replaced native_decide with:
- decide (finite enumeration of 4096 Sidon quadruples)
- fin_cases i <;> decide (8×4 character computation)
- norm_num (integer arithmetic)
- omega (integer inequalities)
Proofs:
§1: sidonLabels8_is_sidon — decide (8⁴ = 4096 cases)
§2: charVec_range — omega (range checks)
§3: gram_self/gram_adjacent/gram_cross_pair — fin_cases + decide
§4: cartanWeight — structural equalities (rfl, simp)
§5: block_eigenvalues — norm_num
§6: spectral_gap_chain — norm_num
Clean chain: Sidon → Z₂⁴ character → Cartan → gap. All ℤ/ℚ.
|
2026-06-30 20:32:51 -05:00 |
|
|
|
039fddf4b2
|
feat(transform): CharacterTransform.lean — complete proof chain from Sidon to gap
Proof chain:
§1: sidonLabels8 is a Sidon set (native_decide, 8⁴ = 4096 quadruples)
§2: charVec in {-1, 0, 1} — integer character vectors
§3: cartanGram — self=1, adj=-1, cross=0 (native_decide)
§4: cartanWeight — 273/256/0 (relation to Gram matrix)
§5: block_eigenvalues — λ₁=529, λ₂=17 (norm_num)
§6: spectral_gap_chain — σ=39/256, τ=1/7, ∆=17/1792 (norm_num)
96 lines, 0 sorries, 0 axioms.
Zero floats — all arithmetic in ℤ and ℚ.
All proofs use native_decide (for finite sets) and norm_num (for arithmetic).
|
2026-06-30 20:31:51 -05:00 |
|