def wr.b4
bend-osdev-word64@0.1.1.0 · PROOF_bits.bend:171
import bend-osdev-word64@0.1.1.0/PROOF_bits.bend as PROOFBits
import Base
import bend-osdev-u32@0.1.0.0/u32.bend as U
import bend-osdev-u32@0.1.0.0/LAWS.bend as UL
171def wr.b4(+x0: Nat, +x1: Nat) -> {Nat.add(Nat.double(x0), U.U32Nat.dbl(32n, Nat.double(x1))) == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}:
172 %Equal.sym(Nat, Nat.double(x0), Nat.add(x0, x0), UL.nat_double(x0)) : {Nat.add(_, U.U32Nat.dbl(32n, Nat.double(x1))) == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
173 %Equal.sym(Nat, Nat.double(x1), Nat.add(x1, x1), UL.nat_double(x1)) : {Nat.add(Nat.add(x0, x0), U.U32Nat.dbl(32n, _)) == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
174 %Equal.sym(Nat, U.U32Nat.dbl(32n, Nat.add(x1, x1)), Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1)), UL.dbl_add(32n, x1, x1)) : {Nat.add(Nat.add(x0, x0), _) == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
175 %Equal.sym(Nat, Nat.add(Nat.add(x0, x0), Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1))), Nat.add(x0, Nat.add(x0, Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1)))), UL.nat_add_assoc(x0, x0, Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1)))) : {_ == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
176 %Equal.sym(Nat, Nat.add(x0, Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1))), Nat.add(U.U32Nat.dbl(32n, x1), Nat.add(x0, U.U32Nat.dbl(32n, x1))), Equal.sym(Nat, Nat.add(U.U32Nat.dbl(32n, x1), Nat.add(x0, U.U32Nat.dbl(32n, x1))), Nat.add(x0, Nat.add(U.U32Nat.dbl(32n, x1), U.U32Nat.dbl(32n, x1))), UL.nat_add_left_comm(U.U32Nat.dbl(32n, x1), x0, U.U32Nat.dbl(32n, x1)))) : {Nat.add(x0, _) == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
177 %Equal.sym(Nat, Nat.add(x0, Nat.add(U.U32Nat.dbl(32n, x1), Nat.add(x0, U.U32Nat.dbl(32n, x1)))), Nat.add(Nat.add(x0, U.U32Nat.dbl(32n, x1)), Nat.add(x0, U.U32Nat.dbl(32n, x1))), Equal.sym(Nat, Nat.add(Nat.add(x0, U.U32Nat.dbl(32n, x1)), Nat.add(x0, U.U32Nat.dbl(32n, x1))), Nat.add(x0, Nat.add(U.U32Nat.dbl(32n, x1), Nat.add(x0, U.U32Nat.dbl(32n, x1)))), UL.nat_add_assoc(x0, U.U32Nat.dbl(32n, x1), Nat.add(x0, U.U32Nat.dbl(32n, x1))))) : {_ == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
178 %Equal.sym(Nat, Nat.add(Nat.add(x0, U.U32Nat.dbl(32n, x1)), Nat.add(x0, U.U32Nat.dbl(32n, x1))), Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))), Equal.sym(Nat, Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))), Nat.add(Nat.add(x0, U.U32Nat.dbl(32n, x1)), Nat.add(x0, U.U32Nat.dbl(32n, x1))), UL.nat_double(Nat.add(x0, U.U32Nat.dbl(32n, x1))))) : {_ == Nat.double(Nat.add(x0, U.U32Nat.dbl(32n, x1))) : Nat}
179 {==}