| # zbrar0 = BRANCH_SIZE, # zbrar0 = # zbrar1, unmodified(adr, mkznode(rp0, zbrar0, bv, false, nused), iast0), unmodified(adr, mkznode(rp2, zbrar1, bv, false, nused), iast1), nused ≤ # zbrar0, iast0 ⊆ iast1 ⊦ payload(zbrar0, 0, nused) = payload(zbrar1, 0, nused) ↔ true |
# zbrar0 = BRANCH_SIZE, BRANCH_SIZE = # zbrar1, iast1[adr] = save(mkznode(rp2, zbrar1, bv, false, nused)), iast0[adr] = save(mkznode(rp0, zbrar0, bv, false, nused)), adr ∈ iast1, adr ∈ iast0, nused ≤ BRANCH_SIZE, iast0 ⊆ iast1 ⊦ 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)