Skip to content

docs(proofs): refresh PROOF-STATUS against the 2026-11-09 audit and PROOF-POLICY §1.2/§8 - #482

Merged
hyperpolymath merged 9 commits into
mainfrom
claude/new-session-th4e9w-proof-status-refresh
Nov 9, 2026
Merged

hyperpolymath merged 9 commits into
mainfrom
claude/new-session-th4e9w-proof-status-refresh

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

The 2026-11-09 proof audit found docs/PROOF-STATUS.adoc out of date in two ways. Some rows don't match the CI receipts, and the ledger predates the PROOF-POLICY changes of 2026-11-04 (§8, Proof Witness Grades) and 2026-11-07 (§1.2: Creusot, Pearlite and Verus as the default Rust toolset). This PR brings it into line. It only changes documentation: proof sources and CI are untouched.

Changes

  • R2, Idris 2 ABI and verification: argued → proven.
  • R3, Lean:
    • The 2026-05-18 note "all five fail to compile" is stale. Lean 4 (verification) builds all five on the pinned 4.13.0, and #print axioms shows no sorryAx. The Lean leg is now proven.
    • Still open, as an owner call: where these proofs belong. They state properties of ECHIDNA's own types, so §1 assigns them to Idris 2 (or Creusot/Verus). No §4 exception record exists beside them, so either write those records or move the proofs.
  • R1, Rust: now maps to Creusot with Pearlite, and Verus (§1.2). It records that crates/echidna-core-creusot is a parallel model rather than the shipped code, and that Verus work has not started.
  • R12, SPARK (new): the four GPR projects had no row at all. The row is open:
    • no CI job runs gnatprove;
    • Axiom_C_Bridge (SPARK_Mode => Off) is recorded as an ASSUMED boundary.
  • Grades: the old "Mathesis Grade N" wording is replaced by the §8 PWG- labels.
    • Engineering rows carry no PWG (§8.1).
    • Only R11, the receipt/warrant theory theorem, is at PWG-3.
    • Nothing is higher, because no Rocq or Lean recheck has been attempted (R5).
  • CLAUDE.md: the proof-policy pointer now names Pearlite and Verus. The file itself requires this pointer to move whenever the mapping changes.

This PR touches different rows from #471, which corrects R6, so the two should merge cleanly in either order.

RSR Quality Checklist

Required

  • Documentation only; no code, proofs or CI changed.
  • No secrets.

As Applicable

  • Documentation updated.

Testing

Every receipt cited is a live GitHub Actions job URL. Tree identity was checked with git diff --quiet origin/main a2a8643 -- verification src/abi. The SPARK facts come from find . -name '*.gpr', grep gnatprove over the Justfile and workflows, and the SPARK_Mode => Off lines at src/ada/spark/axiom_c_bridge.ads:23 and .adb:16.


Generated by Claude Code

cargo audit fails on rmcp 3.5.0 (crates/echidna-mcp) with
RUSTSEC-2026-0457 (fixed >=3.7.0), RUSTSEC-2026-0461 (>=3.6.0) and
RUSTSEC-2026-0462 (>=3.9.0), published after main last passed the
Dependency audit check. `cargo update -p rmcp` moves rmcp and
rmcp-macros to 3.9.0, inside the existing "3" requirement; no other
entry changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
`cargo fmt --check` fails on main (2ab7574) in five places in
src/rust/proof_search.rs, so rust-ci 'Cargo check + clippy + fmt' is
red on every PR. Formatting only; no code change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
Hypatia's code_safety/zig_ptr_cast and zig_align_cast now flag the nine
`@ptrCast(@aligncast(raw))` lines in src/zig_ffi/chapel_bridge.zig and
src/zig_ffi/runtime_owner.zig as high, and the governance Hypatia
baseline gate is red on main (2ab7574) as a result.

