law hmap_collision_get

bend-kit-collections@0.1.4.1 · LAWS.bend:672

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

672# Two distinct keys with one hash share a bucket; both stay reachable.
673law hmap_collision_get:
674  for ~K: Data
675  for ~V: Data
676  for ~hash: K -> U32
677  for ~eq: K -> K -> Bool
678  for ~refl: @x: K -> {eq(x, x) == True{} : Bool}
679  for ~sound: @x: K -> @y: K -> {eq(x, y) == True{} : Bool} -> {x == y : K}
680  for +m: M.HMap<K, V>
681  for +wf: {hmap_wf(~K, ~V, ~hash, ~eq, m) == True{} : Bool}
682  for +k1: K
683  for +k2: K
684  for ne: {k2 != k1 : K}
685  for same: {hash(k1) == hash(k2) : U32}
686  for +v1: V
687  for +v2: V
688  {M.HMap.get(~K, ~V, ~hash, ~eq,
689     M.HMap.put(~K, ~V, ~hash, ~eq, M.HMap.put(~K, ~V, ~hash, ~eq, m, k1, v1), k2, v2), k1)
690   == Some{v1} : Maybe<&2, V>}

Uses (13)

Used by (0)

No other definition uses this definition.