| ⊦ (( btree (null, null, @(n, m0, m1), 0, false, ∅, nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]), ∅ ++ @(n, m0, m1), ∅ ++ @(n, m0, m1), ok) * true) )(zh) ∧ refsize-cons((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], ∅ ++ @(n, m0, m1)) ∧ ∅ ++ @(n, m0, m1) ⊆ dom nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]) |
⊦ (( btree (null, null, @(n, m0, m1), 0, false, ∅, nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]), ∅ ++ @(n, m0, m1), ∅ ++ @(n, m0, m1), ok) * true) )(zh) ∧ refsize-cons((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)], ∅ ++ @(n, m0, m1))
Used simplifier rules: in-17: ⊦ ladr ∈ ladr0 ' ↔ ladr = ladr0; from specification list[laddress-list]% ⊦ indexblock(indlist, lax, m).ladrlist = lax; (s)% ⊦ @(n, n0, n1) ∈ istore[n, iblock] ↔ @(n0, n1) ∈ iblock.ladrlist; (s)% ⊦ adr ∈ nodes(istore) ↔ adr ∈ istore; (s)%Dom: ⊦ adr ∈ dom iast ↔ adr ∈ iast; from specification store+set[index-store-address-store]%sub-one-02: ⊦ ∅ ++ adr ⊆ as ↔ adr ∈ as; from specification set-basic[node-store]