| kar[m1, key-index(key, m0)][m3] = key-index(key2, m4), kar[m1, key-index(key, m0)][m2] = key-index(key1, m4), kar[m1] = key-index(key0, m0), m3 = m1, m3 < m, m3 < # kar, m2 < m, m2 < # kar, ∀ m0, m1. m0 < # kar ∧ m0 < m ∧ m1 < # kar ∧ m1 < m ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ m2 = m3 |
kar[m2] = key-index(key1, m4), kar[m1] = key-index(key0, m4), m1 < m, m1 < # kar, m2 < m, m2 < # kar, ∀ m0, m1. m0 < # kar ∧ m0 < m ∧ m1 < # kar ∧ m1 < m ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ m2 = m1
Used simplifier rules: ⊦ key-index(key, m) = key-index(key0, m0) ↔ key = key0 ∧ m = m0; (ws)% ⊦ m < # kar → kar[m, ki][m] = ki; (s)% ⊦ m ≠ n → kar[n, ki][m] = kar[m]; (s)