Replace drift-prone test/crate counts with shape descriptions in map/ROADMAP.md and three jouleclaw crate READMEs so the repo passes scripts/check-no-vanity-metrics.sh (the "describe the shape, not the size" rule). No content meaning lost — "green / zero warnings" signals retained. Co-Authored-By: Claude Opus 4.8 <[email protected]>
1.6 KiB
jouleclaw-oracle-lean
Scope: jouleclaw-oracle::Oracle impl backed by a Lean 4
toolchain. The candidate's content is written to a temp file;
lean is invoked; exit code maps to Verdict { Pass | Fail }.
Relation to jouleclaw-formalize
These two crates are complementary, not duplicative. They gate different stages of the same proof chain:
-
Informal claim → Lean source (translation): the faithfulness gate.
jouleclaw-formalize::FaithfulnessCheckerverifies that the Lean encoding actually expresses the English claim the human intended. Without this, you can rigorously prove the wrong theorem. -
Lean source → exit code (compilation): the correctness gate. This crate's
LeanOracle::verifyinvokes the compiler and treatsexit 0as proof acceptance.
A production proof-carrying-code pipeline runs BOTH:
claim --[jouleclaw-formalize]--> Lean source --[jouleclaw-oracle-lean]--> Verdict
^ ^
faithfulness compiler exit
If you skip jouleclaw-formalize, the Verdict::Pass from this
crate means "this Lean source compiles" — not "the Lean source
proves the claim the user actually made." That distinction is
the same distinction the AlphaProof / AlphaGeometry literature
makes: compiler feedback only rules out hallucinations if the
formalization is faithful.
What ships
LeanOracle(Oracle trait impl)LeanOracleConfig{ toolchain, timeout, workdir, extra_flags }LeanOracleError{ ToolchainMissing | Io | Timeout }- Mock-lean test harness (no real Lean install required)