| st[n, mkblock(x, lax, m)][n0] = mkblock(x1, lax1, m1), st[n] = mkblock(x0, lax0, m0), n0 = n, n0 ∈ st[n, mkblock(x, lax, m)], ¬ n ∈ st ∨ m0 = (as | n).size → m = (as | n).size, ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m1 = (as | n0).size |
st[n] = mkblock(x0, lax0, m0), n ∈ st, ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ m0 = (as | n).size, m1 = (as | n).size
Used simplifier rules: ⊦ n ∈ st[n, ablock]; (s)%⊦ mkblock(x, lax, m) = mkblock(x0, lax0, m0) ↔ x = x0 ∧ lax = lax0 ∧ m = m0; (ws)% ⊦ st[n, ablock][n] = ablock; (s)