| wlar[m0].status = free, wlar[m] = wl-entry(m2, free), m0 < # wlar, m < # wlar, m0 < m, m0 + 1 < # wlar, wlar[m0].ec ∈ free-ecs(wlar, m) ⊦ #(free-ecs(wlar, m) ++ m2) = 0, # free-ecs(wlar, m) = 0, free-ecs(wlar, m) = ∅, ∃ m1. ¬ m < m1 ∧ wlar[m1].status = free ∧ wlar[m1].ec = wlar[m0].ec |
wlar[m] = wl-entry(m2, free), wlar[m0] = wl-entry(m3, stat), stat = free, m0 + 1 < # wlar, m0 < m, m < # wlar, m0 < # wlar, m3 ∈ free-ecs(wlar, m) ⊦ # free-ecs(wlar, m) = 0, #(free-ecs(wlar, m) ++ m2) = 0, free-ecs(wlar, m) = ∅, ∃ m1. ¬ m < m1 ∧ wlar[m1].status = free ∧ wlar[m1].ec = m3
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[m0], m3, stat