| ⊦ n ∈ st, (m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ st[n, mkblock([], [], m)][m0].ladrlist → @(m0, m1, m2) ∈ st) ∧ ( m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ st[n, mkblock([], [], m)][m0].ladrlist → st[n, mkblock([], [], m)][@(m0, m1, m2)] = nodes(st)[@(m0, m1, m2)]) |
st[n, mkblock([], [], m)][m0] = mkblock(x, lax, m3) ⊦ n ∈ st, (m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ lax → @(m0, m1, m2) ∈ st) ∧ (m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ lax → st[n, mkblock([], [], m)][@(m0, m1, m2)] = nodes(st)[@(m0, m1, m2)])
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n, mkblock([], [], m)][m0], x, lax, m3