| wlar[m0] = wl-entry(m1, 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) |
wlar[m0] = wl-entry(m1, erasing), wlar[m, wl-entry(n, erasing)][m0] = wl-entry(m2, stat), m0 < # wlar, indices-erasing(wlar, nx0), ∀ wlar, m, n. indices-erasing(wlar, nx0) → indices-erasing(wlar[m, wl-entry(n, erasing)], nx0) ⊦ stat = erasing ∧ indices-erasing(wlar[m, wl-entry(n, erasing)], nx0)
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[m, wl-entry(n, erasing)][m0], m2, stat