def put_xor

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/aes/gf.bend:139

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/gf.bend as Gf
import Base

139def put_xor(+p: Nat, +c: Bool, +d: Bool, +s: Word(p), +t: Word(p)) -> {Word.shl.put(p, Bool.xor(c, d), Word.xor(p, s, t)) == Word.xor(p, Word.shl.put(p, c, s), Word.shl.put(p, d, t)) : Word(p)}:
140  match p s t:
141    case 0n WNil{} WNil{}:
142      {==}
143    case 1n+q WCon{x, s1} WCon{y, t1}:
144      %put_xor(q, x, y, s1, t1) : {WCon{Bool.xor(c, d), Word.shl.put(q, Bool.xor(x, y), Word.xor(q, s1, t1))} == WCon{Bool.xor(c, d), _} : Word(1n+q)}
145      {==}

Uses (8)

Used by (1)