| ((btree(rp, null, adr, height, dirty, ri1, iast, as1, alladrs1, ok) * P1))(zh), ((btree(rp, null, adr, height, dirty, ri0, iast, as0, alladrs0, ok) * P0))(zh), as1 ⊆ dom iast, as1 ⊆ alladrs1, as0 ⊆ dom iast, as0 ⊆ alladrs0 ⊦ ri0 = ri1 |
⊦ r = null ∨ ¬ zh0[r].dirty → ( ((btree(rp, r, adr, height, dirty, ri, iast, as, alladrs, nstat) * P))(zh0) ↔ ((btree(rp, r, adr, height, false, ri, iast, as, alladrs, nstat) * P))(zh0))
((btree(rp, null, adr, height, dirty, ri0, iast, as0, alladrs0, ok) * P0))(zh), ((btree(rp, null, adr, height, false, ri1, iast, as1, alladrs1, ok) * P1))(zh), as0 ⊆ alladrs0, as0 ⊆ dom iast, as1 ⊆ alladrs1, as1 ⊆ dom iast, null = null ∨ ¬ zh[null].dirty ⊦ ri0 = ri1
Used terms: zh, P1, ok, alladrs1, as1, iast, ri1, dirty, height, adr, null, rp