lfglabs-dev / lfglabs-dev/verity

proof(L2): Tier 4 — external calls & low-level mechanics (call frames, returndata, ECM)

Open
#2,084 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

P3: deferred proof
Dominant language
Lean
Stars
148
Forks
20
Avg merge
1d 14h
Merged PRs (30d)
29

Description

Child of #1723 (Tier 4). Most complex tier; scheduled after Tiers 1–3/5 so it can reuse the storage + ABI lemma libraries.

Goal

Eliminate stmtTouchesUnsupportedCallSurface, stmtTouchesUnsupportedForeignSurface, stmtTouchesUnsupportedLowLevelSurface: low-level call/staticcall/delegatecall, returndataSize/returndataCopy/returndataOptionalBoolAt, extcodesize, calldatacopy, revertReturndata, externalCallBind, ecm, externalCall.

Strategy

  1. Model external calls as opaque state transitions with pre/post conditions (matching the existing ECM assumption pattern)
  2. Prove the compiled Yul call sequence satisfies those pre/post conditions
  3. External contract behavior stays an assumption (cannot prove other contracts correct)

Done when

  • The three call/foreign/low-level surfaces removed/always-false
  • 0 sorry, make check green, no differential-test regressions

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the parent issue #1723 and the existing ECM assumption pattern, then trace the three unsupported-surface checks and the compiled Yul call sequence for call, returndata, calldata, and external-call operations. The work is complete when those surfaces are removed or always false, there are 0 sorry declarations, make check is green, and differential tests have no regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain
Domain
blockchain, compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.