law hmap_collision_size

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

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

692law hmap_collision_size:
693  for ~K: Data
694  for ~V: Data
695  for ~hash: K -> U32
696  for ~eq: K -> K -> Bool
697  for ~refl: @x: K -> {eq(x, x) == True{} : Bool}
698  for ~sound: @x: K -> @y: K -> {eq(x, y) == True{} : Bool} -> {x == y : K}
699  for +m: M.HMap<K, V>
700  for +wf: {hmap_wf(~K, ~V, ~hash, ~eq, m) == True{} : Bool}
701  for +k1: K
702  for +k2: K
703  for ne: {k1 != k2 : K}
704  for same: {hash(k1) == hash(k2) : U32}
705  for +v1: V
706  for +v2: V
707  for miss1: {M.HMap.get(~K, ~V, ~hash, ~eq, m, k1) == None{} : Maybe<&2, V>}
708  for miss2: {M.HMap.get(~K, ~V, ~hash, ~eq, m, k2) == None{} : Maybe<&2, V>}
709  {M.HMap.size(K, V,
710     M.HMap.put(~K, ~V, ~hash, ~eq, M.HMap.put(~K, ~V, ~hash, ~eq, m, k1, v1), k2, v2))
711   == 2n+M.HMap.size(K, V, m) : Nat}

Uses (15)

Used by (0)

No other definition uses this definition.