Skip to content

chore: migrate to Lean 4.31.0 - #2207

Open
Th0rgal wants to merge 69 commits into
mainfrom
codex/lean-4-31-migration
Open

chore: migrate to Lean 4.31.0#2207
Th0rgal wants to merge 69 commits into
mainfrom
codex/lean-4-31-migration

Conversation

@Th0rgal

@Th0rgal Th0rgal commented Jul 25, 2026

Copy link
Copy Markdown
Member

Summary

  • migrate all Verity package toolchains directly from Lean 4.24.0 to 4.31.0
  • repin EVMYulLean to its Lean 4.31 main commit f7e4ee0dc8f8d5265ce822a937ab5be771f182e9
  • regenerate Lake dependency locks for Lean 4.31

Validation

  • exact-head full lake build remote receipt pending (non-GPU compute)

No proof changes, disabled checks, security changes, or semantic extensions.


Note

Medium Risk
Touches many formal correctness proofs and EVM calldata bridge lemmas; risk is build breakage or subtle proof regressions, not intentional semantic changes to compilation.

Overview
Updates the project for Lean 4.31 (from 4.24), including documentation in AXIOMS.md for the reserved-scratch native_decide boundary.

Runtime / API alignment: String.mkString.ofList, string iteration via toList instead of .data, and Batteries RBMap map lemmas replaced with Std.TreeMap in end-to-end storage proofs.

Proof maintenance: Large-scale tactic fixes so the compiler correctness layer still typechecks—e.g. replacing fragile simpa with simp only + exact, unfolding Except.toOption / Option.getD around compileExpr, disjointness proofs in Frames.lean, and calldata/ByteArray lemmas rewritten around byteArrayGet? and updated ByteArray.size simp rules in the EVMYulLean native bridge.

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

@vercel

vercel Bot commented Jul 25, 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, Comment Jul 27, 2026 10:23am

Request Review

@cursor

cursor Bot commented Jul 25, 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_4840de43-6713-4630-bc03-6526fb11b607)

@github-actions

github-actions Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor
\n### CI Failure Hints\n\nFailed jobs: `build`\n\nCopy-paste local triage:\n```bash\nmake check\nlake build\nFOUNDRY_PROFILE=difftest forge test -vv\n```

@cursor

cursor Bot commented Jul 25, 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_00dc05ab-99e5-4526-b13f-521b37bd19ee)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 762b99a5e8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lake-manifest.json
Comment thread lean-toolchain

@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

🟡 Scout triage only — not a full review. 8 finding(s) (8 low); a human or Codex must still cover the unflagged hunks and proof obligations.

Large Lean diff routed to bounded packet review: 3 Lean file(s), 144 changed supported line(s). Multi-lens scout (4/4 lens(es): provenance, verification-independence, environment-determinism, proof-soundness) surfaced 8/8 packet(s) for stronger review. Scout triage success; strong packet review required. Full-file OCR was not attempted.

✅ Posted 8 inline comment(s).

OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 8 supported / 12 total; Lean 3, trust docs 0, workflow/scripts 5, contracts 0, docs 0
  • Changed lines: 144 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status scout_triage; comments 8; files 7; tokens 0; tool calls 0; warnings 1; duration 83s
  • Largest changed files: lake-manifest.json (+17/-16), packages/verity-compiler/lake-manifest.json (+17/-16), packages/verity-edsl/lake-manifest.json (+17/-16), packages/verity-examples/lake-manifest.json (+17/-16), Verity/Core/FiniteSet.lean (+4/-2)

Packet coverage

  • Packet review: enabled; selected 8/8 packet(s)
  • Scout: configured; status success; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Triaged top 8 scout-ranked packet(s); remaining changed hunks/files require Codex or human proof review, and selected packets still need strong reviewer analysis.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.
  • Covered packets:
    • Verity/Core/FiniteSet.lean:260 score 12 [lenses: proof-soundness] — hotspot path/churn; ask: After simpa unfolds FiniteAddressSet.mem and FiniteAddressSet.insert, does FiniteSet.mem_elements_insert prove the full stated iff for all Address arguments, and is this insert definition consistent with downstream uses of mem_insert?
    • Verity/Core/FiniteSet.lean:362 score 12 [lenses: proof-soundness] — hotspot path/churn; ask: Does simpa [FiniteNatSet.mem, FiniteNatSet.insert] close the exact intended theorem for all Nat arguments, with no hidden weakening or unintended rewrite?
    • lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: What changed in EVMYulLean commit f7e4ee0dc8f8d5265ce822a937ab5be771f182e9, is lfglabs-dev/EVMYulLean the intended trusted producer, and does the lakefile pin prevent branch or tag movement?
    • packages/verity-edsl/lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Does this lakefile pin match the root and all manifests, and can the srcDir ../.. path pull in unpinned source artifacts not covered by any manifest?
    • lake-manifest.json:1 score 1 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Does the full root manifest enumerate every dependency used by the proof targets, and are all rev/inputRev fields exact commit hashes from trusted sources?
    • packages/verity-compiler/lake-manifest.json:1 score 1 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Is the inherited evmyul revision identical across all packages, and can local changes in ../verity-edsl alter compiler outputs without invalidating this manifest?
    • packages/verity-edsl/lake-manifest.json:1 score 1 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Are all EDSL dependencies pinned here, and do these revisions match the root and downstream package manifests exactly?
    • packages/verity-examples/lake-manifest.json:1 score 1 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: What exactly does examples verification consume from ../verity-compiler and ../verity-edsl, and are those source trees and generated artifacts pinned by checksums or commit state outside this manifest?

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

Comment thread Verity/Core/FiniteSet.lean
Comment thread Verity/Core/FiniteSet.lean
Comment thread lakefile.lean
Comment thread packages/verity-edsl/lakefile.lean
Comment thread lake-manifest.json
Comment thread packages/verity-compiler/lake-manifest.json
Comment thread packages/verity-edsl/lake-manifest.json
Comment thread packages/verity-examples/lake-manifest.json
@cursor

cursor Bot commented Jul 25, 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_aac864aa-c251-4258-9b36-4ec87a21240f)

@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

🟡 Scout triage only — not a full review. 8 finding(s) (8 low); a human or Codex must still cover the unflagged hunks and proof obligations.

Large Lean diff routed to bounded packet review: 3 Lean file(s), 422 changed supported line(s). Multi-lens scout (4/4 lens(es): provenance, verification-independence, environment-determinism, proof-soundness) surfaced 8/8 packet(s) for stronger review. Scout triage success; strong packet review required. Full-file OCR was not attempted.

✅ Posted 8 inline comment(s).

OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 10 supported / 14 total; Lean 3, trust docs 0, workflow/scripts 7, contracts 0, docs 0
  • Changed lines: 422 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status scout_triage; comments 8; files 7; tokens 0; tool calls 0; warnings 1; duration 92s
  • Largest changed files: scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4), lake-manifest.json (+17/-16), packages/verity-compiler/lake-manifest.json (+17/-16), packages/verity-edsl/lake-manifest.json (+17/-16)

Packet coverage

  • Packet review: enabled; selected 8/8 packet(s)
  • Scout: configured; status success; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Triaged top 8 scout-ranked packet(s); remaining changed hunks/files require Codex or human proof review, and selected packets still need strong reviewer analysis.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.
  • Covered packets:
    • Verity/Core/FiniteSet.lean:260 score 12 [lenses: proof-soundness] — hotspot path/churn; ask: Why was FiniteAddressSet.insert added to the simp lemma set? Was the previous proof failing after an upstream definition change, and does unfolding insert at this point create any risk of simp loops or mask a mismatch between the stated theorem and the actual semantics of insert?
    • Verity/Core/FiniteSet.lean:362 score 12 [lenses: proof-soundness] — hotspot path/churn; ask: Is FiniteNatSet.insert a definitional or @[simp] lemma, and does adding it to the simpa set change the proof obligation in a way that FiniteSet.mem_elements_insert may no longer match? Confirm the unfolded form of insert is still compatible with the provided witness lemma.
    • lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Is f7e4ee0dc8f8d5265ce822a937ab5be771f182e9 a commit in the trusted lfglabs-dev/EVMYulLean repository, and does every manifest and audit artifact in this PR refer to the same commit?
    • packages/verity-edsl/lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Can verity-edsl resolve evmyul from any ref other than the root pinned f7e4ee0dc8f8d5265ce822a937ab5be771f182e9, and are all require lines across packages pinned to immutable commits?
    • artifacts/evmyullean_fork_audit.json:60 score 6 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Is this audit artifact replay-regenerated from the actual repository history, and does it cover every commit reachable between the old and new pinned evmyul revisions, including merge commit fc8e4788cef3af6d41a2ab5022c2c68fc107e25d?
    • scripts/generate_evmyullean_fork_audit.py:197 score 6 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Does this script enumerate all commits in the exact range 38d53df8b4488d5322894619ea8385fcbb2e6f5d..f7e4ee0dc8f8d5265ce822a937ab5be771f182e9 from the trusted repository, or can the emitted audit set be curated without detection?
    • lake-manifest.json:1 score 1 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Does this manifest pin rev and inputRev for every package, including evmyul, mathlib, local path dependencies, and toolchain-relevant inputs, and is every pinned source traceable to a trusted producer?
    • packages/verity-compiler/lake-manifest.json:1 score 1 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Do all nested manifests inherit exactly evmyul f7e4ee0dc8f8d5265ce822a937ab5be771f182e9 and the same mathlib rev, and are the ../verity-edsl path dependencies pinned by repository commit rather than mutable local state?

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

Comment thread Verity/Core/FiniteSet.lean
Comment thread Verity/Core/FiniteSet.lean
Comment thread lakefile.lean
Comment thread packages/verity-edsl/lakefile.lean
Comment thread artifacts/evmyullean_fork_audit.json
Comment thread scripts/generate_evmyullean_fork_audit.py
Comment thread lake-manifest.json
Comment thread packages/verity-compiler/lake-manifest.json
@Th0rgal

Th0rgal commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

@codex review

@cursor

cursor Bot commented Jul 25, 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_627f28f5-3c18-46bf-9155-3dfa3deebbb4)

@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

🟡 Scout triage only — not a full review. 5 finding(s) (5 low); a human or Codex must still cover the unflagged hunks and proof obligations.

Large Lean diff routed to bounded packet review: 4 Lean file(s), 429 changed supported line(s). Multi-lens scout (4/4 lens(es): provenance, verification-independence, environment-determinism, proof-soundness) surfaced 5/8 packet(s) for stronger review. Scout triage success; strong packet review required. Full-file OCR was not attempted.

✅ Posted 5 inline comment(s).

OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 11 supported / 15 total; Lean 4, trust docs 0, workflow/scripts 7, contracts 0, docs 0
  • Changed lines: 429 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status scout_triage; comments 5; files 4; tokens 0; tool calls 0; warnings 1; duration 64s
  • Largest changed files: scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4), lake-manifest.json (+17/-16), packages/verity-compiler/lake-manifest.json (+17/-16), packages/verity-edsl/lake-manifest.json (+17/-16)

Packet coverage

  • Packet review: enabled; selected 5/8 packet(s)
  • Scout: configured; status success; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Triaged top 5 scout-ranked packet(s); remaining changed hunks/files require Codex or human proof review, and selected packets still need strong reviewer analysis.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.
  • Covered packets:
    • Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean:39 score 35 [lenses: proof-soundness] — hotspot path/churn; ask: Are Compiler.Constants.evmModulus and Verity.Core.UINT256_MODULUS definitionally equal? Trace the simpa call to confirm it produces a valid proof of a < UINT256_MODULUS from ha : a < evmModulus, not a vacuous discharge. Also audit whether maxHeartbeats 400000000 hides failed or circular automation.
    • Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean:460 score 35 [lenses: proof-soundness] — hotspot path/churn; ask: What additional simp lemmas fire under simp [Fin.val_neg] that did not fire under simp only [Fin.val_neg]? Confirm none of them rely on side-conditions that are silently true or unsound for this goal context. Can the proof be restored to simp only with an explicit lemma list?
    • lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Is f7e4ee0dc8f8d5265ce822a937ab5be771f182e9 exactly the audited commit in evmyullean_fork_audit., and does the build fail if root or package lakefiles pin a different EVMYulLean ref?
    • packages/verity-edsl/lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Do root, verity-compiler, verity-edsl, and verity-examples all resolve EVMYulLean to exactly f7e4ee0dc..., and are the generated lake-manifest. files pinned consistently with the audited commit?
    • artifacts/evmyullean_fork_audit.json:60 score 6 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Does evmyullean_fork_audit. enumerate and pin every commit from 38d53df8... to f7e4ee0dc..., including merge commit fc8e4788..., with reproducible diffs/content hashes rather than summaries alone, and does CI reject a build if the pinned upstream ref is not the audited tip?

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

