| ⊦ btree-inv (null, @(n, m0, m1), (∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], (∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], zh, ∅, ∅) |
⊦ btree-inv(r, adr, istore, istore0, zh, ri, fi) ↔ (∃ height, dirty, as, alladrs. ((btree(null, r, adr, height, dirty, ri, nodes(istore), as, alladrs, ok) * true))(zh) ∧ refsize-cons(istore, as) ∧ adr ∈ istore ∧ alladrs ⊆ dom nodes(istore)) ∧ (∃ height, dirty, as, alladrs. ((btree(null, null, adr, height, false, fi, nodes(istore0), as, alladrs, ok) * true))(zh) ∧ refsize-cons(istore0, as) ∧ alladrs ⊆ dom nodes(istore))
⊦ (∃ height, dirty, as, alladrs. (( btree (null, null, @(n, m0, m1), height, dirty, ∅, nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]), as, alladrs, ok) * true) )(zh) ∧ refsize-cons((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], as) ∧ @(n, m0, m1) ∈ (∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)] ∧ alladrs ⊆ dom nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)])) ∧ (∃ height, dirty, as, alladrs. (( btree (null, null, @(n, m0, m1), height, false, ∅, nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]), as, alladrs, ok) * true) )(zh) ∧ refsize-cons((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], as) ∧ alladrs ⊆ dom nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]))
Used terms: ∅, ∅, zh, (∅ )[n, indexblock (indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1) ], (∅ )[n, indexblock (indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1) ], ∅, @(n, m0, m1), null