| # zbrar = BRANCH_SIZE, adr0 ∈ as ↔ ¬ dirty0, as = ∅ ++ adr0, ((r => mkznode(rp, zbrar, true, dirty0, nused) * P))(zh0), nsize(nused, nstat), sorted(zbrar, 0, nused), unmodified(adr0, mkznode(rp, zbrar, true, dirty0, nused), iast), adr0 ∈ as, nused ≤ BRANCH_SIZE, dirty0 → dirty, (rp0 = null ⊃ adr0 ∈ as ∧ P(zh);r = rp0 ∧ zh0 = zh) ⊦ adr0 ∈ ∅, as ⊆ dom iast |
# zbrar = BRANCH_SIZE, ((r => mkznode(rp, zbrar, true, false, nused) * P))(zh0), nsize(nused, nstat), sorted(zbrar, 0, nused), unmodified(adr0, mkznode(rp, zbrar, true, false, nused), iast), nused ≤ BRANCH_SIZE, (rp0 = null ⊃ P(zh);r = rp0 ∧ zh0 = zh) ⊦ adr0 ∈ iast
Used simplifier rules: ⊦ ¬ adr ∈ ∅; (s)% ⊦ adr ∈ dom iast ↔ adr ∈ iast; (s)% ⊦ ∅ ++ adr ⊆ as ↔ adr ∈ as; (s)% ⊦ adr ∈ ∅ ++ adr0 ↔ adr = adr0; (s)