def shr_bridge
import bend-collections-laws-math@1.0.0.0/proofs/lib/u32half.bend as U32halfimport Base
import bend-collections-laws-math@1.0.0.0/proofs/lib/u32.bend as U
import bend-collections-laws-math@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.