Skip to content

Check trait invariants on exact Aeneas dictionaries - #3861

Open
joshlf wants to merge 1 commit into
Gessib3piua3c4koztpng6i7m52bxi73sfrom
G32iu57kafa74nntjntxknpvpzw6gj37z
Open

joshlf wants to merge 1 commit into
Gessib3piua3c4koztpng6i7m52bxi73sfrom
G32iu57kafa74nntjntxknpvpzw6gj37z

Conversation

@joshlf

@joshlf joshlf commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

A Rust trait bound can promise behavior that a generic function needs to
prove its own specification. Associate an inline invariant with the native
Aeneas dictionary, supply its law for each original generic dictionary,
and require a checked theorem for every extracted local implementation.
Computational dictionaries retain their original types and stay outside
stored-value decoding.

Audit implementation bodies before lowering and independently enumerate
compiled dictionaries when checking proof coverage. Missing laws, replaced
dictionaries, unsupported bound shapes, and proofs assuming their own
conclusions fail closed. A byte codec exercises a concrete XOR proof,
generic forwarding, and callers consuming the resulting round-trip law.

Retain the model providers used by a trait predicate and the original
usize const arguments of native array implementations. Independent checks
reject changed providers, omitted lengths, and extra premises.

A nameless invariant_proof marker selects its exact Rust impl, even
without a caller. Literal macro-input attributes bind through the native
HIR documentation census, checking source origins, text, order and
multiplicity. Direct items retain their header and source-span checks.
Inactive, computed, duplicated or misplaced annotations fail closed.
Unmarked impls reached through callers retain the same proof requirements.

Emit ordinary kernel-checked witnesses for implementation laws and inspect
authored theorem telescopes separately from obligation generation. The final
audit requires every witness, its compiled owner, and its exact proof dependency.
Selecting a trait law does not force unrelated default method bodies into
the extraction.

Preserve original associated-type applications through native dictionary
lifting. Record a narrowly evidenced omitted empty enum without inventing
a Lean inhabitant; independently check its native and compiled absence.

The checked scope is the selected extraction roots and their dependencies;
this does not certify all external implementations of an annotated trait.

Authored by an AI agent acting on joshlf's behalf.
Prepare provisional editor projects using fresh compiler bindings,
including their trait dictionaries and native layout evidence. Keep
compiler-generated trait projections protected from reverse edits;
development checks still cannot certify the complete CI contract.


Latest Update: v17 — Compare vs v16

📚 Full Patch History

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

Version 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/G32iu57kafa74nntjntxknpvpzw6gj37z && git checkout -b pr-G32iu57kafa74nntjntxknpvpzw6gj37z FETCH_HEAD

Checkout

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

Cherry Pick

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

Pull

git pull origin refs/heads/G32iu57kafa74nntjntxknpvpzw6gj37z

Stacked PRs enabled by GHerrit.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T21:43:58.387939Z cf97c92 PR opened
🔒 Security Review ✅ Completed 2026-10-13T21:38:04.425289Z cf97c92 PR opened
ℹ️ 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.

@joshlf
joshlf force-pushed the G32iu57kafa74nntjntxknpvpzw6gj37z branch from d81f4d2 to f009677 Compare October 14, 2026 18:32
@joshlf
joshlf force-pushed the Gessib3piua3c4koztpng6i7m52bxi73s branch from 45da8d8 to 7b15ddf Compare October 14, 2026 21:43
@joshlf
joshlf force-pushed the G32iu57kafa74nntjntxknpvpzw6gj37z branch from f009677 to 144133f Compare October 14, 2026 21:43
@joshlf
joshlf force-pushed the G32iu57kafa74nntjntxknpvpzw6gj37z branch from 144133f to eec57c3 Compare October 15, 2026 00:40
@joshlf
joshlf force-pushed the Gessib3piua3c4koztpng6i7m52bxi73s branch from 7b15ddf to 584ad93 Compare October 15, 2026 00:40
@joshlf
joshlf force-pushed the G32iu57kafa74nntjntxknpvpzw6gj37z branch from eec57c3 to 526f1f0 Compare October 15, 2026 14:22
A Rust trait bound can promise behavior that a generic function needs to
prove its own specification. Associate an inline invariant with the native
Aeneas dictionary, supply its law for each original generic dictionary,
and require a checked theorem for every extracted local implementation.
Computational dictionaries retain their original types and stay outside
stored-value decoding.

Audit implementation bodies before lowering and independently enumerate
compiled dictionaries when checking proof coverage. Missing laws, replaced
dictionaries, unsupported bound shapes, and proofs assuming their own
conclusions fail closed. A byte codec exercises a concrete XOR proof,
generic forwarding, and callers consuming the resulting round-trip law.

Retain the model providers used by a trait predicate and the original
usize const arguments of native array implementations. Independent checks
reject changed providers, omitted lengths, and extra premises.

A nameless invariant_proof marker selects its exact Rust impl, even
without a caller. Literal macro-input attributes bind through the native
HIR documentation census, checking source origins, text, order and
multiplicity. Direct items retain their header and source-span checks.
Inactive, computed, duplicated or misplaced annotations fail closed.
Unmarked impls reached through callers retain the same proof requirements.

Emit ordinary kernel-checked witnesses for implementation laws and inspect
authored theorem telescopes separately from obligation generation. The final
audit requires every witness, its compiled owner, and its exact proof dependency.
Selecting a trait law does not force unrelated default method bodies into
the extraction.

Preserve original associated-type applications through native dictionary
lifting. Record a narrowly evidenced omitted empty enum without inventing
a Lean inhabitant; independently check its native and compiled absence.

The checked scope is the selected extraction roots and their dependencies;
this does not certify all external implementations of an annotated trait.

Agent-authored-by: AI agent acting on joshlf's behalf
Prepare provisional editor projects using fresh compiler bindings,
including their trait dictionaries and native layout evidence. Keep
compiler-generated trait projections protected from reverse edits;
development checks still cannot certify the complete CI contract.

gherrit-pr-id: G32iu57kafa74nntjntxknpvpzw6gj37z

This branch has not been deployed

No deployments
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.

2 participants