def h.g_fresh_none

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

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

3056def h.g_fresh_none(
3057  ~K: Data, ~V: Data, ~eq: K -> K -> Bool,
3058  ~sound: @x: K -> @y: K -> {eq(x, y) == True{} : Bool} -> {x == y : K},
3059  p: Nat, +mm: U32, +h2: U32, +k2: K, +hk: U32, +k: K, +v: V, +nk: {eq(k, k2) == False{} : Bool}
3060) -> {h.G(~K, ~V, ~eq, p, mm, M.HLeaf{h2, [M.Entry{k2, v}]}, hk, k) == None{} : Maybe<&2, V>}:
3061  match p:
3062    case 0n:
3063      h.eg_put_other(~K, ~V, ~eq, ~sound, Nil{}, k2, k, v, nk)
3064    case 1n+q:
3065      h.bool_none(V, U32.is_eq(h2, hk), h.EG(~K, ~V, ~eq, [M.Entry{k2, v}], k),
3066        h.eg_put_other(~K, ~V, ~eq, ~sound, Nil{}, k2, k, v, nk))

Uses (12)

Used by (1)