def rejects

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/mac/proof.bend:31

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/mac/proof.bend as Proof
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/mac.bend as MAC
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/mac/laws.bend as Laws

31def rejects(+key: List<&2, U32>, +msg: List<&2, U32>, +tag: List<&2, U32>, ne: {tag != MAC.sign(key, msg) : List<&2, U32>}, +b: Bool, +eb: {MAC.verify(key, msg, tag) == b : Bool}) -> {MAC.verify(key, msg, tag) == False{} : Bool}:
32  match b:
33    case True{}:
34      Empty.absurd({MAC.verify(key, msg, tag) == False{} : Bool}, ne(Laws.Verify.sound(key, msg, tag, eb)))
35    case False{}:
36      eb

Uses (8)

Used by (1)