def assoc
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/u32alg.bend as U32algimport Base
281def assoc(+a: U32, +b: U32, +c: U32) -> {U32.add(U32.add(a, b), c) == U32.add(a, U32.add(b, c)) : U32}:
282 match a b c:
283 case U32{x} U32{y} U32{z}:
284 Equal.cong(Word(32n), U32, w => U32{w}, Word.add(32n, Word.add(32n, x, y), z), Word.add(32n, x, Word.add(32n, y, z)), w_assoc(32n, x, y, z))