| 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 |
st[n] = mkblock(x, lax, m), st[n0] = mkblock(x0, lax0, m2), n ∈ st, n0 ∈ st, as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m2 = (as | n0).size, n0 = n, @(m0, m1) ∈ lax
Used simplifier rules: restrict-add-other: m ≠ m0 ⊦ (as ++ @(m0, m1, m2)) | m = as | m;% ⊦ n ≠ n0 → (n ∈ st[n0, ablock] ↔ n ∈ st); (s)