def dbl_add

bend-collections-laws-crypto@1.0.0.0 · proofs/math/random/lemire.bend:240

import bend-collections-laws-crypto@1.0.0.0/proofs/math/random/lemire.bend as Lemire
import Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/nat.bend as N

240def dbl_add(+z: Nat) -> {Nat.double(z) == Nat.add(z, z) : Nat}:
241  match z:
242    case 0n:
243      {==}
244    case 1n+p:
245      %Equal.sym(Nat, Nat.add(p, 1n+p), 1n+Nat.add(p, p), N.add_succ(p, p)) : {2n+Nat.double(p) == 1n+_ : Nat}
246      Equal.cong(Nat, Nat, x => 2n+x, Nat.double(p), Nat.add(p, p), dbl_add(p))

Uses (6)

Used by (1)