OPEN VERIFICATION · REFUSAL + UNCHANGED DESTINATION

Deterministic Refusal Proof: Blocked Mutation, Non-Action Receipt, and Unchanged Destination Verification

Three real out-of-policy proposals. Three deterministic refusals. Three protected destinations whose pre-attempt and post-refusal SHA-256 digests match byte for byte.

PANEL 01 · BEFORE ATTEMPT

Protected target pre-state

Each target has a recorded baseline, byte length, and 64-byte SHA-256 identity. The SQLite fixture also retains row versions and integrity state.

er-repeat.txt · 65 bytes
bf15f8633e85350430adf1bbc47a47154965d3a7f28e4ebad25d6a39ecaa2f8c
ungated.txt · 3 bytes
2d27fbdf4e8ca207afbfa388ca9172fbcc6c70e534af2476b3b704f87debadcf
contacts.db · 16,384 bytes · row version 1
362088a107369e634cdc9c6c520fbca3e2393722860720d3aa2c2eb11b47d719
PANEL 02 · HOSTILE PROPOSALS

Three concrete out-of-policy submissions

Case A · Citation selector fabrication

A citation envelope requests a bounded range of 0..9999 against a 26-character evidence node.

Case B · Write after lease release

A delayed worker proposes replacing v1 with v2 after its active file lease has been released.

Case C · Approval-parameter substitution

The controller pins Controller fixed value; the worker proposes Unrequested but valid value for the same row and version.

PANEL 03 · NON-ACTION RECEIPTS

Deterministic refusal records

Case Aselector_out_of_boundsrange 0..9999 exceeds 26 characters
Case Bexact_file_lease_requiredno active File lock; no destination write
Case Crequested_act_mismatchcommitted receipt · zero effects · model calls 0

A separate stale-generation request is refused with stale_lease_generation: expected 8, current 1 before target creation. No nonexistent preimage is claimed.

PANEL 04 · AFTER REFUSAL

Destination verification: pre_sha256 == post_sha256

er-repeat.txt65/65 bytes unchangedMATCH
ungated.txt3/3 bytes unchangedMATCH
contacts.db16,384/16,384 bytes unchanged · 0 effectsMATCH

The offline verifier recomputes every fixture digest, checks every receipt and all 45 fresh conformance cases, and verifies the complete integrity manifest.

45/45 fresh candidate cases 20/20 evidence cases 118.753576s execution 0 proprietary binaries published

Reproduce the verification offline

Download the bundle and run the zero-dependency Python 3 verifier from its root. It recomputes all three digest chains, validates the stale-generation reason-only case, checks all 45 fresh cases and 20 evidence cases, parses every schema, and verifies the integrity manifest.

python verify_refusal_proof.py

Artifact inventory