| st[n] = mkblock(x, lax, m0), n ∈ st ⊦ m1 ∈ st[n, mkblock(x, lax, m)] ∧ @(m2, m3) ∈ st[n, mkblock(x, lax, m)][m1].ladrlist ↔ @(m1, m2, m3) ∈ st |
st[n] = mkblock(x, lax, m0), st[n, mkblock(x, lax, m)][m1] = mkblock(x0, lax0, m4), n ∈ st ⊦ m1 ∈ st[n, mkblock(x, lax, m)] ∧ @(m2, m3) ∈ lax0 ↔ @(m1, m2, m3) ∈ st
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n, mkblock(x, lax, m)][m1], x0, lax0, m4