| n < # wlar, wlar[n].ec < ecs(wlar).max, m ≤ ecs(wlar).max ⊦ Δ wlar[n, wl-entry(m, stat)] = (Δ wlar - (ecs(wlar).max - wlar[n].ec)) + (ecs(wlar).max - m) |
n < # wlar, wlar[n].ec < ecs(wlar).max, m ≤ ecs(wlar).max ⊦ ecs(wlar).max + (sum-of-differences(ecs(wlar).max, ecs(wlar)) - (ecs(wlar).max - wlar[n].ec)) = m + sum-of-differences(ecs(wlar[n, wl-entry(m, stat)]).max, ecs(wlar[n, wl-entry(m, stat)]))
Used simplifier rules: delta-01: ⊦ Δ wlar = sum-of-differences(ecs(wlar).max, ecs(wlar));% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%n ≤ m ⊦ (m - n) + n0 = n1 ↔ m + n0 = n + n1; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)