| wlar[m] = wl-entry(m2, free), m < # wlar, n ∈ free-ecs(wlar, m), ∃ m1. m1 < m ∧ wlar[m1].status = free ∧ wlar[m1].ec = n, n = m2 ∨ n ∈ free-ecs(wlar, m) ⊦ #(free-ecs(wlar, m) ++ m2) = 0, ∃ m0. ¬ m < m0 ∧ wlar[m0].status = free ∧ wlar[m0].ec = n |
wlar[m0].status = free, wlar[m] = wl-entry(m2, free), m0 < # wlar, m < # wlar, m0 < m, m0 + 1 < # wlar, wlar[m0].ec ∈ free-ecs(wlar, m) ⊦ #(free-ecs(wlar, m) ++ m2) = 0, # free-ecs(wlar, m) = 0, free-ecs(wlar, m) = ∅, ∃ m1. ¬ m < m1 ∧ wlar[m1].status = free ∧ wlar[m1].ec = wlar[m0].ec
Used simplifier rules: size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]% ⊦ m +1 = m + 1; (s)% ⊦ m < n → n ≠ 0; (s)%transitivity: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification oelem[nat-set]%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%ne-01: ⊦ n ∈ ns → ns ≠ ∅; (forward) from specification set-basic[nat-set]