Skip to content

docs: Fix misleading axiom justification — only IR eval is partial#198

Merged
Th0rgal merged 1 commit into
mainfrom
fix/axiom-docs-partiality-correction
Feb 16, 2026
Merged

docs: Fix misleading axiom justification — only IR eval is partial#198
Th0rgal merged 1 commit into
mainfrom
fix/axiom-docs-partiality-correction

Conversation

@Th0rgal
Copy link
Copy Markdown
Member

@Th0rgal Th0rgal commented Feb 16, 2026

Summary

  • AXIOMS.md: Correct axiom WIP: maxStore example + stdlib slot helpers #1 and Wip/edsl maxstore stdlib #2 descriptions — evalIRExpr is partial, but evalYulExpr is total (structural recursion). The previous claim that "both are partial" was wrong.
  • StatementEquivalence.lean: Fix inline axiom docstring with accurate partiality description
  • CONTRIBUTING.md: Fix example axiom comment
  • YulGeneration/README.md: Fix axiom summary paragraph

Why this matters

The misleading documentation overstated the difficulty of eliminating these axioms. Since only the IR evaluator needs refactoring (the Yul side is already total), the elimination effort is ~300 LOC instead of the previously estimated ~500+. This is important for anyone planning trust-reduction work on the codebase.

Addresses issue #160.

Test plan

  • CI build passes (docs-only change, no code modifications)
  • Verify the factual claim: grep -n "partial def evalYulExpr" Compiler/ should return nothing (confirming evalYulExpr is total)

🤖 Generated with Claude Code


Note

Low Risk
Docs-only changes that don’t affect proof logic or runtime behavior; risk is limited to potential inaccuracies in the updated explanations.

Overview
Updates axiom documentation (in AXIOMS.md, Compiler/Proofs/YulGeneration/StatementEquivalence.lean, Compiler/Proofs/YulGeneration/README.md, and CONTRIBUTING.md) to fix a factual error: only evalIRExpr/evalIRExprs are partial/opaque to Lean, while evalYulExpr/evalYulExprs are total via well-founded recursion.

Reframes the soundness and axiom-elimination guidance accordingly, stating that removing the axioms would require refactoring only the IR evaluator (and related helpers like evalIRCall) and revising the estimated effort from ~500 LOC to ~300 LOC.

Written by Cursor Bugbot for commit 4e5c6e7. This will update automatically on new commits. Configure here.

…ssue #160)

AXIOMS.md, StatementEquivalence.lean, CONTRIBUTING.md, and
YulGeneration/README.md all claimed that "both evalIRExpr and evalYulExpr
are partial functions." In fact, only evalIRExpr is partial — evalYulExpr
uses structural recursion and is total.

This matters because:
- The elimination strategy is simpler than documented: only the IR
  evaluator needs refactoring (~300 LOC, not ~500+)
- The Yul side already demonstrates the fuel-based pattern to follow
- The trust surface is smaller than previously stated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dumbcontracts Ready Ready Preview, Comment Feb 16, 2026 2:19am

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants