Skip to content

proofs: ledger repairs, PWG census, T-1 recheck legs (PWG-2ii), T-2/T-3 split - #171

Merged
hyperpolymath merged 17 commits into
mainfrom
claude/vibrant-cori-lirqrr
Nov 9, 2026
Merged

hyperpolymath merged 17 commits into
mainfrom
claude/vibrant-cori-lirqrr

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

What

This was stacked on #170, which is now merged; it now targets main. No previously proved statement is weakened. One statement is generalised: T-2 and T-3 move from the transaction model to an abstract log.

1. Ledger repairs.

2. PWG census and leg records (PROOF-POLICY §8.4.7, §8.5).

  • Census: denominator 5. G-3 is outside it: it names this repository's FFI bridge, which makes it engineering under §1.
  • Per-leg records for every theory row. A leg nobody has started is recorded as "not attempted", not unavailable.

3. T-1 recheck legs: PWG-2ii (PROOF-POLICY §2).

  • Transport is unavailable. Agda2Dedukti was last changed in January 2022, builds against a forked Agda branch, and cannot read modules checked by Agda 2.6.4.3.
  • Both legs are therefore re-proved by hand in core Rocq 8.18 and core Lean 4.35.0, with no Mathlib.
  • Each leg reports no axioms.
  • The §2.2 statement comparison and the residual logic differences are recorded in docs/theory/PROOF-GRADES.adoc.
  • Rocq and Lean twins of ForwardRollback pin non-vacuity.
  • scripts/check-recheck.sh fails on any axiom, on an accepted fixture, and on a fixture refused for another reason. Mutants with Admitted and sorry are caught.
  • New CI job: agda-proofs.yml → "Rocq and Lean recheck legs".
    • Rocq: coq=8.18.0+dfsg-1build2 on ubuntu-24.04.
    • Lean: 4.35.0, checked by SHA-256.
    • It sits in the same workflow, so actions.lock is unchanged.

4. T-2/T-3 split (owner ruling).

  • SingleActiveLog.agda (new, builtins only) proves the invariant for any record type with a decidable key and an active or settled phase. This is theory. finish-good needs only the settling law.
  • TransactionAtomicity Part B is now januskey's instance. Every cited theorem name is kept.
  • New engineering row T-10 (OPEN): the Rust TransactionManager refines the abstract log, for Creusot or Verus.
  • tests/reject-agda/SettleWithoutSettling.agda pins the settling premise: it is refused with 1 != 0, and its true counterpart checks.

Census after this PR: PWG-3 4 (G-1, T-2, T-3, E-1m) · PWG-2ii 1 (T-1) · PWG-2i 0 · PWG-1 0 · ungraded 0.

Verification (local)

  • Agda gate (2.6.4.3): four roots, cone 7 first-party files, 0 postulates; all 7 fixtures refused as named.
  • Recheck gate (Rocq 8.18.0, Lean 4.35.0): both legs closed, both fixtures refused as named.
  • Idris2 0.8.0 typecheck of the ABI package passes.
  • dashboard-check: OK.
  • Aspect tests: 32 pass.
  • shellcheck: clean.

Not in this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_013CuBToxr5h9catptGiTsFX

…cone

The grade records were written against the mathesis brief on 2026-11-01,
before the owner ruling of 2026-11-04 made PROOF-POLICY §8 normative:

- The five theory rows (G-1, T-1, T-2, T-3, E-1m) are PWG-3, written with
  the prefix. The brief's "2ii needs Isabelle/HOL" is replaced by §8.3's
  +foundation-diverse tag.
- The receipt is the current green agda-proofs run 42076969251 at 23bc8c3,
  covering all three modules under the §2.1 canonical invocation, with
  library pin, flags, import cone and axioms recorded. Runs 41687715055 and
  40867211509 are kept as state: superseded. The page had still cited the
  pre-flag receipt it said it would replace.
- The duplicated row counts, which had drifted (23 against 27 TESTED), are
  removed from PROOF-GRADES; PROOF-NEEDS stays the only count.
- Rust's verifiers read Creusot/Pearlite and Verus (§1.2, 2026-11-07).

§8.4 asks for a comment-aware postulate scan of the import cone beside
--safe. scripts/scan-postulates.sh does that, and check-agda.sh runs it on
the proofs and the pinned resource-algebra sibling with a negative and a
positive control written at run time. Verified locally: cone 10 files, 0
postulates; a mutant scan that reports nothing fails the gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GVPPsHYqVJSoPzdNYD9tRg
@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 14 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: faf81050-a346-451b-9027-0f789d84c054
Commits

Reviewing files that changed from the base of the PR and between 05ade78 and 231d1d8.

Files selected for processing: 19

  • .github/workflows/agda-proofs.yml
  • .gitignore
  • .machine_readable/6a2/STATE.a2ml
  • Justfile
  • PROOF-NEEDS.adoc
  • READINESS.adoc
  • docs/estate/prompts/2026-11-01-mathesis-grade3-receipts.md
  • docs/theory/PROOF-GRADES.adoc
  • docs/wiki/theory/rmr-primitive.md
  • scripts/check-agda.sh
  • scripts/check-recheck.sh
  • tests/reject-agda/SettleWithoutSettling.agda
  • tests/reject-lean/ForwardRollback.lean
  • tests/reject-rocq/ForwardRollback.v
  • verification/proofs/agda/Reversibility.agda
  • verification/proofs/agda/SingleActiveLog.agda
  • verification/proofs/agda/TransactionAtomicity.agda
  • verification/proofs/lean/Rollback.lean
  • verification/proofs/rocq/Rollback.v
  • 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

…comments

Stacked on #170, which records the theory grades as PROOF-POLICY §8
PWG-3 and adds the postulate scan. This adds what #170 does not cover.

The ledger lost #168's T-8 and T-9 rows: main still showed T-8 OPEN
("not yet built") although its five tests are green in CI and locally,
and T-9 existed only in prose. T-8 now has one TESTED row per test,
T-9 is an OPEN row in both tables, and E-1m gains its missing
status-table row so the two tables agree.

A PWG census with its denominator (§8.4.7): PWG-3 5 of 6 theory
theorems, G-3 ungraded. The Rocq and Lean legs are recorded as not
attempted (OPEN) rather than `unavailable`: under §2 that route means a
leg that cannot be built, and a hand re-proof is always the fallback.

Two proof files had misleading comments, though no statement or proof
changed. TransactionAtomicity's "What is NOT claimed" block described
non-atomic saves and a non-resumable rollback, both since fixed (T-4,
T-5, T-8). Reversibility implied that the 𝟙 grade of a wrap/unwrap pair
derives from its cancellation law; the grade is assigned. The G-1 and
E-1m wording now says so, and the receipt notes the re-earn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013CuBToxr5h9catptGiTsFX
@hyperpolymath
hyperpolymath force-pushed the claude/vibrant-cori-lirqrr branch from b905794 to a71dc76 Compare November 9, 2026 13:10
@hyperpolymath hyperpolymath changed the title docs(proofs): PROOF-POLICY §8 Proof Witness Grades; restore T-8/T-9 ledger rows docs(proofs): restore T-8/T-9 ledger rows; PWG census; correct proof comments (stacked on #170) Nov 9, 2026
@hyperpolymath
hyperpolymath changed the base branch from main to claude/awesome-wright-va45xo November 9, 2026 13:10
…e-run

Review on #170 (Codex, CodeRabbit), each finding checked:

- The cone is now the module set `agda --dependency-graph` reports for the
  three roots, resolved to files on the include path and in Agda's own
  library; an unresolved module fails the gate. The directory scan both
  missed the 8 prover-supplied modules and swept in unimported ones.
- First-party modules (6) must have no postulate. Agda.Primitive's
  universe-level primitives (Level, lzero, lsuc, _⊔_, bound by BUILTIN)
  are reported as the prover's trusted base; a postulate in any other
  prover-supplied module fails.
- The scanner takes explicit files, refuses unreadable ones, and lexes
  `--` comments with no space, and string and character literals.
- Controls must exit exactly 0 and 1, and the planted one must be named.
- Run 42076969251 predates the changed gate, so it is recorded as the
  last receipt for the modules; the first green run of this gate on main
  replaces it.
- The stale "23 TESTED" is gone; Rust guidance names Creusot/Pearlite and
  Verus throughout.

Verified locally: gate OK (6 first-party, 0 postulates; 2 BUILTIN blocks
in Agda.Primitive); a never-reporting scanner, a comment-blind scanner and
a planted postulate in Epistemic.agda each fail the gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GVPPsHYqVJSoPzdNYD9tRg
agda-proofs.yml run 42623188471 at a71dc76 checked the edited
Reversibility and TransactionAtomicity bytes under the same gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013CuBToxr5h9catptGiTsFX
@hyperpolymath
hyperpolymath marked this pull request as ready for review November 9, 2026 13:32
@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-09T14:50:16.369286Z 3716998 New commits
🔒 Security Review ❌ Failed 2026-11-09T14:45:48.137333Z
We couldn’t complete this review. Comment @codex security review to try again.
3716998 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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@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: 5f123b947e

ℹ️ 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 PROOF-NEEDS.adoc Resolved
Comment thread PROOF-NEEDS.adoc Resolved
Comment thread docs/theory/PROOF-GRADES.adoc Resolved
Comment thread docs/theory/PROOF-GRADES.adoc Resolved
…y name

The scanner treated only space and tab as keyword boundaries, so a postulate
next to NO-BREAK SPACE, a Unicode space separator, CR, FF or VT went
unreported. Agda reads every isSpace character other than tab and newline as
a space (Agda.Syntax.Parser.Alex, toASCII); the scanner now does the same,
byte-wise in the C locale so mawk and gawk agree. The planted control gains a
NO-BREAK SPACE case, and the comments-only control `--postulate postulate`.

The prover-supplied allowance was the path Agda/Primitive.agda. The gate now
requires those blocks to declare exactly Level, lzero, lsuc and _⊔_, each with
its BUILTIN binding, so a prover pin that adds a postulate fails.

PROOF-NEEDS states the PWG-3 grade as pending its re-run receipt, and
PROOF-GRADES cites the green branch run of the changed gate as evidence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GVPPsHYqVJSoPzdNYD9tRg
- E-1m: state rotation's premise old ≠ new (rotate-forgets-old needs it;
  with old = new the key stays usable).
