| 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-index(key0, m0) ∈ keyset(kar, m) ∧ (ki ∈ keyset(kar, m) → ¬ ki.key < key0) |
kar[0] = key-index(key0, m0), ki = key-index(key, m1), 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-index(key0, m0) ∈ keyset(kar, m) ∧ (ki ∈ keyset(kar, m) → ¬ key < key0)
Used simplifier rules: ⊦ key = ki.key ∧ m = ki.idx ↔ ki = key-index(key, m); (elim) Used terms: ki, key, m1