| n < m, no-dups-idx(kar, m), m ≤ # kar ⊦ keyset(kar[n, ki], m) = (keyset(kar, m) -- kar[n]) ++ ki |
n < m, n < # kar, m ≤ # kar, ∀ m0, m1. m0 < # kar ∧ m0 < m ∧ m1 < # kar ∧ m1 < m ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ keyset(kar[n, ki], m) = (keyset(kar, m) -- kar[n]) ++ ki
Used simplifier rules: no-dups-idx: ⊦ no-dups-idx(kar, n) ↔ (∀ m0, m1. m0 < # kar ∧ m0 < n ∧ m1 < # kar ∧ m1 < n ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx);% ⊦ 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