Comment thread Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean Outdated
Comment thread Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean Outdated
Comment thread lakefile.lean
Comment thread packages/verity-edsl/lakefile.lean
Comment thread artifacts/evmyullean_fork_audit.json
@cursor

cursor Bot commented Jul 25, 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_55285304-3f99-477f-aa66-784aea24e849)

@Th0rgal

Th0rgal commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

Current-head review disposition (05e4312): verified the two prior signed-arithmetic scout concerns are fixed in the current diff: uint-bound conversions now use explicit norm_num [Compiler.Constants.evmModulus, Verity.Core.UINT256_MODULUS] with exact ha/hb, and the broad simp [Fin.val_neg] was replaced by the targeted rw [Fin.val_neg]. The threads are outdated; no active technical issue remains from them. Also revalidated all EVMYulLean pins and deterministic audit invariants. Pending only exact-head required checks, Codex review, and the already-running non-GPU build receipts.

@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

🟡 Scout triage only — not a full review. 4 finding(s) (4 low); a human or Codex must still cover the unflagged hunks and proof obligations.

Large Lean diff routed to bounded packet review: 4 Lean file(s), 433 changed supported line(s). Multi-lens scout (3/4 lens(es): provenance, verification-independence, environment-determinism) surfaced 4/8 packet(s) for stronger review. Scout triage success; strong packet review required. Full-file OCR was not attempted.

✅ Posted 4 inline comment(s).

OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 11 supported / 15 total; Lean 4, trust docs 0, workflow/scripts 7, contracts 0, docs 0
  • Changed lines: 433 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status scout_triage; comments 4; files 4; tokens 0; tool calls 0; warnings 1; duration 126s
  • Largest changed files: scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4), lake-manifest.json (+17/-16), packages/verity-compiler/lake-manifest.json (+17/-16), packages/verity-edsl/lake-manifest.json (+17/-16)

Packet coverage

  • Packet review: enabled; selected 4/8 packet(s)
  • Scout: configured; status success; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness (1 lens(es) failed; union of the rest used); rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Triaged top 4 scout-ranked packet(s); remaining changed hunks/files require Codex or human proof review, and selected packets still need strong reviewer analysis.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.
  • Covered packets:
    • Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean:39 score 35 [lenses: environment-determinism] — hotspot path/churn; ask: Was the 400M maxHeartbeats override necessary before the dependency pin change, or was it introduced/regressed by it? Can you confirm this theorem still closes under a stricter heartbeat budget (e.g., default 200K) on both Lean 4.22 and 4.24, or does it now depend on the extreme override + the new dependency version?
    • lakefile.lean:8 score 12 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Is the lfglabs-dev/EVMYulLean fork the authoritative source, or should the pin reference an upstream repo? When the commit moves from 38d53df8 to f7e4ee0d, do ALL transitive dependencies (Mathlib, etc.) in the corresponding lake-manifest. change consistently, or can a producer swap a transitive dep without the lakefile pin or the fork audit reflecting it?
    • packages/verity-edsl/lakefile.lean:8 score 12 [lenses: provenance, environment-determinism] — hotspot path/churn; ask: Do all four lakefile.lean files (root, verity-compiler, verity-edsl, verity-examples) and their corresponding lake-manifest. files pin the exact same evmyul commit f7e4ee0d? Is there any build path where a stale or different commit could be resolved, and does the fork audit in pkt-8 cover divergent pins across packages?
    • artifacts/evmyullean_fork_audit.json:60 score 6 [lenses: provenance, verification-independence, environment-determinism] — hotspot path/churn; ask: Does the audit JSON enumerate ALL commits between 38d53df8 and f7e4ee0d? Are the trust_impact and semantic_change fields self-declared by the fork producer or independently derived? Can a commit be added to the fork without appearing in this audit, or does the generator walk the full git rev-list? Does the audit pin actual file hashes, or only human-readable diff summaries that could mask a content swap?

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

