| ⊦ (∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast[adr, ind]) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0)) ↔ (∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0)), adr ∈ as |
∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast[adr, ind]) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0) ⊦ adr ∈ as, ∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0)
∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0) ⊦ adr ∈ as, ∃ r0, zh0, zbrar, dirty0, nused. (r = null ⊃ ¬ dirty0 ∧ P(zh);r0 = r ∧ zh0 = zh) ∧ (dirty0 → dirty) ∧ (adr0 ∈ as ↔ ¬ dirty0) ∧ adr0 ∈ alladrs ∧ nsize(nused, nstat) ∧ unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast[adr, ind]) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ri = payload(zbrar, 0, nused) ∧ as -- adr0 = ∅ ∧ alladrs -- adr0 = ∅ ∧ ((P * r0 => mkznode(rp, zbrar, true, dirty0, nused)))(zh0)