| wlar0[m] = wl-entry(m0, erasing), m < # wlar0, indices-erasing(wlar0, nx0), valid-eraseq(wlar0, q0), valid-eraseq(wlar1, q1), q0 ⊆ q1, ∀ wlar0, wlar1, q1, q0. indices-erasing(wlar0, nx0) ∧ valid-eraseq(wlar1, q1) ∧ valid-eraseq(wlar0, q0) ∧ q0 ⊆ q1 → indices-erasing(wlar1, nx0) ⊦ m < # wlar1 ∧ wlar1[m].status = erasing ∧ indices-erasing(wlar1, nx0) |
wlar0[m] = wl-entry(m0, erasing), wlar1[m] = wl-entry(m1, stat), m < # wlar0, indices-erasing(wlar0, nx0), valid-eraseq(wlar1, q1), valid-eraseq(wlar0, q0), q0 ⊆ q1, ∀ wlar0, wlar1, q1, q0. indices-erasing(wlar0, nx0) ∧ valid-eraseq(wlar1, q1) ∧ valid-eraseq(wlar0, q0) ∧ q0 ⊆ q1 → indices-erasing(wlar1, nx0) ⊦ m < # wlar1 ∧ stat = erasing ∧ indices-erasing(wlar1, nx0)
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar1[m], m1, stat