| wlar[n0] = wl-entry(m1, stat0), wlar[m] = wl-entry(m2, stat1), m < # wlar, n0 < # wlar, m ≤ n0, ∀ wlar, m, wle. n0 ≤ # wlar → ecs(wlar[m, wle], n0) = (m < n0 ⊃ (ecs(wlar, n0) -- wlar[m].ec) ++ wle.ec;ecs(wlar, n0)) ⊦ ecs(wlar[m, wl-entry(m0, stat)], n0) ++ wlar[m, wl-entry(m0, stat)][n0].ec = (ecs(wlar, n0) -- m2) ++ m1 ++ m0, m1 = m2 |
wlar[m] = wl-entry(m2, stat1), wlar[n0] = wl-entry(m1, stat0), wlar[m, wl-entry(m0, stat)][n0] = wl-entry(m3, stat2), n0 < # wlar, m < # wlar, m ≤ n0, ∀ wlar, m, wle. n0 ≤ # wlar → ecs(wlar[m, wle], n0) = (m < n0 ⊃ (ecs(wlar, n0) -- wlar[m].ec) ++ wle.ec;ecs(wlar, n0)) ⊦ ecs(wlar[m, wl-entry(m0, stat)], n0) ++ m3 = (ecs(wlar, n0) -- m2) ++ m1 ++ m0, m1 = m2
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[m, wl-entry(m0, stat)][n0], m3, stat2