| btree-sub-clean(r, n, zh) ⊦ btree-sub-clean(r, n + 1, zh) ↔ ¬ zh[r].leaf ∧ n < zh[r].usedsize ∧ zh[r].zbranches[n].branch? ∧ zh[r].zbranches[n].child ∈ zh → ¬ zh[zh[r].zbranches[n].child].dirty |
⊦ btree-sub-clean(r, n, zh) ↔ r ∈ zh ∧ ( ¬ zh[r].leaf → (∀ n0. n0 < zh[r].usedsize ∧ n0 < n ∧ zh[r].zbranches[n0].branch? ∧ zh[r].zbranches[n0].child ∈ zh → ¬ zh[zh[r].zbranches[n0].child].dirty))
btree-sub-clean(r, n, zh) ⊦ r ∈ zh ∧ ( ¬ zh[r].leaf → (∀ n0. n0 < zh[r].usedsize ∧ n0 < n + 1 ∧ zh[r].zbranches[n0].branch? ∧ zh[r].zbranches[n0].child ∈ zh → ¬ zh[zh[r].zbranches[n0].child].dirty)) ↔ ¬ zh[r].leaf ∧ n < zh[r].usedsize ∧ zh[r].zbranches[n].branch? ∧ zh[r].zbranches[n].child ∈ zh → ¬ zh[zh[r].zbranches[n].child].dirty
Used terms: zh, n + 1, r