ProofValue.wv.pre: def of bend-osdev-word64@0.1.1.1 Import: import bend-osdev-word64@0.1.1.1/proof_value.bend as ProofValue Lines 436-438 of bend-osdev-word64@0.1.1.1/proof_value.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.1/proof_value.bend&start_line=436&end_line=438 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 # (l + 2^n h) + 2^n z = l + 2^n (h + z) def wv.pre(+n: Nat, +l: Nat, +h: Nat, +z: Nat) -> {Nat.add(Nat.add(l, U.U32Nat.dbl(n, h)), U.U32Nat.dbl(n, z)) == Nat.add(l, U.U32Nat.dbl(n, Nat.add(h, z))) : Nat}: Equal.trans(Nat, Nat.add(Nat.add(l, U.U32Nat.dbl(n, h)), U.U32Nat.dbl(n, z)), Nat.add(l, Nat.add(U.U32Nat.dbl(n, h), U.U32Nat.dbl(n, z))), Nat.add(l, U.U32Nat.dbl(n, Nat.add(h, z))), UL.nat_add_assoc(l, U.U32Nat.dbl(n, h), U.U32Nat.dbl(n, z)), Equal.cong(Nat, Nat, v => Nat.add(l, v), Nat.add(U.U32Nat.dbl(n, h), U.U32Nat.dbl(n, z)), U.U32Nat.dbl(n, Nat.add(h, z)), Equal.sym(Nat, U.U32Nat.dbl(n, Nat.add(h, z)), Nat.add(U.U32Nat.dbl(n, h), U.U32Nat.dbl(n, z)), UL.dbl_add(n, h, z)))) Uses (8): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.cong https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.trans https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=dbl_add https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=nat_add_assoc https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/u32.bend&name=U32Nat.dbl