| ∃ r. r ≠ null ∧ ¬ r ∈ ∅ ⊦ ∃ 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, ∃ 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)
Used simplifier rules: in-emp: ⊦ ¬ r ∈ ∅; from specification heap[zheap]