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