| kar[0, kar[m]][m0].idx = kar[0, kar[m]][m1].idx, m1 < m, m0 < m, m0 < # kar, m < # kar, m1 + 1 < # kar, m1 < # kar, m0 + 1 < # kar, ∀ m0, m1. m0 < # kar ∧ ¬ m < m0 ∧ m1 < # kar ∧ ¬ m < m1 ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ m0 = m1 |
kar[0, kar[m]][m0] = key-index(key, m2), m2 = kar[0, kar[m]][m1].idx, m0 + 1 < # kar, m1 < # kar, m1 + 1 < # kar, m < # kar, m0 < # kar, m0 < m, m1 < m, ∀ m0, m1. m0 < # kar ∧ ¬ m < m0 ∧ m1 < # kar ∧ ¬ m < m1 ∧ m0 ≠ m1 → kar[m0].idx ≠ kar[m1].idx ⊦ m0 = m1
Used simplifier rules: ⊦ key = ki.key ∧ m = ki.idx ↔ ki = key-index(key, m); (elim) Used terms: kar[0, kar[m]][m0], key, m4