Skip to content
Archive — not current documentation

Archive — Seal claims matrix

Archive — not current documentation. Files in the last two groups describe the Seal family of research repositories or a past design state — they are kept for the record and are not claims about the Node CLI this repository ships.

Scope: This document describes the Seal family product, not the Node CLI shipped by this repository. The state machine is TESTED. For the truth about what you installed, read docs/assurance/RELEASE-NOTES-v0.4.0.md and the README.

Lean proof source: seal-host’s proof reference is the reader-facing index for the Lean proof properties stated here.

One table: every load-bearing claim, marked Proven (a machine-checked Lean 4 theorem), Tested (a named, rerunnable CI gate or test), Assumed (trusted computing base — declared, not proved), or Not claimed (things Seal deliberately does not say).

This matrix is an index, not a new claim surface. The canonical claim text lives in the drift-guarded blocks (docs/archive/LIMITATIONS.md, docs/TRUTH-BOX.mdscripts/claims-drift.mjs enforces verbatim mirrors); theorem-to-file detail lives in seal-host/docs/PROOF-REFERENCE.md and seal-assurance-kit/CLAIMS.md. If this table and those ever disagree, they win.

Proven rows are axiom-gated in their home repo where the cited theorem is named in that repo’s pin sources (seal-host: lake exe axiom_check over the Test/Axioms.lean import-and-pin closure; mcp-seal-dev: Test/Axioms.lean + Test/AxiomAllowlist.lean + the Test/ModuleAxiomScan.lean gate, which scans exactly the modules assigned in its kernelBaselineModuleNames list — an explicit list, not the whole build, so check the list at the rev you are auditing rather than trusting any frozen count; crdt-lean: Test/Axioms.lean #guard_msgs pins, a default target). That coverage is not total. Named exceptions, checked against the pin sources on 2026-08-06: guarded_allow_iff_live and approval_not_transferable_across_targets (both SealCore/Safety.lean) appear in no mcp-seal-dev pin, and SealCore.Safety is not one of the module gate’s assigned modules (SealCore.Safety does not appear in kernelBaselineModuleNames) — those two theorems compile in the build but their axiom footprints are not CI-pinned. Adding them to the pins is a gate change reserved for the maintainer. Each pinned theorem uses at most the minimal classical fragment {propext, Classical.choice, Quot.sound} — no sorry, no native_decide — and some use less (seal-host’s record-chain theorems are axiom-free; several crdt-lean merge lemmas use propext only). The footprints are not one uniform set, and the gate is not repository-wide: seal-host measures 51 of 53 theorem-bearing modules inside its closure; the two outside it are named in seal-host/CLAIMS.md (“Proof build-wire scope”).

Claim Status Checked by Home
An unguarded or unapproved action is never allowed (default deny). Proven default_deny_never_allowed (SealCore/Safety.lean) mcp-seal-dev
The safety kernel allows a guarded target iff its state contains a matching live approval record for that exact target. Proven guarded_allow_iff_live, approval_binds_to_target mcp-seal-dev
An approval for one target never authorizes another (confused deputy blocked). Proven approval_binds_to_target, approval_not_transferable_across_targets (SealCore/Safety.lean) mcp-seal-dev
Approvals are single-use and expire. Proven consumed_approval_not_live, expired_not_live mcp-seal-dev
The canonical request grammar is total to parse and roundtrip-stable, with exactly one byte representation per Unicode string. Proven parse_total, canonical_roundtrip, escapeString_injective mcp-seal-dev (SealV2)
Kernel decisions cannot be bypassed inside the model: every Allow carries a validity witness. Proven non_bypass, decide_emit_unique mcp-seal-dev
Host model properties: the gate reveals only the one authorized bit (non-interference), no double-spend of approvals, replay isolation — at the model level. Proven seal-host Host/ + Kernels/ theorem sets (see PROOF-REFERENCE.md) seal-host
Distributed, necessity: no coordination-free protocol can stop two disconnected replicas both consuming the same authority without a causal handoff (the authority frontier) — over an abstract AuthoritySystem D. Proven authority_frontier_card_le_one, no_disconnected_double_availability (Crdt/AuthorityFrontier.lean) crdt-lean
Distributed, sufficiency: the sealed-handoff pattern (each sender seals its own consume in its causal past before enabling the next) yields ≤ 1 consume per valid cut. Proven in a finite CutWorld model, not lifted to the abstract system; the sealed handoff is not claimed to be the unique safe shape (causal consume-sequencing is a checked third shape). Proven (finite CutWorld model) sealed_handoff_safe; third-shape witnesses wSeq_safe, wSeq_not_sealed_handoff (Crdt/AuthorityFrontier.lean) crdt-lean
Distributed → gate, bridge: the coordination-free no-double-spend necessity transfers onto the SealV2 gate model as a TTL-scoped applicability instance (within TTL, per concurrent replica) — an instance mapping, not a refinement of the full validate-and-consume path. Proven (instance, TTL-scoped) Host.AuthorityFrontierBridge.sealv2_frontier_card_le_one, sealv2_no_disconnected_double_availability (PROOF-REFERENCE.md) seal-host
Deployment-shape safety — shared replay-store: common ApprovalState (“shared DB”) across replicas provably cannot carry the seal (sealv2_shared_not_sealed_senders): at empty init every replica is live; the store’s only blocker is a receipt hit. Validation (not store) is the deployed “sealed” carrier. Proven sealv2_shared_not_sealed_senders (Host/AuthorityFrontierBridge.lean, PROOF-REFERENCE.md) seal-host
Deployment-shape safety — single-delivery (partitioned): per-replica ApprovalState + delivery to exactly one validating replica (d₀ validates, others sealed by validate = none) yields Safe with no hsafe operational assumption (sealv2_partitioned_safe via crdt-lean). Proven sealv2_partitioned_safe (Host/AuthorityFrontierBridge.lean, PROOF-REFERENCE.md) seal-host
Deployment-shape safety — mesh-coordinated (over shared store): shared replay-store + a coordination layer (token/lease/sealed-handoff CRDT from crdt-lean) that designates the single consumer is Safe by composition (sealv2_mesh_safe, with concrete TokenMesh witness mesh_holder_live_at_init). The store contributes the real consume seam; the mesh contributes the seal. Proven (by composition, model-level) sealv2_mesh_safe + witnesses (Host/AuthorityFrontierBridge.lean §Composition, PROOF-REFERENCE.md) seal-host
Minimal receipt/replay interface: replayView (publicKey, session, policyVersion, now) + per-request consumeView is the exact-minimal declassification for stateful non-interference over the durable replay seam (sufficient for capstone stateful_noninterference_trace; every field per-field necessary by counterexamples). Proven replayView + stateful_noninterference_trace + necessity (Host/StatefulNI.lean, PROOF-REFERENCE.md) seal-host
The deployed bodies (Rust host, browser wasm, JS checker) match the proven kernel byte-for-byte over the conformance corpus. Tested conformance bridge (model == native == wasm), CI transcripts in seal-host/docs seal-host
Decision receipts (schema v2) validate, derived hashes recompute, the verdict re-derives identically, and emitted decision bytes are byte-identical. Tested seal verify check list + npm test frozen vectors seal-assurance-kit
A tampered receipt fails verification; a bypass receipt is never reported as verified. Tested seal-check tamper suite (test/receipt-verify.test.cjs), kit bypass expect-fail gate seal-check / seal-assurance-kit
Nonce replay across host restart is rejected (durable replay store, production signed-token channel). Tested sqlite_replay_survives_restart (seal-host Rust tests) seal-host
The live demo’s evidence is real: the blocked destructive request and the bypass-executed one are byte-identical (canonical_request_sha256 equal), and all phase receipts are v2. Tested scripts/assert.mjs (17 invariants, +1 when the optional obfuscation gauntlet ran; gates the docker run) seal-live-demo
The approval field set carries enough information to identify the exact effect it authorizes (receipt-field sufficiency). The pre-v2 field set failed this check — a concrete collision: two different effects indistinguishable through the committed fields — and v2’s args_hash is the field that closes it. A collision indicts the field set, not one implementation; no implementation reading insufficient fields can fix it. Tested (finite refinement analysis) seal adequacy (anchored on witness_computable_iff_refines / witness_separation_fails); witness-check, the private sufficiency analyzer seal-assurance-kit / witness-check
Differences between two receipts are detected and classified against the authorization surface (integrity-checked against each receipt’s own hashes before diffing; a pre-v2 → v2 pair is called out as the approval surface widening). Tested seal receipt-diff test suite (11 cases in the kit’s npm chain) seal-assurance-kit
The seal verify closure runs in CI, vendored into the GitHub Action as a maintained downstream-stricter fork of the kit verifier: pinned to a base kit revision with five named fork-delta files (the action requires a valid signed_config for an authorised outcome; kit HEAD’s verifier is trust-rootless), kernel wasm byte-identical to the kit’s, every vendored file sha256-checked in CI against VENDORED.md, exercised by a fixture selftest workflow. Tested seal-verify-action ci + selftest workflows seal-verify-action
SHA-256 collision resistance. Assumed (named, scoped: A-CR) docs/archive/LIMITATIONS.md, TCB docs family-wide
Rust glue, wasm/JS mirror bodies, Lean toolchain, OS, Ed25519 provider, human operators. Assumed (TCB) seal-host/docs/TCB.md, SEAL-SYSTEM-TCB.md seal-host
MCP is the sole effect channel; an unconfined shell bypasses the gate by design scope. Assumed docs/assurance/evaluator-start.md §7 umbrella
Approval origin (that the signing human is who you think): the proof guarantees ordering; the out-of-band channel guarantees origin. Assumed docs/assurance/evaluator-start.md §7 umbrella
Intent match. Seal proves authorization match: if a human approves a malicious-but-valid request, Seal executes it. Not claimed docs/archive/LIMITATIONS.md
Whole-system correctness. The theorems are kernel claims, connected to deployments by finite conformance evidence, not end-to-end proof. Not claimed docs/archive/LIMITATIONS.md, TRUTH-BOX
Tamper-impossibility. The audit chain is tamper-evident only. Not claimed docs/archive/LIMITATIONS.md
Universal conformance. The corpus is finite evidence, not a theorem over all inputs. Not claimed docs/assurance/evaluator-start.md §6
Making the AI smarter, preventing hallucinations, or surviving compromised hosts/keys/operators. Not claimed docs/archive/LIMITATIONS.md

Read next: What Seal is NOT (the buyer-legible honesty boundary) and docs/assurance/evaluator-start.md (the proved-vs-deployed map). The Seal fleet links are public and resolve for everyone; witness-check remains proprietary.