| # 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 |
# x = # lax, # x0 = # lax0, st0[m] = mkblock(x, lax, m2), st1[m] = mkblock(x0, lax0, m3), @(m0, m1) ∈ lax, m ∈ st0, m ∈ st1, x ⊑ x0, lax ⊑ lax0 ⊦ @(m, m0, m1) ∈ st1
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st1[m], x0, lax0, m3