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