| zh[r] = mkznode(rp, zbrar, true, dirty, height), r ∈ zh ⊦ btree-sub-clean(r, n, zh) |
⊦ 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))
Used simplifier rules: f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n → n ≠ 0; (s)% ⊦ mkznode(r, zbrar, boolvar, boolvar0, m).usedsize = m; (s)% ⊦ mkznode(r, zbrar, boolvar, boolvar0, m).zbranches = zbrar; (s)% ⊦ mkznode(r, zbrar, boolvar, boolvar0, m).leaf ↔ boolvar; (s) Used terms: zh, n, r