| st[m, mkblock(x, lax, n0)][n] = mkblock(x0, lax0, m2), st[m] = mkblock(x, lax, n0 + m1), n ∈ st[m, mkblock(x, lax, n0)], @(m, m0, m1) ∈ as, m ∈ st, n ∈ st → st[n].ref-size = (as | n).size ⊦ # as = 0, as = ∅, m2 = ((as -- @(m, m0, m1)) | n).size |
st[m] = mkblock(x, lax, n0 + m1), st[m, mkblock(x, lax, n0)][n] = mkblock(x0, lax0, m2), st[n] = mkblock(x1, lax1, m3), m ∈ st, @(m, m0, m1) ∈ as, n ∈ st[m, mkblock(x, lax, n0)], n ∈ st → m3 = (as | n).size ⊦ # as = 0, as = ∅, m2 = ((as -- @(m, m0, m1)) | n).size
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n], x1, lax1, m3