ProofShift.ws.gshr_hi_v: def of bend-osdev-word64@0.1.1.1 Import: import bend-osdev-word64@0.1.1.1/proof_shift.bend as ProofShift Lines 447-449 of bend-osdev-word64@0.1.1.1/proof_shift.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.1/proof_shift.bend&start_line=447&end_line=449 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 import bend-osdev-word64@0.1.1.1/proof_value.bend as P # a shift right by n <= k: the low half is the high half shifted by k - n def ws.gshr_hi_v(+n: Nat, +k: Nat, +hw: Word(n)) -> {P.wv.V(n, Word.zero(n), ws.shr(n, Nat.sub(k, n), hw)) == Word.to_nat(n, ws.shr(n, Nat.sub(k, n), hw)) : Nat}: Equal.trans(Nat, P.wv.V(n, Word.zero(n), ws.shr(n, Nat.sub(k, n), hw)), Nat.add(Word.to_nat(n, ws.shr(n, Nat.sub(k, n), hw)), U.U32Nat.dbl(n, 0n)), Word.to_nat(n, ws.shr(n, Nat.sub(k, n), hw)), Equal.cong(Nat, Nat, v => Nat.add(Word.to_nat(n, ws.shr(n, Nat.sub(k, n), hw)), U.U32Nat.dbl(n, v)), Word.to_nat(n, Word.zero(n)), 0n, UL.word_zero_value(n)), ns.d0(n, Word.to_nat(n, ws.shr(n, Nat.sub(k, n), hw)))) Uses (13): 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.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.to_nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.zero https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=word_zero_value 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-word64@0.1.1.1/proof_shift.bend&name=ns.d0 https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.1/proof_shift.bend&name=ws.shr https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.1/proof_value.bend&name=wv.V