| st[n, mkblock(a ', @(m0, m1) ', m1)][n0] = mkblock(x, lax, m), as | n = ∅, n0 ∈ st[n, mkblock(a ', @(m0, m1) ', m1)], ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m = ((as ++ @(n, m0, m1)) | n0).size, n ∈ st |
⊦ n ≠ n0 → st[n0, ablock][n] = st[n]
st[n, mkblock(a ', @(m0, m1) ', m1)][n0] = mkblock(x, lax, m), n0 = n, as | n = ∅, n0 ∈ st[n, mkblock(a ', @(m0, m1) ', m1)], ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m = ((as ++ @(n, m0, m1)) | n0).size, n ∈ st
st[n0] = mkblock(x, lax, m), as | n = ∅, n0 ∈ st[n, mkblock(a ', @(m0, m1) ', m1)], ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m = ((as ++ @(n, m0, m1)) | n0).size, n0 = n, n ∈ st
Used terms: n0, mkblock(a ', @(m0, m1) ', m1), n, st