PROOFText.wsd.mulpw: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/PROOF_text.bend as PROOFText Lines 113-114 of bend-osdev-word64@0.1.1.0/PROOF_text.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&start_line=113&end_line=114 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 def wsd.mulpw(+n: Nat, +k: Nat, +x: Word(n), +h: {Nat.is_lt(k, n) == True{} : Bool}) -> {Word.to_nat(n, Word.mul(n, x, wsd.pw(n, k))) == U.U32Nat.low(n, U.U32Nat.dbl(k, Word.to_nat(n, x))) : Nat}: Equal.trans(Nat, Word.to_nat(n, Word.mul(n, x, wsd.pw(n, k))), U.U32Nat.low(n, Nat.mul(Word.to_nat(n, x), U.U32Nat.dbl(k, 1n))), U.U32Nat.low(n, U.U32Nat.dbl(k, Word.to_nat(n, x))), Equal.trans(Nat, Word.to_nat(n, Word.mul(n, x, wsd.pw(n, k))), U.U32Nat.low(n, Nat.mul(Word.to_nat(n, x), Word.to_nat(n, wsd.pw(n, k)))), U.U32Nat.low(n, Nat.mul(Word.to_nat(n, x), U.U32Nat.dbl(k, 1n))), UL.word_mul_low(n, x, wsd.pw(n, k)), Equal.cong(Nat, Nat, zz => U.U32Nat.low(n, Nat.mul(Word.to_nat(n, x), zz)), Word.to_nat(n, wsd.pw(n, k)), U.U32Nat.dbl(k, 1n), wsd.pwv(n, k, h))), Equal.cong(Nat, Nat, zz => U.U32Nat.low(n, zz), Nat.mul(Word.to_nat(n, x), U.U32Nat.dbl(k, 1n)), U.U32Nat.dbl(k, Word.to_nat(n, x)), wr.t0(Word.to_nat(n, x), k))) Uses (15): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool 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.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.is_lt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.to_nat https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=word_mul_low https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/u32.bend&name=U32Nat.dbl https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/u32.bend&name=U32Nat.low https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&name=wr.t0 https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&name=wsd.pw https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&name=wsd.pwv