| # ar0 = # ar1, ar0[n0] = elemindex(a0, m1), ar1[n0] = elemindex(a, m0), ar0[n, ar0[n].idx:= m][n0] = elemindex(a, m2), n0 < # ar1 ⊦ a = a0 |
Used simplifier rules: ⊦ m ≠ n → ar[n, ei][m] = ar[m]; (s)% ⊦ elemindex(a, m) = elemindex(a0, m0) ↔ a = a0 ∧ m = m0; (ws)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s)%m < # ar ⊦ ar[m, ei][m] = ei; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ elemindex(a, m).idx:= m0 = elemindex(a, m0); (s) Used formulas: n0 = n