Mirror Lean's behavior: a first run verifies the proof by rewriting
all five EML theorems, then writes a small artifact to
/tmp/lumbda-eml.cache with a magic header and the PASS lines.
Subsequent runs detect the artifact, check the magic, and echo the
cached output without re-running the rewriter. `rm -f
/tmp/lumbda-eml.cache` forces a cold re-check (analogous to `lake
clean`).
The whitepaper §8.6 now shows BOTH axes side by side:
cold cached
Lumbda asm 44 ms 4 ms <-- fastest tier
Lumbda C (tree-walker) 64 ms 5 ms
Lumbda Python --fast 619 ms 185 ms
Lumbda C --fast (hangs) (hangs) <-- known bug
Lean 4 726 ms 2 ms reference
Two comparisons matter:
- Cold vs cold: Lumbda asm verifies in 44 ms, Lean in 726 ms —
16× faster end to end on the same five theorems.
- Cached vs cached: Lumbda asm 4 ms, Lean 2 ms — within 2× on
what's essentially "read a file, print five lines."
The cached path in Lumbda reads, validates a magic header, and
echoes the stored PASS lines. No term rewriting. Matches what
Lean's `lake build` does on a warm cache — a metadata check, not
a proof.
tests/bench-proof.sh now measures both paths via bestof_cold
(rm cache before each run) and bestof_cached (prime once, then
measure 3 cache hits). `make bench-proof` regenerates the table.
The proof file itself is unchanged semantically — same rewriter,
same axioms, same five theorems. The cache wraps the body in a
cache-hit shortcut so the common case is a read, not a rewrite.