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