law word_add_exact
import bend-mathlib@0.8.1.0/u32.bend as U32import Base
import bend-mathlib@0.8.1.0/nat.bend as MNat
347# Word addition is exact without overflow: a + b < 2^n implies to_nat (add a b) = a + b.
348law word_add_exact:
349 for n: Nat
350 for a: Word(n)
351 for b: Word(n)
352 for h: MNat.lt(Nat.add(Word.to_nat(n, a), Word.to_nat(n, b)), Nat.pow(2n, n))
353 {Word.to_nat(n, Word.add(n, a, b)) == Nat.add(Word.to_nat(n, a), Word.to_nat(n, b)) : Nat}