def bl_le

bend-collections-laws-math@1.0.0.0 · proofs/math/typed/f64bl.bend:57

import bend-collections-laws-math@1.0.0.0/proofs/math/typed/f64bl.bend as F64bl
import Base
import bend-collections-laws-math@1.0.0.0/spec/lib/common.bend as C
import bend-collections-laws-math@1.0.0.0/src/math/natural.bend as M
import bend-collections-laws-math@1.0.0.0/proofs/lib/nat.bend as N

57def bl_le(+K: Nat, +n: Nat, +hn: {C.fits(K, n) == True{} : Bool}, +c: Bool, +hc: {Nat.is_le(M.bit_length(n), K) == c : Bool}) -> {c == True{} : Bool}:
58  match c:
59    case True{}:
60      {==}
61    case False{}:
62      +hk = N.lt_succ_le_succ(K, M.bit_length(n), N.not_le_lt(M.bit_length(n), K, hc))
63      +hp = N.pow2_mono(1n+K, M.bit_length(n), hk)
64      bl_le_n(K, n, hn, hp)

Uses (9)

Used by (14)