| ¬ boolvar ↔ free-ecs(wlar, m0) = ∅, wlar[m0] = wl-entry(m, free), m0 < # wlar, boolvar → n = free-ecs(wlar, m0).min, ¬ boolvar ∨ m < n ⊦ m = free-ecs(wlar, m0 + 1).min ∧ free-ecs(wlar, m0 + 1) ≠ ∅ |
⊦ n < # wlar → free-ecs(wlar, n + 1) = (wlar[n].status = free ⊃ free-ecs(wlar, n) ++ wlar[n].ec;free-ecs(wlar, n))
¬ boolvar ↔ free-ecs(wlar, m0) = ∅, wlar[m0] = wl-entry(m, free), m0 < # wlar, boolvar → n = free-ecs(wlar, m0).min, ¬ boolvar ∨ m < n ⊦ m = (wlar[m0].status = free ⊃ free-ecs(wlar, m0) ++ wlar[m0].ec;free-ecs(wlar, m0)).min ∧ (wlar[m0].status = free ⊃ free-ecs(wlar, m0) ++ wlar[m0].ec;free-ecs(wlar, m0)) ≠ ∅
Used terms: m0, wlar