| kar[m1] = key-index(key, m), ar[m] = elemindex(a, m1), 2exp-size(# kar), m1 < # kar, m1 < m0, heap-order(kar, m0), no-dups-idx(kar, m0), valid-idx(kar, ar, m0), key-index(key, m) ∈ keyset(kar, m0), # ar ≤ kar[m0 - 1].idx, m0 ≤ # kar ⊦ # keyset(kar, m0) = 0, m0 - 1 = m1, keyset(kar, m0) = ∅, m0 = 1 |
ar[m] = elemindex(a, m1), kar[m1] = key-index(key, m), m0 = m2 + 1, 2exp-size(# kar), m1 < m0, m1 < # kar, heap-order(kar, m0), no-dups-idx(kar, m0), valid-idx(kar, ar, m0), key-index(key, m) ∈ keyset(kar, m0), m0 ≤ # kar, # ar ≤ kar[m2].idx ⊦ # keyset(kar, m0) = 0, keyset(kar, m0) = ∅, m0 = 1, m0 = 0, m2 = m1
Used simplifier rules: ⊦ keyset(kar, 0) = ∅; (s)%n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: m0, m2