You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Closes#103 by taking **path (3)** from the
issue's three closure paths — an explicit ADR pinning `MkTrustedFixture`
as the formal audit boundary for `VerifierAccepts` / `SourceAccepts`.
PR #79 (`06ec00e`) landed TOTAL bodies for `VerifierSpecAgreement` and
`SourceVerifierAgreement`. What remained per #103: the trust-injection
moment (every `VADifferential` / `SADifferential` ultimately routes
through `MkTrustedFixture`) needed a load-bearing, named,
cross-referenced specification rather than an inline docstring.
## What lands
### `docs/decisions/0005-trustedfixture-audit-boundary.adoc` (new ADR,
Accepted)
Pins three inspection invariants every `MkTrustedFixture m` construction
site is audited against:
- **I1 Provenance** — `(trustedFixtureName, trustedFixtureId)` must
correspond to an existing row in
`crates/typed-wasm-verify/tests/cross_compat.rs`.
- **I2 Witness fidelity** — `trustedWitness : FunctionsAccepted
m.functions` must be the structural witness the harness's ACCEPT verdict
establishes; rejected fixtures yield no `MkTrustedFixture`.
- **I3 Module shape** — the indexing `ModuleSummary` must mirror the
harness's `ModuleSummary` reconstruction for the same fixture bytes
(function order + decoded ownership intents).
Also names the supersession path: a future **WasmCert-Isabelle
tie-back** (issue #103 path 1) or **constructive Rust-verifier
soundness** (issue #103 path 2) would each ship as a fresh ADR
superseding 0005 by collapsing the audit boundary into a constructive
proof.
### `docs/decisions/README.adoc`
Index row for ADR-0005 + 1-line owner-line header normalisation (hook
compliance).
### `src/abi/TypedWasm/ABI/VerifierSpec.idr`
6-line docstring addition near `MkTrustedFixture` cross-referencing
ADR-0005 so a reader landing on the record's definition can find the
invariants without rediscovering them. Single grep point for trust
injections preserved: \`git grep MkTrustedFixture\`. Same 1-line
owner-line normalisation as #152's Epistemic.idr (parenthetical removal
only; no licence change, no SPDX change; owner-approved via
AskUserQuestion mid-session).
### `PROOF-NEEDS.md`
New `RECONCILIATION 2026-06-02` banner recording the closure with the
I1/I2/I3 summary and the supersession note. Matches the convention of
the prior `RECONCILIATION 2026-05-27 (post-A10 items 7 + 8 bodies
closed)` banner. Same 3-line owner-line header normalisation already
landed on #153's branch.
## Stacking
This PR is **stacked on #152** (`proof/epistemic-fresh-pin-102`) — base
set accordingly. Reason: #152 contains the HEAD build fix for
`composeWitnessLegacyAgree`; #103's docstring edit on `VerifierSpec.idr`
requires a clean package build to land. The incremental diff (visible
here) is **only** the ADR + cross-references — 4 files / +351 lines / -2
lines.
When #152 merges, this PR will rebase forward to `main` and be a
1-commit fast-forward.
## What this is not
- **Not** a constructive proof of Rust-verifier soundness. The Rust
verifier remains the trusted base for the differential path; ADR-0005
pins the audit story for that trust, not its discharge.
- **Not** a change to any Idris2 type. PR #79's record shape remains
canonical.
- **Not** a gate on the structural path. `VAStructural` and
`SAStructural` continue to inject zero trust.
## Test plan
- [x] `src/abi/TypedWasm/ABI/VerifierSpec.idr` type-checks rc=0 in
isolation (`idris2 --check`).
- [x] Whole-package build rc=0, 22/22 modules, 0 errors (only
pre-existing shadowing warnings).
- [x] No `believe_me` / `assert_total` / `postulate` / `sorry` /
`assert_smaller` introduced.
- [x] `%default total` preserved across the arc.
- [x] No SPDX-License-Identifier line changed in any file.
Owner-attribution normalisation only on files where the pre-commit hook
required it (parenthetical removal — same micro-pattern as #152's
Epistemic.idr and #153's PROOF-NEEDS.md).
- [ ] CI green on stacked head.
## Cross-references
- Closes#103.
- Refs #79 — statement-level landing of agreement records (commit
`06ec00e`).
- Refs #74 — superseded alternative design (`RegisteredFixture` GADT +
`Maybe`-returning bridges); composable add-on if a fixture-table module
is ever wanted.
- Refs #102, #152, #153 — companion proof work in flight (this PR stacks
on #152).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
0 commit comments