| ⊦ r = null, unmodified (@(n, m0, m1), mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0), nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)])) |
⊦ unmodified(adr, znd, iast) ↔ ¬ znd.dirty → adr ∈ iast ∧ iast[adr] = save(znd)
⊦ r = null, mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0).dirty, @(n, m0, m1) ∈ nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)]) ∧ nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)])[@(n, m0, m1)] = save(mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0))
Used terms: nodes ((∅ )[n, indexblock (indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1) ]), mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0), @(n, m0, m1), null, null