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