PROOFText.wsd.k3: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/PROOF_text.bend as PROOFText Lines 175-177 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=175&end_line=177 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 # q < 2^h: the shift of q by h is 2^h q def wsd.k3(+n: Nat, +h: Nat, +Qo: Nat, +Sq: Nat, +en: {Nat.add(h, h) == n : Nat}, +hQ: {Nat.is_lt(Qo, U.U32Nat.dbl(h, 1n)) == True{} : Bool}, +esq: {Sq == U.U32Nat.low(n, U.U32Nat.dbl(h, Qo)) : Nat}) -> {Sq == U.U32Nat.dbl(h, Qo) : Nat}: Equal.trans(Nat, Sq, U.U32Nat.low(n, U.U32Nat.dbl(h, Qo)), U.U32Nat.dbl(h, Qo), esq, UL.low_small(n, U.U32Nat.dbl(h, Qo), Equal.trans(Bool, Nat.is_lt(U.U32Nat.dbl(h, Qo), U.U32Nat.dbl(n, 1n)), Nat.is_lt(U.U32Nat.dbl(h, Qo), U.U32Nat.dbl(h, U.U32Nat.dbl(h, 1n))), True{}, Equal.cong(Nat, Bool, zz => Nat.is_lt(U.U32Nat.dbl(h, Qo), zz), U.U32Nat.dbl(n, 1n), U.U32Nat.dbl(h, U.U32Nat.dbl(h, 1n)), Equal.sym(Nat, U.U32Nat.dbl(h, U.U32Nat.dbl(h, 1n)), U.U32Nat.dbl(n, 1n), Equal.sym(Nat, U.U32Nat.dbl(n, 1n), U.U32Nat.dbl(h, U.U32Nat.dbl(h, 1n)), wm.fn(h, n, 1n, en)))), Equal.trans(Bool, Nat.is_lt(U.U32Nat.dbl(h, Qo), U.U32Nat.dbl(h, U.U32Nat.dbl(h, 1n))), Nat.is_lt(Qo, U.U32Nat.dbl(h, 1n)), True{}, UL.dbl_lt(h, Qo, U.U32Nat.dbl(h, 1n)), hQ)))) Uses (12): 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.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=Base/base.bend&name=Nat.is_lt https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=dbl_lt https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=low_small 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=wm.fn