| # lax0 = # y, st0[n] = mkblock(x0, lax1, m), st[n] = mkblock(x, lax, m0), n ∈ st, n ∈ st0, dom st0 ⊆ dom st, ∀ n. n ∈ st0 ∧ n ∈ st → st0[n].list ⊑ st[n].list ∧ st0[n].ladrlist ⊑ st[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ∧ # st[n].list = # st[n].ladrlist ⊦ x0 ⊑ x + y ∧ lax1 ⊑ lax + lax0 ∧ # x0 = # lax1 ∧ # x = # lax |
Used simplifier rules: ⊦ mkblock(x, lax, m).list = x; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ ¬ x ⊑ y + z → ¬ x ⊑ y; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ ¬ lax ⊑ lax0 + lax1 → ¬ lax ⊑ lax0; (s) Used terms: n