def tr.cbc_enc_go
bend-osdev-cbc@0.1.0.0 · PROOF.bend:223
import bend-osdev-cbc@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-mode-core@0.1.0.0/mode_core.bend as M
import bend-osdev-cbc@0.1.0.0/cbc.bend as C
223def tr.cbc_enc_go(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, +k: K, bs: List<&2, M.CmBlock>, +iv: M.CmBlock, +acc: List<&2, M.CmBlock>) -> {C.cbc.enc.go(~K, ~enc, k, bs, iv, acc) == M.cm.blocks.rev_onto(acc, C.cbc.enc(~K, ~enc, k, bs, iv)) : List<&2, M.CmBlock>}:
224 match bs:
225 case Nil{}:
226 {==}
227 case Con{+p, +t}:
228 tr.cbc_enc_go(~K, ~enc, k, t, enc(k, M.CmBlock.xor(iv, p)), Con{enc(k, M.CmBlock.xor(iv, p)), acc})