def pm.fin.bnd

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

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

1087# Workaround for https://github.com/bendlang/bend/issues/1077: bind the tuple without +.
1088def pm.fin.bnd(
1089  ~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, ~trans: Trans(~K, ~cmp),
1090  r: K & V & O.OMap<K, V>, +lb: Maybe<&2, K>, +ub: Maybe<&2, K>, +k: K, +v: V,
1091  +hi: O.OMap<K, V>,
1092  ih: {PM(~K, ~V, ~cmp, lb, Some{k}, r) == True{} : Bool},
1093  eb: {Laws.below(~K, ~cmp, ub, k) == True{} : Bool},
1094  eh: {Laws.bounded(~K, ~V, ~cmp, hi, Some{k}, ub) == True{} : Bool}
1095) -> {PM(~K, ~V, ~cmp, lb, ub, O.OMap.pop_min.fin(K, V, k, v, hi, r)) == True{} : Bool}:
1096  (mk, rest) = r
1097  (mv, t) = rest
1098  pm.fin.bnd.go(~K, ~V, ~cmp, ~trans, mk, mv, t, lb, ub, k, v, hi, ih, eb, eh)

Uses (12)

Used by (1)