| 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 |
⊦ n ≠ n0 → st[n0, ablock][n] = st[n]
st[n, mkblock(x + a ', lax + @(m0, m1) ', m + m1)][n0] = mkblock(x0, lax0, m2), st[n] = mkblock(x, lax, m), n0 = n, 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 ⊦ m2 = ((as ++ @(n, m0, m1)) | n0).size, @(m0, m1) ∈ lax
st[n0] = mkblock(x0, lax0, m2), 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 ⊦ m2 = ((as ++ @(n, m0, m1)) | n0).size, n0 = n, @(m0, m1) ∈ lax
Used terms: n0, mkblock(x + a ', lax + @(m0, m1) ', m + m1), n, st