Skip to content

proof(verifier-spec): ADR-0005 — MkTrustedFixture audit boundary (closes #103)#155

Open
hyperpolymath wants to merge 1 commit into
mainfrom
proof/verifier-spec-adr-103
Open

proof(verifier-spec): ADR-0005 — MkTrustedFixture audit boundary (closes #103)#155
hyperpolymath wants to merge 1 commit into
mainfrom
proof/verifier-spec-adr-103

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

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 fidelitytrustedWitness : 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

Test plan

Cross-references

🤖 Generated with Claude Code

Base automatically changed from proof/epistemic-fresh-pin-102 to main June 3, 2026 23:36
@hyperpolymath hyperpolymath enabled auto-merge (squash) June 6, 2026 18:10
@hyperpolymath hyperpolymath disabled auto-merge June 6, 2026 18:13
@hyperpolymath hyperpolymath enabled auto-merge (squash) June 6, 2026 18:13
@hyperpolymath hyperpolymath force-pushed the proof/verifier-spec-adr-103 branch from dfe3c0d to 8f931a7 Compare June 7, 2026 02:31
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 7, 2026

🔍 Hypatia Security Scan

Findings: 108 issues detected

Severity Count
🔴 Critical 1
🟠 High 6
🟡 Medium 101

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in boj-build.yml",
    "type": "missing_timeout_minutes",
    "file": "boj-build.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in c5-regenerate.yml",
    "type": "missing_timeout_minutes",
    "file": "c5-regenerate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in cargo-audit.yml",
    "type": "missing_timeout_minutes",
    "file": "cargo-audit.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in codeql.yml",
    "type": "missing_timeout_minutes",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in e2e.yml",
    "type": "missing_timeout_minutes",
    "file": "e2e.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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.

Proof bodies for VerifierSpecAgreement / SourceVerifierAgreement (statements landed in #79; bodies are long-tail)

1 participant