Ramanujan Challenge Problem 2.8 Solution & Proof
Documents the radix formulation from MathPunch-FiniteState
(coq/MathPunchFiniteStateAudit/Radix.v, MathPunchFiniteState/Radix.lean), which
is the correctness obligation underneath the encoder method.
The defect, proved rather than asserted: positional evaluation is not injective
on digit strings. Both collisions are machine-checked in Coq and Lean --
eval_digits 8 [0;1] = eval_digits 8 [1], and eval_digits 8 [] = eval_digits 8
[0]. Quantified: in base 8 over lengths 0-3, 585 strings collapse onto 512
values.
Two repairs, both BIJECTIONS onto correctly stated codomains:
framing : digit strings <-> U_n {n} x [0, b^n)
verified exhaustively base 8, n=0..4 (1,8,64,512,4096; no gaps)
DFA : canonical numerals <-> N+
verified base 8 to length 5 (32767 strings, values exactly [1,8^5))
Bijectivity is the operative property, not injectivity: injectivity says
encodings do not collide, bijectivity says decoding is TOTAL on the valid
codomain. Stating the codomain as N x N would make framing merely injective;
stating it correctly makes it bijective.
Distinctiveness assessed fairly: the content is classical numeration-system
material (regular numeral languages, canonical numeration, Cobham). The
distinctive move is making it an explicitly proved prerequisite of an encoding
pipeline, with the collisions exhibited as theorems in two proof assistants.
Also flags a maintenance hazard: the DFA and toDigits exist only in Radix.lean;
Radix.v has eval_digits and framed_value alone. Lean is regenerated from coq/*.v
in that repo, so regeneration would silently erase the automaton.
Corrects NOTATION_AND_BORROWED_TERMINOLOGY.md: the blanket 'no biology claim
anywhere' disclaimer was too strong and is now scoped to this submission, since
a Lean probe elsewhere deliberately models expanded genetic alphabets (4/8/12
letters) and proves an optimality statement about them.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WY6SfRYvm8zFKMX9GcjS8u
|
||
|---|---|---|
| docs/proofs | ||
| experiments/ramanujan_28/submission | ||