def h.eg_none_hashed
bend-kit-collections@0.1.4.1 · PROOF.bend:2164
import bend-kit-collections@0.1.4.1/PROOF.bend as PROOF
import Base
import bend-mathlib@0.7.4.0/bool.bend as MBool
import bend-kit-collections@0.1.4.1/LAWS.bend as Laws
import bend-kit-collections@0.1.4.1/hmap.bend as M
2164def h.eg_none_hashed(
2165 ~K: Data, ~V: Data, ~hash: K -> U32, ~eq: K -> K -> Bool,
2166 ~sound: @x: K -> @y: K -> {eq(x, y) == True{} : Bool} -> {x == y : K},
2167 xs: List<&2, M.Entry<K, V>>, +o: U32, +k: K, +hk: {U32.is_eq(o, hash(k)) == False{} : Bool},
2168 hs: {Laws.hmap_hashed(~K, ~V, ~hash, xs, o) == True{} : Bool}
2169) -> {M.HMap.entries.get(~K, ~V, ~eq, xs, k) == None{} : Maybe<&2, V>}:
2170 match xs:
2171 case Nil{}:
2172 {==}
2173 case Con{M.Entry{+key, +val}, +rest}:
2174 +hs = hs
2175 h.eg_none_hashed.c(~K, ~V, ~hash, ~eq, ~sound, key, val, rest, o, k, hk,
2176 MBool.eq_true_of_and_left(U32.is_eq(o, hash(key)), Laws.hmap_hashed(~K, ~V, ~hash, rest, o), hs),
2177 eq(k, key), {==},
2178 h.eg_none_hashed(~K, ~V, ~hash, ~eq, ~sound, rest, o, k, hk,
2179 MBool.eq_true_of_and_right(U32.is_eq(o, hash(key)), Laws.hmap_hashed(~K, ~V, ~hash, rest, o), hs)))