| st[n] = mkblock(x, lax, m), n ∈ st, n0 ∈ st[n, mkblock(x + a ', lax + @(m0, m1) ', m + m1)], as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ st[n, mkblock(x + a ', lax + @(m0, m1) ', m + m1)][n0].ref-size = ((as ++ @(n, m0, m1)) | n0).size, @(m0, m1) ∈ lax |
st[n] = mkblock(x, lax, m), st[n, mkblock(x + a ', lax + @(m0, m1) ', m + m1)][n0] = mkblock(x0, lax0, m2), n0 ∈ st[n, mkblock(x + a ', lax + @(m0, m1) ', m + m1)], n ∈ st, as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m2 = ((as ++ @(n, m0, m1)) | n0).size, @(m0, m1) ∈ lax
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 + a ', lax + @(m0, m1) ', m + m1)][n0], x0, lax0, m2