| st0[m] = mkblock(x, lax, m2), m ∈ st1, m ∈ st0, @(m0, m1) ∈ lax, m ∈ st0 ∧ m ∈ st1 → st0[m].list ⊑ st1[m].list ∧ st0[m].ladrlist ⊑ st1[m].ladrlist ∧ # st0[m].list = # st0[m].ladrlist ∧ # st1[m].list = # st1[m].ladrlist ⊦ @(m, m0, m1) ∈ st1 |
# st1[m].list = # st1[m].ladrlist, # x = # lax, st0[m] = mkblock(x, lax, m2), m ∈ st1, m ∈ st0, @(m0, m1) ∈ lax, lax ⊑ st1[m].ladrlist, x ⊑ st1[m].list ⊦ @(m, m0, m1) ∈ st1
Used simplifier rules: ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ mkblock(x, lax, m).list = x; (s)