| wlar[m, wl-entry(m0, stat)][n] = wl-entry(m2, stat1), wlar[n] = wl-entry(m1, stat0), n ∈ bflipset → n < # wlar ∧ stat1 = used, ∀ n. n ∈ bflipset → n < # wlar ∧ wlar[m, wl-entry(m0, stat)][n].status = used ⊦ n = m, stat = used, (n ∈ bflipset → n < # wlar ∧ stat0 = used) ∧ ¬ m ∈ bflipset |
wlar[n] = wl-entry(m1, stat0), m ∈ bflipset, n ∈ bflipset → n < # wlar ∧ stat0 = used, ∀ n. n ∈ bflipset → n < # wlar ∧ wlar[m, wl-entry(m0, stat)][n].status = used ⊦ # bflipset = 0, bflipset = ∅, n = m, stat = used
Used simplifier rules: size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]%ne-01: ⊦ n ∈ ns → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ wl-entry(m, stat) = wl-entry(m0, stat0) ↔ m = m0 ∧ stat = stat0; (ws)% ⊦ m ≠ n → wlar[n, wle][m] = wlar[m]; (s)