def shr_bridge

bend-collections-laws-crypto@1.0.0.0 · proofs/lib/u32half.bend:112

import bend-collections-laws-crypto@1.0.0.0/proofs/lib/u32half.bend as U32half
import Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/u32.bend as U
import bend-collections-laws-crypto@1.0.0.0/spec/lib/common.bend as SC

112def shr_bridge(+i: Nat, +k: Nat, +hk: {Nat.is_le(k, 32n) == True{} : Bool}, +hi: {Nat.is_lt(i, SC.pow2(k)) == True{} : Bool}) -> {U32.shr(U32.from_nat(i)) == U32.from_nat(hlf(i)) : U32}:
113  +ri = U.to_nat_from_nat(i, k, hk, hi)
114  U.injective(U32.shr(U32.from_nat(i)), U32.from_nat(hlf(i)),
115    Equal.trans(Nat, U32.to_nat(U32.shr(U32.from_nat(i))), hlf(i), U32.to_nat(U32.from_nat(hlf(i))),
116      Equal.trans(Nat, U32.to_nat(U32.shr(U32.from_nat(i))), hlf(U32.to_nat(U32.from_nat(i))), hlf(i),
117        shr_value(U32.from_nat(i)),
118        Equal.cong(Nat, Nat, hlf, U32.to_nat(U32.from_nat(i)), i, ri)),
119      Equal.sym(Nat, U32.to_nat(U32.from_nat(hlf(i))), hlf(i),
120        U.to_nat_from_nat(hlf(i), k, hk, hlf_bound(i, k, hi)))))

Uses (17)

Used by (0)

No other definition uses this definition.