Each of those lines recovers a callback's own `*@this()` from the
type-erased `*anyopaque` it was registered with (runtime_owner.Work
.context, or a std.mem.Allocator vtable's ptr), so the cast restores the
original type and alignment. Fixed at source with a reasoned inline
`hypatia: allow` per rule on each line, as the scanner documents,
rather than a baseline entry. No code change: comments only.

Checked by simulating ScannerSuppression.inline_allowed?/4 and
directive_re at hypatia 82396d81 (the CI pin): 18 unsuppressed
findings on main, 0 with this change. The scanner itself could not be
built here (hex.pm is unreachable).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
…ROOF-POLICY §1.2/§8

The proof audit found the ledger behind both the receipts and the policy:

- R2 (Idris 2 ABI/verification): `argued` -> `proven`, citing the green
  "Idris2 (verification)" and "Type-check Idris2 ABI definitions" runs on
  a2a8643, whose verification/ and src/abi/ trees are byte-identical to
  main 2ab7574. Names the nine src/abi root files outside the package and
  the CapnSchemas fix (#472).
- R3 (Lean): the "all five fail" record of 2026-05-18 is stale; "Lean 4
  (verification)" builds all five on the pinned 4.13.0 and #print axioms
  shows no sorryAx. Lean leg `proven`; verifier placement stays open,
  because the statements are about echidna's own types and no §4
  exception record exists (owner call).
- R1: Rust maps to Creusot with Pearlite, and Verus (§1.2, owner ruling
  2026-11-07); records that the Creusot crate is a parallel model, not
  the shipped code, and that Verus has not started.
- New R12: the four SPARK projects had no row. `open`: no gnatprove run
  in CI; Axiom_C_Bridge is SPARK_Mode => Off and recorded as a boundary.
- Grades: Mathesis "Grade N" replaced by §8 PWG labels; engineering rows
  carry no PWG (§8.1); only R11 is at PWG-3.

CLAUDE.md's proof-policy pointer moves with the §1.2 mapping, as it
requires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 20 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: b0db6f12-7525-4c62-a978-85d4e369976c
Commits

Reviewing files that changed from the base of the PR and between 3c06ac3 and cf8f09d.

Files selected for processing: 2

  • CLAUDE.md
  • docs/PROOF-STATUS.adoc
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

…c-rmcp' into claude/new-session-th4e9w-proof-status-refresh
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T21:38:59.394473Z cf8f09d New commits
🔒 Security Review ❌ Failed 2026-11-09T21:34:03.327501Z
We couldn’t complete this review. Comment @codex security review to try again.
cf8f09d New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: 0b794386d2

ℹ️ 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 docs/PROOF-STATUS.adoc Resolved
Comment thread docs/PROOF-STATUS.adoc Resolved
Review on #482 (Codex):
- R2 said idris2-abi-ci enforces zero believe_me / assert_total /
  postulate. It greps src/abi/ only, for believe_me, assert_total,
  unsafePerformIO and prim__crash, and checks neither postulate nor
  verification/proofs/idris2/. The row now records the 2026-11-09 audit
  (no such declarations in either package) as a receipt-time audit.
- R3 carried a proven token while its verifier placement is unresolved;
  the file says the §1 mapping decides which verifier may carry a row. R3
  is open; the passing Lean build stays recorded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3

@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: cf1ee048ac

ℹ️ 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 docs/PROOF-STATUS.adoc
|R2. Idris 2 interface/ABI obligations (E2, E3, E5, E6, E7, E12, Stage 8a,
VQL-UT, extensive ABI)
|`+argued+`
|`+proven+`

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 Keep partially covered VQL-UT out of the proven row

When consumers apply this authoritative token to every obligation named in R2, it marks VQL-UT query safety as fully discharged, but docs/PROOF-NEEDS.adoc:119-120 explicitly records the deeper-layer E8 VQL-UT obligation as only partially covered by VqlUt.idr. The cited receipt establishes that the package type-checks, not that the uncovered portion is complete; narrow this row to the proved L3/L5 properties or keep the aggregate obligation from being proven.

Useful? React with 👍 / 👎.

Comment thread docs/PROOF-STATUS.adoc
builds `+verification/proofs/idris2/echidna-verif-proofs.ipkg+` and
https://github.com/hyperpolymath/echidna/actions/runs/42624461712/job/129184533713[Type-check Idris2 ABI definitions]
builds `+src/abi/echidnaabi.ipkg+`, both on Idris 2 0.8.0, both success.
`+%default total+`. A 2026-11-09 audit of both packages found no `+believe_me+`,

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 Apply the totality default to every packaged Idris module

When R2 relies on %default total as evidence for its proven token, the claim is not true package-wide: verification/proofs/idris2/echidna-verif-proofs.ipkg includes NatLte, but verification/proofs/idris2/NatLte.idr has neither %default total nor per-definition total modifiers, and its lteLit helper feeds several of the recorded proofs. Add the directive and obtain a fresh receipt, or qualify the totality claim so the successful package build is not presented as enforcing this condition on every included module.

Useful? React with 👍 / 👎.

Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
@hyperpolymath
hyperpolymath enabled auto-merge (squash) November 9, 2026 21:33
@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@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: cf8f09d16a

ℹ️ 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 docs/PROOF-STATUS.adoc
Comment on lines +81 to +82
Grades are derived from receipts, never asserted, and are never flattened into
a percentage. See R5 and R6.

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 Point the percentage rule at the calibrated-score row

After replacing the Mathesis grades with PWG, this cross-reference directs readers to R5 and R6, which discuss independent rechecks and proof placement rather than percentage flattening. The applicable guidance is in R7, which still retains the obsolete Mathesis wording; point this summary to R7 and update that row to the new §5/§8 terminology so readers can locate the stated rule.

Useful? React with 👍 / 👎.

Comment thread docs/PROOF-STATUS.adoc
Comment on lines +74 to +77
* *Engineering proofs are not graded* (§8.1). Creusot, Verus, SPARK and Idris 2
results, and Agda statements about ECHIDNA's own functions and types, use the
§5 tokens only. In this file that covers R1, R2, R3, R9, R10, R12 and most of
R4. A theory theorem below `+PWG-3+` is `+ungraded+`.

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 Keep the Agda engineering rows open pending placement

Once this paragraph classifies R9, R10, and most of R4 as engineering properties, their Agda checks cannot continue carrying proven tokens without recorded exceptions: the normative mapping assigns repository-specific engineering properties to Idris2, or to the implementation verifier when they concern Rust/Ada behavior. This commit applies that rule to keep R3 open but leaves these analogous Agda rows and the final summary marked proven; split out any genuine theory theorems and leave the engineering rows open until they are moved or receive §4 records. PROOF-POLICY §1

Useful? React with 👍 / 👎.

Comment thread docs/PROOF-STATUS.adoc
Comment on lines +132 to +135
https://github.com/hyperpolymath/echidna/actions/runs/42624461538/job/129184535654[Idris2 (verification)]
builds `+verification/proofs/idris2/echidna-verif-proofs.ipkg+` and
https://github.com/hyperpolymath/echidna/actions/runs/42624461712/job/129184533713[Type-check Idris2 ABI definitions]
builds `+src/abi/echidnaabi.ipkg+`, both on Idris 2 0.8.0, both success.

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 Record the Idris CI toolchain deviation before promotion

The two receipts cited for R2 come from workflows that install Idris2 through Ubuntu apt or a downloaded source archive (dogfood-proofs-ci.yml and idris2-abi-ci.yml), rather than through the repository's Guix manifest or container, but neither workflow nor this ledger records the §6 deviation required for that installation path. Under the cited policy, silence about such an out-of-band CI toolchain is explicitly noncompliant, so record the tool/version/digest and mismatch gate or obtain a compliant receipt before presenting this as a policy-conformant promotion. PROOF-POLICY §6

Useful? React with 👍 / 👎.

Comment thread docs/PROOF-STATUS.adoc
Comment on lines +105 to +107
shipped code. *Verus:* not started; no Verus specification or proof exists.
Row stays `+open+` until a Creusot or Verus run on shipped code yields a receipt
with a commit hash.

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 Require both default Rust verifiers before closing R1

If a Creusot run succeeds while Verus remains unstarted, this next-step condition permits the aggregate R1 row to be promoted even though one member of the default Rust toolset is still pending. §1.2 requires scopes for both Creusot/Pearlite and Verus by default and says an unrun required proof remains open; split the verifier legs or require results for both unless one receives a recorded exception. PROOF-POLICY §1.2

Useful? React with 👍 / 👎.

Comment thread docs/PROOF-STATUS.adoc
Comment on lines +407 to +410
assigns to those statements until the placement is decided. Only theory theorems are graded (§8.1): R11 is at
`+PWG-3+`; the engineering rows carry no PWG. Every *independent* leg is still
`+open+`: R5 has never been attempted, which is why nothing here is above
`+PWG-3+`. Proven in one kernel is exactly what `+PWG-3+` means, and neither fact

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 Add per-theorem records before assigning PWG-3

R11 contains multiple theorem declarations, but this summary is the only place that assigns them a grade: neither the R11 row nor R5 records a per-theorem pwg, foundation_diverse, leg route, §5 token, correspondence state, or receipt-lineage state. §8.5 requires those fields for each theorem so the grade can be derived rather than asserted; add the individual records or leave these theorems ungraded. PROOF-POLICY §8.5

Useful? React with 👍 / 👎.

Repository owner deleted a comment from coderabbitai Bot Nov 9, 2026
Repository owner deleted a comment from chatgpt-codex-connector Bot Nov 9, 2026
@hyperpolymath
hyperpolymath merged commit f385a6d into main Nov 9, 2026
73 of 76 checks passed
@hyperpolymath
hyperpolymath deleted the claude/new-session-th4e9w-proof-status-refresh branch November 9, 2026 21:55
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.

3 participants