| 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 ⊦ st[n, mkblock(x, lax, m)][n0].ref-size = (as | n0).size |
st[n] = mkblock(x0, lax0, m0), st[n, mkblock(x, lax, m)][n0] = mkblock(x1, lax1, m1), 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
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n, mkblock(x, lax, m)][n0], x1, lax1, m1