| st0[m] = mkblock(x, lax, m2), st1[m] = mkblock(x0, lax0, m3), @(m0, m1) ∈ lax, m ∈ st0, dom st0 ⊆ dom st1, m ∈ st1 → x ⊑ x0 ∧ lax ⊑ lax0 ∧ # x = # lax ∧ # x0 = # lax0, ∀ n. n ∈ st0 ∧ n ∈ st1 → st0[n].list ⊑ st1[n].list ∧ st0[n].ladrlist ⊑ st1[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ∧ # st1[n].list = # st1[n].ladrlist ⊦ @(m, m0, m1) ∈ st1 |
⊦ ns ⊆ ns0 ↔ (∀ n. n ∈ ns → n ∈ ns0)
st1[m] = mkblock(x0, lax0, m3), st0[m] = mkblock(x, lax, m2), m ∈ st0, @(m0, m1) ∈ lax, m ∈ st1 → x ⊑ x0 ∧ lax ⊑ lax0 ∧ # x = # lax ∧ # x0 = # lax0, ∀ n. n ∈ st0 ∧ n ∈ st1 → st0[n].list ⊑ st1[n].list ∧ st0[n].ladrlist ⊑ st1[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ∧ # st1[n].list = # st1[n].ladrlist, ∀ n. n ∈ dom st0 → n ∈ dom st1 ⊦ @(m, m0, m1) ∈ st1
Used terms: dom st1, dom st0