def rot_lo.single.bnd
bend-kit-collections@0.1.4.1 · PROOF.bend:311
import bend-kit-collections@0.1.4.1/PROOF.bend as PROOF
import Base
import bend-kit-collections@0.1.4.1/LAWS.bend as Laws
import bend-kit-collections@0.1.4.1/omap.bend as O
311def rot_lo.single.bnd(
312 ~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, ~trans: Trans(~K, ~cmp),
313 +lb: Maybe<&2, K>, +ub: Maybe<&2, K>, +k: K, +v: V, +lo: O.OMap<K, V>,
314 +hk: K, +hv: V, +hl: O.OMap<K, V>, +hh: O.OMap<K, V>,
315 +ea: {Laws.above(~K, ~cmp, lb, k) == True{} : Bool},
316 el: {Laws.bounded(~K, ~V, ~cmp, lo, lb, Some{k}) == True{} : Bool},
317 +eh: {Laws.bounded(~K, ~V, ~cmp, O.OBin{0, hk, hv, hl, hh}, Some{k}, ub) == True{} : Bool}
318) -> {Laws.bounded(~K, ~V, ~cmp,
319 O.OMap.bin(K, V, hk, hv, O.OMap.bin(K, V, k, v, lo, hl), hh), lb, ub) == True{} : Bool}:
320 +h_a = bn.a(~K, ~V, ~cmp, Some{k}, ub, hk, hv, hl, hh, eh)
321 bn.i(~K, ~V, ~cmp, lb, ub, hk, hv, O.OMap.bin(K, V, k, v, lo, hl), hh,
322 above_trans(~K, ~cmp, ~trans, lb, k, hk, ea, h_a),
323 bn.b(~K, ~V, ~cmp, Some{k}, ub, hk, hv, hl, hh, eh),
324 bn.i(~K, ~V, ~cmp, lb, Some{hk}, k, v, lo, hl, ea, h_a, el,
325 bn.l(~K, ~V, ~cmp, Some{k}, ub, hk, hv, hl, hh, eh)),
326 bn.h(~K, ~V, ~cmp, Some{k}, ub, hk, hv, hl, hh, eh))