| ar[m3] = elemindex(a0, m4), kar[m4] = key-index(key1, m3), kar[m0] = key-index(key, n), ar[n] = elemindex(a1, m0), ar[n, elemindex(a1, 0)][m3] = elemindex(a, m2), m3 < # ar, m4 + 1 < # kar, m4 < m0, m4 < # kar, m0 < # kar, n < # ar, ∀ m. ¬ m0 < m → kar[m].idx < # ar ∧ ar[kar[m].idx].idx = m ⊦ m2 = m4, m4 = 0 |
Used simplifier rules: ⊦ m ≠ n → ar[n, ei][m] = ar[m]; (s)% ⊦ elemindex(a, m) = elemindex(a0, m0) ↔ a = a0 ∧ m = m0; (ws)% ⊦ m < # ar → ar[m, ei][m] = ei; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ m < n → n ≠ 0; (s)% ⊦ m < n → ¬ n < m; (s) Used formulas: m3 = n