| indices-erasing(wlar, m0 + nx0), ∀ wlar, m, n. indices-erasing(wlar, nx0) → indices-erasing(wlar[m, wl-entry(n, erasing)], nx0) ⊦ indices-erasing(wlar[m, wl-entry(n, erasing)], m0 + nx0) |
wlar[m0].status = erasing, m0 < # wlar, indices-erasing(wlar, nx0), ∀ wlar, m, n. indices-erasing(wlar, nx0) → indices-erasing(wlar[m, wl-entry(n, erasing)], nx0) ⊦ wlar[m, wl-entry(n, erasing)][m0].status = erasing ∧ indices-erasing(wlar[m, wl-entry(n, erasing)], nx0)
Used simplifier rules: indices-erasing-rec: ⊦ indices-erasing(wlar, n ' + nx) ↔ n < # wlar ∧ wlar[n].status = erasing ∧ indices-erasing(wlar, nx);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # wlar[n, wle] = # wlar; (s)%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ n + nx = n ' + nx; (s)