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