| kar[m1, key-index(key, m0)][m2] = key-index(key1, kar[m1, key-index(key, m0)][m3].idx), kar[m1] = key-index(key0, m0), 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[m1] = key-index(key0, m0), kar[m1, key-index(key, m0)][m2] = key-index(key1, m4), kar[m1, key-index(key, m0)][m3] = key-index(key2, m4), m2 < # kar, m2 < m, m3 < # kar, m3 < m, ∀ m0, m1. m0 < # kar ∧ m0 < m ∧ m1 < # kar ∧ m1 < m ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ m2 = m3
Used simplifier rules: ⊦ key = ki.key ∧ m = ki.idx ↔ ki = key-index(key, m); (elim) Used terms: kar[m1, key-index(key, m0)][m3], key2, m4