Skip to content

Require evidence-bearing proof kernels in unsafe Rust V5 - #3536

Open
joshlf wants to merge 1 commit into
Gquwn2yzvxejg4lkqiqoaaowxzxbmj62xfrom
Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3
Open

Require evidence-bearing proof kernels in unsafe Rust V5#3536
joshlf wants to merge 1 commit into
Gquwn2yzvxejg4lkqiqoaaowxzxbmj62xfrom
Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3

Conversation

@joshlf

@joshlf joshlf commented Aug 3, 2026

Copy link
Copy Markdown
Member

Revise the runtime skill around the root cause of the V4 failures: agents must
not silently promote visible Rust syntax or artifact text into the semantic
proposition needed by an unsafe-code proof.

Require every load-bearing premise to state its exact proposition, provenance,
applicability domain, and downstream consumer. Distinguish directly observed
artifact facts from claims about Rust execution, typing, arithmetic, control
flow, library behavior, or caller obligations; the latter must follow from
applicable authoritative text, an explicit admitted TCB premise, or a checked
derivation. Verify that cited text entails the proposition in the direction the
proof uses it rather than merely mentioning related concepts.

Add a valid-use certificate that identifies why the counterexample or proof
case is admitted at each safe API boundary. Track root blockers separately from
the atoms that depend on them so one missing semantic bridge cannot be hidden by
many repeated conclusions. When an auditor must reconstruct a proof that the
code comment does not contain, require the report to expose that reconstructed
proof for maintainer review instead of silently accepting the site.

Keep the existing exact-domain, set-relation, staged-construction,
whole-execution, verdict-certificate, local-invariant, and abstraction-design
discipline. Express the new requirements as a compact evidence-bearing proof
kernel, not as a list of syntax forms or evaluated fixtures.

Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf


This PR is on branch codex/unsafe-rust-stack.

Latest Update: v22 — Compare vs v21

📚 Full Patch History

Links show the diff between the row version and the column version.

Version v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v8 v7 v6 v5 v4 v3 v2 v1 Base
v7 v6 v5 v4 v3 v2 v1 Base
v6 v5 v4 v3 v2 v1 Base
v5 v4 v3 v2 v1 Base
v4 v3 v2 v1 Base
v3 v2 v1 Base
v2 v1 Base
v1 Base
⬇️ Download this PR

Branch

git fetch origin refs/heads/Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 && git checkout -b pr-Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 FETCH_HEAD

Checkout

git fetch origin refs/heads/Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 && git checkout FETCH_HEAD

Cherry Pick

git fetch origin refs/heads/Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 && git cherry-pick FETCH_HEAD

Pull

git pull origin refs/heads/Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3

Stacked PRs enabled by GHerrit.

@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: 552516db54

ℹ️ 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 +297 to +299
implementer obligation owned outside the audited scope—including an
obligation imposed on caller or implementer code supplied by the witness—is
satisfied. No prose-only condition is imposed on a safe boundary. Do not

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep audited API preconditions in the valid-use domain

When the audited scope includes an unsafe API, this instruction permits its boundary assertion to be left false even when that assertion is a documented caller precondition. For example, an out-of-range call to an audited get_unchecked-style API could then be certified as a valid witness and its expected UB reported as UNSOUND, contradicting SKILL.md's definition that valid uses of unsafe APIs satisfy all documented safety obligations. Distinguish caller preconditions—which must be satisfied regardless of where their contract is declared—from implementation or impl assertions that the audit is testing.

Useful? React with 👍 / 👎.

@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 2a5da41 to a94d5db Compare August 29, 2026 10:42
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 552516d to 546936e Compare August 29, 2026 10:42
@codecov-commenter

codecov-commenter commented Aug 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.85%. Comparing base (a353992) to head (18f87cf).

Additional details and impacted files
@@                        Coverage Diff                         @@
##           Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x    #3536   +/-   ##
==================================================================
  Coverage                              91.85%   91.85%           
==================================================================
  Files                                     20       20           
  Lines                                   6093     6093           
==================================================================
  Hits                                    5597     5597           
  Misses                                   496      496           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 546936e to 8d7339d Compare August 29, 2026 11:11
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from a94d5db to 3e392c9 Compare August 29, 2026 11:11
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 3e392c9 to 9a67406 Compare September 1, 2026 22:15
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 8d7339d to 7887aaf Compare September 1, 2026 22:15
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 7887aaf to 4cde1af Compare September 2, 2026 20:45
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 9a67406 to 425efb3 Compare September 2, 2026 20:45
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 425efb3 to ddf5fe7 Compare September 2, 2026 21:51
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch 2 times, most recently from 5d5644a to 51b9b60 Compare September 2, 2026 22:28
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch 2 times, most recently from 41e1bca to b151d20 Compare September 2, 2026 23:04
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch 3 times, most recently from ec78a58 to b99ddae Compare September 3, 2026 01:00
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch 2 times, most recently from 1d76861 to b6762cd Compare September 3, 2026 01:33
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from b99ddae to bd8bf74 Compare September 3, 2026 01:33
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from b6762cd to 9011a48 Compare September 3, 2026 02:26
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch 2 times, most recently from 26e4b89 to f52021f Compare September 3, 2026 03:03
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch 2 times, most recently from 986c4e6 to 6177ec2 Compare September 3, 2026 04:06
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from f52021f to 0f13ff8 Compare September 3, 2026 04:06
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 6177ec2 to 11844c0 Compare September 3, 2026 04:42
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch 2 times, most recently from 24450e1 to 68cc8b3 Compare September 3, 2026 05:14
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from 11844c0 to 387a2ec Compare September 3, 2026 05:14
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 68cc8b3 to fd3c9d2 Compare September 3, 2026 05:47
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch 2 times, most recently from c88d2f4 to a353992 Compare September 3, 2026 06:17
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from fd3c9d2 to 18f87cf Compare September 3, 2026 06:17
Revise the runtime skill around the root cause of the V4 failures: agents must
not silently promote visible Rust syntax or artifact text into the semantic
proposition needed by an unsafe-code proof.

Require every load-bearing premise to state its exact proposition, provenance,
applicability domain, and downstream consumer. Distinguish directly observed
artifact facts from claims about Rust execution, typing, arithmetic, control
flow, library behavior, or caller obligations; the latter must follow from
applicable authoritative text, an explicit admitted TCB premise, or a checked
derivation. Verify that cited text entails the proposition in the direction the
proof uses it rather than merely mentioning related concepts.

Add a valid-use certificate that identifies why the counterexample or proof
case is admitted at each safe API boundary. Track root blockers separately from
the atoms that depend on them so one missing semantic bridge cannot be hidden by
many repeated conclusions. When an auditor must reconstruct a proof that the
code comment does not contain, require the report to expose that reconstructed
proof for maintainer review instead of silently accepting the site.

Keep the existing exact-domain, set-relation, staged-construction,
whole-execution, verdict-certificate, local-invariant, and abstraction-design
discipline. Express the new requirements as a compact evidence-bearing proof
kernel, not as a list of syntax forms or evaluated fixtures.

gherrit-pr-id: Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3
Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf
@joshlf
joshlf force-pushed the Gquwn2yzvxejg4lkqiqoaaowxzxbmj62x branch from a353992 to ff01045 Compare September 3, 2026 06:47
@joshlf
joshlf force-pushed the Gj24u57i5qq6wbmrnwypu7cy7dupt2mt3 branch from 18f87cf to 8376fca Compare September 3, 2026 06:47
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