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