| m < # wlar, ∀ wlar, n. m ≤ # wlar → (n ∈ used-ecs(wlar, m) ↔ (∃ m1. m1 < m ∧ wlar[m1].status = used ∧ wlar[m1].ec = n)) ⊦ n ∈ (wlar[m].status = used ⊃ used-ecs(wlar, m) ++ wlar[m].ec;used-ecs(wlar, m)) ↔ (∃ m0. ¬ m < m0 ∧ wlar[m0].status = used ∧ wlar[m0].ec = n) |
wlar[m] = wl-entry(m2, stat), m < # wlar, ∀ wlar, n. m ≤ # wlar → (n ∈ used-ecs(wlar, m) ↔ (∃ m1. m1 < m ∧ wlar[m1].status = used ∧ wlar[m1].ec = n)) ⊦ n ∈ (stat = used ⊃ used-ecs(wlar, m) ++ m2;used-ecs(wlar, m)) ↔ (∃ m0. ¬ m < m0 ∧ wlar[m0].status = used ∧ wlar[m0].ec = n)
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[m], m2, stat