def h.eg_put_same

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

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

2100def h.eg_put_same(
2101  ~K: Data, ~V: Data, ~eq: K -> K -> Bool, ~refl: @x: K -> {eq(x, x) == True{} : Bool},
2102  xs: List<&2, M.Entry<K, V>>, +k: K, +v: V
2103) -> {M.HMap.entries.get(~K, ~V, ~eq, M.HMap.entries.put(~K, ~V, ~eq, xs, k, v), k) == Some{v} : Maybe<&2, V>}:
2104  match xs:
2105    case Nil{}:
2106      %h.sb(eq(k, k), True{}, refl(k)) : {h.egc(~K, ~V, ~eq, _, v, Nil{}, k) == Some{v} : Maybe<&2, V>}
2107      {==}
2108    case Con{M.Entry{+key, +val}, +rest}:
2109      h.eg_put_same.c(~K, ~V, ~eq, key, val, rest, k, v, eq(k, key), {==},
2110        h.eg_put_same(~K, ~V, ~eq, ~refl, rest, k, v))

Uses (9)

Used by (4)