def inc_zero
bend-collections-laws-crypto@1.0.0.0 · proofs/lib/word.bend:224
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/word.bend as Word
import Base
224
225def inc_zero(+n: Nat, +x: Word(n)) -> {Cmp.is_eq(Word.cmp(n, Word.inc(n, x), Word.zero(n))) == ones(n, x) : Bool}:
226 match n x:
227 case 0n WNil{}:
228 {==}
229 case 1n+p WCon{False{}, t}:
230 eq_fin_tf(Word.cmp(p, t, Word.zero(p)))
231 case 1n+p WCon{True{}, t}:
232 Equal.trans(Bool, Cmp.is_eq(Word.cmp.fin(False{}, False{}, Word.cmp(p, Word.inc(p, t), Word.zero(p)))), Cmp.is_eq(Word.cmp(p, Word.inc(p, t), Word.zero(p))), ones(p, t), eq_fin_ff(Word.cmp(p, Word.inc(p, t), Word.zero(p))), inc_zero(p, t))