| wlar[n] = wl-entry(m1, stat0), n < # wlar, m1 + UBI_ERASE_RETRIES < ecs(wlar).max, m ≤ UBI_ERASE_RETRIES + 1 ⊦ Δ wlar[n, wl-entry(m1 + m, stat)] + m = Δ wlar, m = 0 |
⊦ 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)
wlar[n] = wl-entry(m1, stat0), m1 + UBI_ERASE_RETRIES < ecs(wlar).max, n < # wlar, wlar[n].ec < ecs(wlar).max, m ≤ UBI_ERASE_RETRIES + 1, m1 + m ≤ ecs(wlar).max ⊦ ((Δ wlar - (ecs(wlar).max - wlar[n].ec)) + (ecs(wlar).max - m1 + m)) + m = Δ wlar, m = 0
Used simplifier rules: ⊦ wl-entry(m, stat).ec = m; (s)% ⊦ ¬ m < n → ¬ m + m0 < n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%transitivity: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification oelem[nat-set]% ⊦ m < n → n ≠ 0; (s)% ⊦ m +1 = m + 1; (s)% ⊦ m + n < m + n0 ↔ n < n0; (s)% ⊦ m ≤ n → (n < m ↔ false); (s) Used terms: stat, m1 + m, n, wlar