| kar[0] = key-index(key0, m0), 2exp-size(# kar), key < key0, heap-order(kar, m), no-dups-idx(kar, m), valid-idx(kar, ar, m), m ≤ # kar, ∃ m0. m0 < m ∧ key-index(key, m1) = kar[m0] ⊦ # keyset(kar, m) = 0, # kar = 0, keyset(kar, m) = ∅ |
kar[0] = key-index(key0, m0), key-index(key, m1) = kar[m2], 2exp-size(# kar), m2 < m, key < key0, m2 < # kar, heap-order(kar, m), no-dups-idx(kar, m), valid-idx(kar, ar, m), m ≤ # kar ⊦ # keyset(kar, m) = 0, keyset(kar, m) = ∅
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic