| ¬ boolvar ↔ free-ecs(wlar, m0) = ∅, wlar[m0] = wl-entry(m, stat), boolvar, m0 < # wlar, boolvar → n = free-ecs(wlar, m0).min ⊦ n = (stat = free ⊃ free-ecs(wlar, m0) ++ m;free-ecs(wlar, m0)).min, stat = free ∧ (¬ boolvar ∨ m < n) |
wlar[m0] = wl-entry(m, free), m0 < # wlar, free-ecs(wlar, m0).min ≤ m ⊦ # free-ecs(wlar, m0) = 0, free-ecs(wlar, m0).min = (free-ecs(wlar, m0) ++ m).min, free-ecs(wlar, m0) = ∅
Used simplifier rules: size-zero: ⊦ # ns ≠ 0 → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ m < n ↔ ¬ n ≤ m; (ss)%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]