Skip to content

proof(ir): guarded-pipeline inversion lemmas (lane 2.2 pipeline closure) - #2298

Merged
Th0rgal merged 1 commit into
mainfrom
proof/2087-guarded-compile-inv
Aug 12, 2026
Merged

proof(ir): guarded-pipeline inversion lemmas (lane 2.2 pipeline closure)#2298
Th0rgal merged 1 commit into
mainfrom
proof/2087-guarded-compile-inv

Conversation

@Th0rgal

@Th0rgal Th0rgal commented Aug 12, 2026

Copy link
Copy Markdown
Member

Completes the consumable chain: compileFunctionSpec_body_shape (loads-then-body by construction, via do-chain inversion) and compileGuardedFunctionSpec_inv (the pipeline is exactly compile-then-attach). Together with attachNonReentrantGuard_exec (#2297), the statement compile → attach → execute ≡ guarded is now fully machine-checked and mechanically applicable from any compileGuardedFunctionSpec = .ok hypothesis — which is precisely what the whole-contract preservation theorems hold at their per-function sites.

Validation: full lake build OK, make check all passed, no sorry/admit/new axiom.


Note

Low Risk
Proof-only additions with no runtime, auth, or deployment behavior changes; risk is limited to formal verification maintenance and axiom inventory bookkeeping.

Overview
Adds Compiler/Proofs/IRGeneration/GuardedCompile.lean with two inversion lemmas that close the guarded compilation proof chain for per-function sites in whole-contract preservation.

compileFunctionSpec_body_shape shows any successful compileFunctionSpec output has irFn.body = genParamLoads spec.params ++ bodyStmts, by case-splitting validation, returns, and statement compilation on the Except.ok hypothesis.

compileGuardedFunctionSpec_inv shows compileGuardedFunctionSpec = .ok fn iff there exists an intermediate irFn with compileFunctionSpec = .ok irFn and attachNonReentrantGuard … = .ok fn, matching the real pipeline definition.

PrintAxioms.lean imports the module and registers both theorems (public count 4382 → 4384).

Reviewed by Cursor Bugbot for commit 318c110. Bugbot is set up for automated code reviews on this repo. Configure here.

compileFunctionSpec_body_shape (the compiled body always has the
loads-then-body shape, by do-chain inversion) and
compileGuardedFunctionSpec_inv (the guarded pipeline is exactly
compile-then-attach). With attachNonReentrantGuard_exec (#2297), any
whole-contract consumer can now mechanically derive the guarded
execution behavior from compileGuardedFunctionSpec = .ok fn — the
pipeline-level story compile → attach → execute ≡ guarded is closed.
@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
verity Ready Ready Preview Aug 12, 2026 5:04pm

Request Review

@Th0rgal
Th0rgal merged commit 8d7c181 into main Aug 12, 2026
1 of 2 checks passed
@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_de2b7d47-c508-4af9-af09-6795f7780f4d)

@Th0rgal
Th0rgal deleted the proof/2087-guarded-compile-inv branch August 12, 2026 17:04

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenCodeReview first-pass review

OCR did not run — this diff has no OCR-supported files. Not a review outcome.

No changed files matched OCR include rules.

OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: no-supported (router-v10)
  • Changed files: 0 supported / 0 total; Lean 0, trust docs 0, workflow/scripts 0, contracts 0, docs 0
  • Changed lines: 0 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status no-supported; comments 0; files 0; tokens 0; tool calls 0; warnings 0; duration 0s

Pilot mode: advisory only. Codex Review remains the merge gate.

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.

1 participant