| n < # zh[r].zbranches, btree-sub-clean(r, n, zh) ⊦ zh[zh[r].zbranches[n].child].dirty, btree-sub-clean(r, n + 1, zh[r, zh[r].zbranches:= zh[r].zbranches[n, mkzbranch(key, adr, zh[r].zbranches[n].child)]]) |
zh[r] = mkznode(r0, zbrar, boolvar, boolvar0, m), n < # zbrar, btree-sub-clean(r, n, zh) ⊦ zh[zbrar[n].child].dirty, btree-sub-clean(r, n + 1, zh[r, zh[r].zbranches:= zbrar[n, mkzbranch(key, adr, zbrar[n].child)]])
Used simplifier rules: ⊦ ( ( (r = znd.parent ∧ zbrar = znd.zbranches) ∧ (boolvar ↔ znd.leaf)) ∧ (boolvar0 ↔ znd.dirty)) ∧ m = znd.usedsize ↔ znd = mkznode(r, zbrar, boolvar, boolvar0, m); (elim) Used terms: zh[r], r0, zbrar, boolvar, boolvar0, m