| wlar[n] = wl-entry(m0, stat), n < # wlar, valid-eraseq(wlar, q) ⊦ stat = erasing, valid-eraseq(wlar[n, wl-entry(m1, erasing)], q + eq-entry(n, lref) ') |
wlar[n] = wl-entry(m0, stat), n < # wlar, ∀ n. n ∈ q ↔ n < # wlar ∧ wlar[n].status = erasing ⊦ n0 ∈ q + eq-entry(n, lref) ' ↔ n0 < # wlar ∧ wlar[n, wl-entry(m1, erasing)][n0].status = erasing, stat = erasing
Used simplifier rules: valid-eraseqw: ⊦ valid-eraseq(wlar, q) ↔ (∀ n. n ∈ q ↔ n < # wlar ∧ wlar[n].status = erasing);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # wlar[n, wle] = # wlar; (s)