| # zbrar0 = BRANCH_SIZE, # zbrar0 = # zbrar1, unmodified(adr, mkznode(rp0, zbrar0, bv, false, nused), iast), unmodified(adr, mkznode(rp2, zbrar1, bv, false, nused), iast), nused ≤ # zbrar0 ⊦ payload(zbrar0, 0, nused) = payload(zbrar1, 0, nused) ↔ true |
# zbrar0 = BRANCH_SIZE, BRANCH_SIZE = # zbrar1, iast[adr] = save(mkznode(rp2, zbrar1, bv, false, nused)), iast[adr] = save(mkznode(rp0, zbrar0, bv, false, nused)), adr ∈ iast, nused ≤ BRANCH_SIZE ⊦ payload(zbrar0, 0, nused) = payload(zbrar1, 0, nused)
Used simplifier rules: unmodified: ⊦ unmodified(adr, znd, iast) ↔ ¬ znd.dirty → adr ∈ iast ∧ iast[adr] = save(znd);% ⊦ mkznode(r, zbrar, boolvar, boolvar0, m).dirty ↔ boolvar0; (s)