| n ∈ used-ecs(wlar, m) ↔ (∃ m1. m1 < m ∧ wlar[m1].status = used ∧ wlar[m1].ec = n), wlar[m] = wl-entry(m2, stat), stat = used, m < # wlar, n ∈ (stat = used ⊃ used-ecs(wlar, m) ++ m2;used-ecs(wlar, m)) ⊦ # (stat = used ⊃ used-ecs(wlar, m) ++ m2;used-ecs(wlar, m)) = 0, used-ecs(wlar, m) ++ m2 = ∅, ∃ m0. ¬ m < m0 ∧ wlar[m0].status = used ∧ wlar[m0].ec = n |
n ∈ used-ecs(wlar, m) ↔ (∃ m1. m1 < m ∧ wlar[m1].status = used ∧ wlar[m1].ec = n), wlar[m] = wl-entry(m2, used), m < # wlar, n = m2 ∨ n ∈ used-ecs(wlar, m) ⊦ #(used-ecs(wlar, m) ++ m2) = 0, ∃ m0. ¬ m < m0 ∧ wlar[m0].status = used ∧ wlar[m0].ec = n
Used simplifier rules: size-zero: ⊦ # ns ≠ 0 → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ n ∈ ns ++ n0 ↔ n = n0 ∨ n ∈ ns; (s)% ⊦ ∅ ≠ ns ++ n; (s)