| ¬ boolvar ↔ used-ecs(wlar, m0) = ∅, m0 < # wlar, wlar[m0].status = used → boolvar → vtblpnum < # wlar, boolvar → vtblpnum < m0 ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m0).min ⊦ (boolvar → ¬ m0 < vtblpnum ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m0 + 1).min) ∧ (¬ boolvar ↔ used-ecs(wlar, m0 + 1) = ∅), wlar[m0].status = used ∧ (¬ boolvar ∨ wlar[m0].ec < wlar[vtblpnum].ec) |
¬ boolvar ↔ used-ecs(wlar, m0) = ∅, wlar[m0] = wl-entry(m, stat), m0 < # wlar, boolvar → vtblpnum < m0 ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m0).min, stat = used → boolvar → vtblpnum < # wlar ⊦ stat = used ∧ (¬ boolvar ∨ m < wlar[vtblpnum].ec), (boolvar → ¬ m0 < vtblpnum ∧ wlar[vtblpnum].status = used ∧ wlar[vtblpnum].ec = used-ecs(wlar, m0 + 1).min) ∧ (¬ boolvar ↔ used-ecs(wlar, m0 + 1) = ∅)
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[m0], m, stat