| ((r => mkznode(r0, zbrar, false, true, m0) * bnode(r, zbrar, 0, m0, m0, height0 + 1, true, ri, iast, as, alladrs -- adr0) * P))(zh), btree-sub-clean(r, m0, zh), nsize(m0, nstat), adr0 ∈ alladrs, as ⊆ alladrs, as ⊆ dom iast ⊦ # alladrs = 0, alladrs = ∅, adr0 ∈ as, adr1 ∈ alladrs, adr1 ∈ iast, ∃ zbrar0, nused. nsize(nused, nstat) ∧ unmodified(adr1, mkznode(r0, zbrar0, false, false, nused), iast[adr1, save(mkznode(r0, zbrar, false, true, m0))]) ∧ (( r => mkznode(r0, zbrar0, false, false, nused) * bnode (r, zbrar0, 0, nused, nused, height0 + 1, false, ri, iast[adr1, save(mkznode(r0, zbrar, false, true, m0))], as -- adr1, alladrs -- adr0 -- adr1) * P) )(zh[r, mkznode(r0, zbrar, false, false, m0)]) |
((r => mkznode(r0, zbrar, false, true, m0) * bnode(r, zbrar, 0, m0, m0, height0 + 1, true, ri, iast, as, alladrs -- adr0) * P))(zh), btree-sub-clean(r, m0, zh), nsize(m0, nstat), adr0 ∈ alladrs, as ⊆ dom iast, as ⊆ alladrs ⊦ # alladrs = 0, alladrs = ∅, adr1 ∈ iast, adr1 ∈ alladrs, adr0 ∈ as, nsize(m0, nstat) ∧ unmodified(adr1, mkznode(r0, zbrar, false, false, m0), iast[adr1, save(mkznode(r0, zbrar, false, true, m0))]) ∧ (( r => mkznode(r0, zbrar, false, false, m0) * bnode(r, zbrar, 0, m0, m0, height0 + 1, false, ri, iast[adr1, save(mkznode(r0, zbrar, false, true, m0))], as -- adr1, alladrs -- adr0 -- adr1) * P) )(zh[r, mkznode(r0, zbrar, false, false, m0)])
Used terms: zbrar, m0