| ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ (∀ n0. n0 ∈ st[n, mkblock(x, lax, m)] → st[n, mkblock(x, lax, m)][n0].ref-size = (as | n0).size) ↔ ¬ n ∈ st ∨ st[n].ref-size = (as | n).size → m = (as | n).size |
st[n] = mkblock(x0, lax0, m0), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ (∀ n0. n0 ∈ st[n, mkblock(x, lax, m)] → st[n, mkblock(x, lax, m)][n0].ref-size = (as | n0).size) ↔ ¬ n ∈ st ∨ m0 = (as | n).size → m = (as | 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], x0, lax0, m2, m3, m4, boolvar0