| wlar[n] = wl-entry(m, stat), indices-erasing(wlar, m0 + nx0), n ∈ m0 + nx0, ∀ wlar, n, m, stat. wlar[n] = wl-entry(m, stat) ∧ indices-erasing(wlar, nx0) ∧ n ∈ nx0 → stat = erasing ⊦ stat = erasing |
wlar[m0].status = erasing, wlar[n] = wl-entry(m, stat), m0 < # wlar, indices-erasing(wlar, nx0), ∀ wlar, n, m, stat. wlar[n] = wl-entry(m, stat) ∧ indices-erasing(wlar, nx0) ∧ n ∈ nx0 → stat = erasing, n = m0 ∨ n ∈ nx0 ⊦ stat = erasing
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%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ n ∈ n0 ' + nx ↔ n = n0 ∨ n ∈ nx; (s)% ⊦ n + nx = n ' + nx; (s)