| # x = # lax, lax[n] = @(m1, m2), ¬ # lax < 0 → (@(m, m0) ' + lax)[0].size = (a ' + x)[0].flashsize, ∀ n. ¬ # lax < n → (@(m, m0) ' + lax)[n].size = (a ' + x)[n].flashsize ⊦ a.flashsize = m0 ∧ (n < # lax → m2 = x[n].flashsize) |
# x = # lax, lax[n] = @(m1, m2), n < # lax, ∀ n. ¬ # lax < n → (@(m, a.flashsize) ' + lax)[n].size = (a ' + x)[n].flashsize ⊦ lax = [], m2 = x[n].flashsize
Used simplifier rules: ⊦ # lax = 0 ↔ lax = []; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ (a ' + x)[0] = a; (s)% ⊦ @(m, m0).size = m0; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ (ladr ' + lax)[0] = ladr; (s)% ⊦ ¬ m < 0; (s)