Commit graph

2 commits

Author SHA1 Message Date
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