- TransactionAtomicity comment: a failed metadata append keeps its
  record, and no failure after the temporary file exists is injected,
  so the failed-save summary no longer overgeneralises.
- T-9's artefact is operations.rs, where execute appends after the file
  change and undo marks after the inverse.
- G-3 names this repository's FFI bridge, so PROOF-POLICY §1 makes it
  engineering: the PWG census is 5 of 5, with no ungraded theory row.
  T-2 and T-3 are flagged as the same open classification question.
- Per-leg records (§8.5) for the Agda, Rocq and Lean legs.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

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

ℹ️ 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/theory/PROOF-GRADES.adoc Resolved
Comment thread PROOF-NEEDS.adoc Resolved
…gda does

A block comment was removed without leaving a token boundary, so
`postulate{- c -}X : Set`, which Agda reads as a postulate, became
`postulateX` and was not reported; in Agda.Primitive it would also have slipped
past the name check. A comment now leaves a space behind.

A pragma was scanned as code, so a FOREIGN payload using `postulate` as a
Haskell name failed the gate, and a payload holding `{- {-` opened a comment
Agda never sees, hiding a postulate after the pragma. Agda does not nest
comments inside a pragma and closes it at a `#-}` token (Lexer.x); the scan
now skips to the first `#-}`, which can end a pragma early but never late.

Controls: the comments-only file gains a FOREIGN payload; the planted file
gains the comment-separated and after-pragma cases, and must name lines 2-5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GVPPsHYqVJSoPzdNYD9tRg
#170 now records its gate change as "PWG-3, receipt pending re-run".
The comment edits here are covered by the same first green run on main.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@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: 9eb9f5f0d7

ℹ️ 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/theory/PROOF-GRADES.adoc Resolved
The PROOF-POLICY §2 pilot. Transport is not available: Agda2Dedukti was
last changed in January 2022, builds against a forked Agda branch of
that period, and cannot read modules checked by the pinned Agda 2.6.4.3.
So both legs are re-proved by hand, in core Rocq 8.18 and core Lean
4.35.0 (no Mathlib, no imports).

- verification/proofs/{rocq,lean}/Rollback: rollback_restores, with
  Print Assumptions / #print axioms showing no axioms.
- tests/reject-{rocq,lean}/ForwardRollback: twins of the Agda fixture.
  Undoing real double and increment operations in execution order is
  refused, each with the message the fixture names.
- scripts/check-recheck.sh (just test-recheck): fails on a leg that does
  not check, on any axiom, on an accepted fixture, and on a fixture
  refused for another reason. Mutants with Admitted and sorry are caught.
- agda-proofs.yml gains a recheck job on ubuntu-24.04 with
  coq=8.18.0+dfsg-1build2 and the Lean 4.35.0 tarball checked by
  SHA-256. It sits in the same workflow so actions.lock is unchanged.
- PROOF-GRADES records the §2.2 statement comparison and the residual
  logic differences. The census is now PWG-3 4, PWG-2ii 1 (T-1).

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

PROOF-POLICY §1 puts a statement that names one repository's types in
engineering. T-2 and T-3 were stated over a model of januskey's
TransactionManager, so, per the owner's ruling, they are split:

- SingleActiveLog.agda (new, builtins only) proves the invariant for any
  record type with a decidable key and an active or settled phase, under
  three transitions: open a fresh active record, a key- and
  phase-preserving edit, and a settling transition. finish-good needs
  only the settling law, not key preservation. These are T-2 and T-3,
  now theory.
- TransactionAtomicity Part B is januskey's instance. Tx is keyed by id,
  its phase comes from its state, and begin, add_operation, commit and
  mark_rolled_back are the abstract transitions. Every theorem name the
  ledger, fixtures and docs cite is kept as a corollary.
- T-10 (new, OPEN, engineering): the Rust TransactionManager refines the
  abstract log, for Creusot or Verus.
- tests/reject-agda/SettleWithoutSettling.agda pins finish-good's
  settling premise. With an identity "finish", one record stays active
  with no pointer, and the claim that the count is 0 is refused with
  1 != 0. Its true counterpart checks.
- check-agda.sh gains the fourth root, and its warning counts are
  updated.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

Base automatically changed from claude/awesome-wright-va45xo to main November 9, 2026 14:19
@hyperpolymath hyperpolymath changed the title docs(proofs): restore T-8/T-9 ledger rows; PWG census; correct proof comments (stacked on #170) proofs: ledger repairs, PWG census, T-1 recheck legs (PWG-2ii), T-2/T-3 split Nov 9, 2026
…irqrr

# Conflicts:
#	PROOF-NEEDS.adoc
#	docs/theory/PROOF-GRADES.adoc
#	scripts/check-agda.sh
@chatgpt-codex-connector

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

…r download

check-recheck.sh compiled each Rocq rejection fixture in place, so
coqc's .glob and .aux files were committed next to the fixture. They are
removed and ignored, and fixtures are now compiled from a copy in the
gate's temporary directory.

The Lean download is restricted to HTTPS with TLS 1.2 or later, so a
redirect cannot downgrade it. The SHA-256 check still runs before
unpacking.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

…sync

None of the named tests observes sync_all: removing it would leave every
failed-save, hard-link, temporary-file and retry assertion green. Both
rows now claim what the tests show, which is that the log is replaced by
rename and never overwritten in place. They say the sync before the
rename is there by construction only.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

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

ℹ️ 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 .machine_readable/6a2/STATE.a2ml Resolved
Comment thread docs/theory/PROOF-GRADES.adoc Resolved
Comment thread PROOF-NEEDS.adoc Resolved
Comment thread docs/theory/PROOF-GRADES.adoc Resolved
- STATE: claimed-higher now records T-1 at PWG-2ii; it still said none.
- PROOF-GRADES: T-1's Agda module imports the sibling's prelude. The
  comparison now accounts for the three things Rollback uses from it
  (builtin _≡_, trans, cong) instead of calling T-1 sibling-free.
- PROOF-GRADES: full input digests, with check-recheck.sh's current
  5171d9d2… replacing the stale be20e857….
- wiki rmr-primitive: T-8 is TESTED (the log itself) and T-9 is OPEN
  (a file change and its record are not written together). T-2/T-3 are
  abstract, T-10 is added, and T-5's fsync is noted as by construction.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@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: 99770a3d30

ℹ️ 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 PROOF-NEEDS.adoc Resolved
Comment thread docs/theory/PROOF-GRADES.adoc Resolved
Comment thread PROOF-NEEDS.adoc Resolved
…o stale PWG text

- T-9 was two failure modes. The forward window (execute changes the
  filesystem, then appends) can leave a change with no record, which
  needs write-ahead intent. Undo is different: every helper records the
  inverse as its own operation via execute before mark_undone, so a
  failed mark leaves the original unmarked and a retry re-applies the
  inverse. That is T-11 (OPEN), and its fix is an idempotent undo. The
  ledger, PROOF-GRADES and the RMR wiki are updated.
- Axiom-free Rocq has neither K nor UIP. Only Lean's proof-irrelevant
  Prop adds UIP, so the residual-differences note now says so.
- Two passages still said no row is above PWG-3. They now name T-1 at
  PWG-2ii.

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

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@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: 3716998f70

ℹ️ 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 READINESS.adoc Resolved
READINESS still said all five were PWG-3, contradicting the census in
PROOF-NEEDS and PROOF-GRADES.

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

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 0834ce7 into main Nov 9, 2026
22 checks passed
@hyperpolymath
hyperpolymath deleted the claude/vibrant-cori-lirqrr branch November 9, 2026 15:39
hyperpolymath pushed a commit that referenced this pull request Nov 9, 2026
…rry forward only what is new

#170 and #171 landed the PWG records, the import-cone postulate scan, the
restored T-8/T-9 rows and the T-1 recheck legs while #172 was in review. In
every overlapping file this merge takes main's version, and it removes #172's
scripts/agda-cone.sh, which duplicated scripts/scan-postulates.sh. What #172
still adds on top of main:

- T-12 (TESTED): TransactionManager::new refuses a log read from disk that
  breaks Good, and the unused active_mut is removed. T-10 (the refinement
  itself) stays OPEN; T-12 is evidence for it at the load boundary.
- Dashboard: Agda 2.6.4.3 from agda-proofs.yml's pinned image. #171 listed
  this as left undone. The "two pins" obligation is marked resolved.
- Owner decisions of 2026-11-09, recorded on T-5 (the directory fsync stays
  best-effort) and T-9 (to be closed with a write-ahead intent log).
- E-1m: a note that adversary-ignorant and obliterate-ignorance are proved
  for two particular worlds.
- Test count 143.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kjdf4Mf4Z41bNQh2TrsEp9
hyperpolymath added a commit that referenced this pull request Nov 10, 2026
…pin across CI (#172)

## Scope after merging `main`

While this PR was in review, #170 and #171 landed most of its original
content, more thoroughly in places:
- the PWG records and per-leg records;
- the import-cone postulate scan (`scripts/scan-postulates.sh`);
- the restored T-8 and T-9 rows;
- the T-1 Rocq and Lean legs (`PWG-2ii`);
- the T-2/T-3 split into `SingleActiveLog`.

The merge commit takes `main`'s version of every overlapping file and
removes this PR's duplicate `scripts/agda-cone.sh`. Four things remain,
on top of `main`.

### 1. T-12 (TESTED): a loaded log satisfies the invariant `Good`

T-2 and T-3 take `Good` as a premise. Before this change,
`TransactionManager::new` loaded any log that parsed, so a hand-edited
or foreign log could start the Rust outside the invariant. A public,
unused `active_mut` could also change a transaction outside the four
transitions.

- **Change:** a log that breaks `Good` is now refused with
`MetadataCorrupted`, and `active_mut` is removed.
- **Tests:**
- `a_loaded_log_that_breaks_the_invariant_is_refused` covers five ways
of breaking `Good`: a pointer to a missing transaction, a pointer to a
settled one, an Active transaction with no pointer, two Active
transactions, and a settled first transaction with the active id.
- `a_log_the_manager_wrote_loads_back` covers idle and busy logs as the
positive control.
- Three mutants each fail the first test: no check at load, last-with-id
instead of first, and no stray-Active scan. Each mutant was confirmed
applied with `cmp`.
- **Ledger:** this is evidence for T-10 at the load boundary. The
refinement itself, T-10, stays OPEN for Creusot or Verus.

### 2. One Agda version across CI (owner decision 2026-11-09)

#170 and #171 both listed this as not done. `dashboard-check.yml` used
to install Ubuntu's Agda 2.6.3. The job now runs on the host, and `agda`
and `idris2` on PATH are wrappers around the images the proof jobs
already pin:
- `debian:trixie-slim@sha256:a29215f6…` with `agda-bin=2.6.4.3-1+b2`;
- `idris2-pack@sha256:f0758996…`.

It asserts `Agda version 2.6.4.3` exactly as `agda-proofs.yml` does.
Agda runs as the runner user. idris2 runs as root, because its toolchain
is under `/root`, and the wrapper hands back any root-owned file it
leaves, so `check-idris-reject.sh` can still delete its scratch copy.
The "two pins" obligation in `PROOF-GRADES.adoc` and `STATE.a2ml` is
marked resolved. On the pre-merge head 59f1d15 this job ran green, with
every Idris2 and Agda row proven through the wrappers.

### 3. Owner decisions recorded (2026-11-09)
- **T-5:** the directory fsync after the rename stays best-effort.
- **T-9:** to be closed with a write-ahead intent log. Not built yet;
still OPEN.

### 4. Design-review note

E-1m's `adversary-ignorant` and `obliterate-ignorance` are proved for
two particular worlds. The general form is `different-store-unknown`.
The other two findings from the review were already on `main`:
`wrap-unwrap-𝟙` and `rotate-forgets-old` hold by definition.

The test count is now 143.

## Verification (local, on the merged tree)

- `cargo fmt --check` and `clippy -D warnings`: clean.
- `cargo test --workspace --locked`: 143 pass.
- Aspect tests: 32 pass.
- `scripts/check-agda.sh`: OK.
- `dashboard-check`: the only divergences are the 10 Idris2 rows,
because `idris2` isn't installed in this sandbox. CI runs them.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01Kjdf4Mf4Z41bNQh2TrsEp9

---------

Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
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