| bin-heap-inv(bh, ar), ar0 = ar, bh0 = bh, key-index(key0, m) ∈ keyset(bh0), ar[m].idx = n ⊦ ⟪bin_min_heap_update#(n, key; bh, ar)⟫ (bin-heap-inv(bh, ar) ∧ id-idx(ar0, ar) ∧ keyset(bh) = (keyset(bh0) -- key-index(key0, m)) ++ key-index(key, m)) |
ar[m].idx = n, ar0 = ar, bh0 = bh, bin-heap-inv(bh, ar), key-index(key0, m) ∈ keyset(bh0) ⊦ ⟪bin_min_heap_update#(n, key; bh, ar)⟫ (bin-heap-inv(bh, ar) ∧ id-idx(ar0, ar) ∧ keyset(bh) = (keyset(bh0) -- key-index(key0, m)) ++ key-index(key, m))