| # zbrar0 = BRANCH_SIZE, # zbrar1 = BRANCH_SIZE, mkbranch(key', adr) = save(zbrar1[n + m0]), mkzbranch(key', adr, rp) = zbrar0[n + m0], payload(zbrar1, n, m0) = payload(zbrar0, n, m0), save(zbrar1, n, m0) = save(zbrar0, n, m0), n + m0 < BRANCH_SIZE ⊦ payload(zbrar0, n, m0) = payload(zbrar0, n, m0) ⊕ (zbrar1[n + m0].entry? ⊃ (∅)[zbrar1[n + m0].key, zbrar1[n + m0].adr];∅) |
# zbrar1 = BRANCH_SIZE, # zbrar0 = BRANCH_SIZE, mkbranch(key', adr) = save(zbrar1[n + m0]), mkzbranch(key', adr, rp) = zbrar0[n + m0], payload(zbrar1, n, m0) = payload(zbrar0, n, m0), save(zbrar1, n, m0) = save(zbrar0, n, m0), zbrar1[n + m0].entry?, n + m0 < BRANCH_SIZE ⊦ payload(zbrar0, n, m0) = payload(zbrar0, n, m0) ⊕ (∅)[zbrar1[n + m0].key, zbrar1[n + m0].adr]
Used simplifier rules: oplus-empty: ⊦ ri ⊕ ∅ = ri; from specification store+set[node-index]