def h.edel_miss.c

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

import bend-kit-collections@0.1.4.1/PROOF.bend as PROOF
import Base
import bend-kit-collections@0.1.4.1/hmap.bend as M

2259def h.edel_miss.c(
2260  ~K: Data, ~V: Data, ~eq: K -> K -> Bool, +key: K, +val: V,
2261  +rest: List<&2, M.Entry<K, V>>, +k: K, b: Bool,
2262  miss: {h.egc(~K, ~V, ~eq, b, val, rest, k) == None{} : Maybe<&2, V>},
2263  ih: {M.HMap.entries.get(~K, ~V, ~eq, rest, k) == None{} : Maybe<&2, V>}
2264    -> {M.HMap.entries.del(~K, ~V, ~eq, rest, k) == rest : List<&2, M.Entry<K, V>>}
2265) -> {h.edc(~K, ~V, ~eq, b, key, val, rest, k) == M.Entry{key, val} <> rest : List<&2, M.Entry<K, V>>}:
2266  match b:
2267    case True{}:
2268      h.some_none({rest == M.Entry{key, val} <> rest : List<&2, M.Entry<K, V>>}, V, val, miss)
2269    case False{}:
2270      Equal.cong(List<&2, M.Entry<K, V>>, List<&2, M.Entry<K, V>>, t => M.Entry{key, val} <> t,
2271        M.HMap.entries.del(~K, ~V, ~eq, rest, k), rest, ih(miss))

Uses (10)

Used by (1)