| st[n] = mkblock(x, lax, m0), n ∈ st0, n ∈ st, dom st ⊆ dom st0, ∀ n. n ∈ st ∧ n ∈ st0 → st[n].list ⊑ st0[n].list ∧ st[n].ladrlist ⊑ st0[n].ladrlist ∧ # st[n].list = # st[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ⊦ m ∈ st, x ⊑ st0[n].list ∧ lax ⊑ st0[n].ladrlist ∧ # x = # lax ∧ # st0[n].list = # st0[n].ladrlist |
st[n] = mkblock(x, lax, m0), st0[n] = mkblock(x0, lax0, m1), n ∈ st, n ∈ st0, dom st ⊆ dom st0, ∀ n. n ∈ st ∧ n ∈ st0 → st[n].list ⊑ st0[n].list ∧ st[n].ladrlist ⊑ st0[n].ladrlist ∧ # st[n].list = # st[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ⊦ m ∈ st, x ⊑ x0 ∧ lax ⊑ lax0 ∧ # x = # lax ∧ # x0 = # lax0
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st0[n], x0, m3, m4, m5