| st[n] = mkblock(x, lax, m0), inv(mkblock(x, lax, m0)), n ∈ st ⊦ nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)]) = nodes(st)[@(n, m, m2), a], @(m, m2) ∈ lax |
⊦ ast = ast0 ↔ (∀ adr. (adr ∈ ast ↔ adr ∈ ast0) ∧ (adr ∈ ast → ast[adr] = ast0[adr]))
st[n] = mkblock(x, lax, m0), inv(mkblock(x, lax, m0)), n ∈ st ⊦ @(m, m2) ∈ lax, ∀ adr. (adr ∈ nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)]) ↔ adr ∈ nodes(st)[@(n, m, m2), a]) ∧ ( adr ∈ nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)]) → nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)])[adr] = nodes(st)[@(n, m, m2), a][adr])
Used terms: nodes(st)[@(n, m, m2), a], nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)])