Comment thread Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeSignedArithLemmas.lean Outdated
Comment thread lakefile.lean
Comment thread packages/verity-edsl/lakefile.lean
Comment thread artifacts/evmyullean_fork_audit.json
@Th0rgal

Th0rgal commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please review the immutable current head 05e4312db3671ca06fb1b8e68f11c401447f4619 only. Earlier Codex review predates the final two migration commits; a clean current-head review is required before merge.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 05e4312db3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@cursor

cursor Bot commented Jul 25, 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_f8a2f8b2-9627-4d43-ad01-8e67b874c0d5)

@cursor

cursor Bot commented Jul 27, 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_f390714d-00e1-46c2-9a7f-b908679f2754)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2354 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2354 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+89/-77), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_2b009446-1a55-4929-8115-df8c53751a63)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2530 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2530 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+178/-164), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_47ec26a3-dc87-441f-909d-68f367b41d25)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2538 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2538 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+182/-168), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_4a862cf3-7993-4213-b7e0-6b887314f935)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2555 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2555 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+192/-173), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_eab0929c-a8f6-4160-a661-06694ddfb65e)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2569 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2569 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+200/-179), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_2d60e90c-6412-43f3-9242-1edff7e0a1d6)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2576 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2576 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+204/-182), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@cursor

cursor Bot commented Jul 27, 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_c7eca950-7830-44ea-b40e-8ce4291b3ca3)

@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

🟡 Scout triage only — not a full review. no findings; a human or Codex must still cover the unflagged hunks and proof obligations.

Lean packet budget exceeded: 46 Lean file(s), 2578 changed supported line(s).

Warnings

  • routing : Diff exceeded bounded packet review capability; full OCR not attempted.
OCR pilot metrics & packet coverage

OCR pilot metrics

  • Routing: large-lean-hotspots (router-v10)
  • Changed files: 58 supported / 62 total; Lean 46, trust docs 2, workflow/scripts 9, contracts 0, docs 1
  • Changed lines: 2578 supported; thresholds large Lean >=3 files or >800 lines
  • OCR: status large-lean-hotspots; comments 0; files 0; tokens 0; tool calls 0; warnings 1; duration 1s
  • Largest changed files: Compiler/Proofs/YulGeneration/Backends/EvmYulLeanStateBridge.lean (+228/-503), Compiler/Proofs/YulGeneration/Backends/EvmYulLeanNativeHarness/Base.lean (+206/-182), Compiler/Proofs/IRGeneration/FunctionBody/Base.lean (+106/-97), scripts/generate_evmyullean_fork_audit.py (+135/-5), artifacts/evmyullean_fork_audit.json (+134/-4)

Packet coverage

  • Packet review: not used; selected 0/8 packet(s)
  • Scout: configured; status skipped_no_packets; model builtin/assistant
  • Scout lenses: provenance, verification-independence, environment-determinism, proof-soundness; rubric items checked 3
  • Strong review: required; status blocked_packet_input
  • Residual risk: Diff exceeded packet budget; use top changed files and deterministic signals as required Codex/human review checklist.
  • Strong packet-review blocker: OpenCodeReview 1.7.9 supports --from/--to full diff ranges, but this workflow does not have a safe packet/window input bridge for Lean hunks yet.

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 087ff71a08

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +82 to +83
def check_lean431_string_boundary(root: Path = ROOT) -> list[str]:
"""Keep the Lean 4.31 native string facts in one explicit trust boundary."""

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Update the actual string boundary for Lean 4.31

Fresh evidence after the attempted relabeling is that Compiler/CompilationModel/ReservedScratchNames.lean:8-14, the declaration this checker designates as the boundary, still explicitly gives a Lean 4.24-specific rationale. This function only counts the same two native_decide occurrences and declaration locations, so make check now reports a validated “Lean 4.31 string boundary” without ensuring that the boundary documentation or rationale was updated for 4.31; re-audit and update the declaration itself rather than only renaming the checker.

Useful? React with 👍 / 👎.

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