| wlar[n0] = wl-entry(m2, stat0), wlar[m] = wl-entry(m2, stat1), 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 + 1) = ecs(wlar, n0) ++ m0 |
⊦ n < # wlar → ecs(wlar, n + 1) = ecs(wlar, n) ++ wlar[n].ec
wlar[m] = wl-entry(m2, stat1), wlar[n0] = wl-entry(m2, stat0), m < # wlar, n0 < # wlar, n0 < # wlar[m, wl-entry(m0, stat)], 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) ++ m0
Used simplifier rules: ⊦ # wlar[n, wle] = # wlar; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n0, wlar[m, wl-entry(m0, stat)]