equiv_receipt.receipt
EQUIV-1 receipts — a portable, independently re-derivable equivalence verdict.
The receipt binds, into a salted hash chain: the two circuit descriptions, the identity of the encoder that produced the formula, the formula itself, and the refutation. A verifier re-runs the RUP check over the committed formula and proof and recomputes the chain. It needs nothing from the producer.
The design choice that matters: the receipt commits to the encoder identity and the formula bytes, so a verifier can detect a formula that does not correspond to the circuits it claims to. A receipt carrying only a proof would let a producer supply a valid refutation of the wrong formula.
Standard library only.
Raised when a receipt fails verification.
Hash-chain a record list. Each record carries the digest of the previous.
Assemble an EQUIV-1 receipt.
verdict is "EQUIVALENT" or "COUNTEREXAMPLE". The verdict is
recorded but re-derived by verify_receipt(); recording it is a
convenience, never a basis for acceptance.
Re-derive the verdict and the commitments. Returns a result dict.
Checks, in order: format; chain integrity; commitment root over the payload; and — the one that matters — the verdict, re-derived by running the RUP checker over the committed formula and proof, or by re-simulating the committed counterexample.