| ⊦ r = null, ∃ r, zh0, zbrar, nused. nused < BRANCH_SIZE ∧ unmodified (@(n, m0, m1), mkznode(null, zbrar, true, false, nused), nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)])) ∧ nused ≤ # zbrar ∧ # zbrar = BRANCH_SIZE ∧ sorted(zbrar, 0, nused) ∧ ((⌜∅ = payload(zbrar, 0, nused)⌝ * r => mkznode(null, zbrar, true, false, nused)))(zh0) |
⊦ r = null, 0 < BRANCH_SIZE ∧ unmodified (@(n, m0, m1), mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0), nodes((∅)[n, indexblock(indexnode(mkbrarray(BRANCH_SIZE), true, 0) ', @(m0, m1) ', m1)])) ∧ 0 ≤ # mkzbrarray(BRANCH_SIZE) ∧ # mkzbrarray(BRANCH_SIZE) = BRANCH_SIZE ∧ sorted(mkzbrarray(BRANCH_SIZE), 0, 0) ∧ ((⌜∅ = payload(mkzbrarray(BRANCH_SIZE), 0, 0)⌝ * r => mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0)) )((∅ ++ r)[r, mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0)])
Used terms: r, (∅ ++ r)[r, mkznode(null, mkzbrarray(BRANCH_SIZE), true, false, 0)], mkzbrarray(BRANCH_SIZE), 0