| st0[m] = mkblock(x, lax, m2), m ∈ st0, @(m0, m1) ∈ lax, dom st0 ⊆ dom st1, 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 ⊦ x[pos(@(m0, m1), lax)] = st1[@(m, m0, m1)] |
st0[m] = mkblock(x, lax, m2), m ∈ st0, @(m0, m1) ∈ lax, dom st0 ⊆ dom st1, m ∈ st1 → x ⊑ st1[m].list ∧ lax ⊑ st1[m].ladrlist ∧ # x = # lax ∧ # st1[m].list = # st1[m].ladrlist ⊦ x[pos(@(m0, m1), lax)] = st1[@(m, m0, m1)]
Used simplifier rules: ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ mkblock(x, lax, m).list = x; (s)