def rot_hi.single.bnd

bend-kit-collections@0.1.4.1 · PROOF.bend:390

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

390def rot_hi.single.bnd(
391  ~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, ~trans: Trans(~K, ~cmp),
392  +lb: Maybe<&2, K>, +ub: Maybe<&2, K>, +k: K, +v: V, +lk: K, +lv: V,
393  +ll: O.OMap<K, V>, +lh: O.OMap<K, V>, +hi: O.OMap<K, V>,
394  +eb: {Laws.below(~K, ~cmp, ub, k) == True{} : Bool},
395  +el: {Laws.bounded(~K, ~V, ~cmp, O.OBin{0, lk, lv, ll, lh}, lb, Some{k}) == True{} : Bool},
396  eh: {Laws.bounded(~K, ~V, ~cmp, hi, Some{k}, ub) == True{} : Bool}
397) -> {Laws.bounded(~K, ~V, ~cmp,
398       O.OMap.bin(K, V, lk, lv, ll, O.OMap.bin(K, V, k, v, lh, hi)), lb, ub) == True{} : Bool}:
399  +l_b = bn.b(~K, ~V, ~cmp, lb, Some{k}, lk, lv, ll, lh, el)
400  bn.i(~K, ~V, ~cmp, lb, ub, lk, lv, ll, O.OMap.bin(K, V, k, v, lh, hi),
401    bn.a(~K, ~V, ~cmp, lb, Some{k}, lk, lv, ll, lh, el),
402    below_trans(~K, ~cmp, ~trans, ub, lk, k, l_b, eb),
403    bn.l(~K, ~V, ~cmp, lb, Some{k}, lk, lv, ll, lh, el),
404    bn.i(~K, ~V, ~cmp, Some{lk}, ub, k, v, lh, hi, l_b, eb,
405      bn.h(~K, ~V, ~cmp, lb, Some{k}, lk, lv, ll, lh, el), eh))

Uses (14)

Used by (2)