| zh[rp] = mkznode(r, zbrar, boolvar, boolvar0, m), remove-refsize0(gstore3) = gstore3, remove-refsize0(istore3) = istore3, dom remove-refsize0(gstore4) ∩ ginval0 = ∅, elems nx0 ∩ ginval0 = ∅, dom gstore3 ∪ elems nx0 = dom gstore4 ∪ ginval0, btree-inv(rp, adr3, istore4, istore3, zh, ri, fi), inv(remove-refsize0(gstore4)), inv(gstore4 \ ginval0), inv(gstore3), inv(istore4), inv(istore3), inv(remove-refsize0(istore4)), istore3 ⊑ istore4 ⊦ btree-inv(rp, adr3, remove-refsize0(istore4), remove-refsize0(istore4), zh, ri, ri), dups(nx0), rp ≠ null ∧ boolvar0 |
¬ dirty ∨ rp = null ⊦ inv(istore) ∧ inv(istore0) ∧ zh[rp] = mkznode(rp0, zbrar, boolvar, dirty, nused) ∧ btree-inv(rp, adr, istore, istore0, zh, ri, fi) ∧ istore0 ⊑ istore → btree-inv(rp, adr, remove-refsize0(istore), remove-refsize0(istore), zh, ri, fi)
zh[rp] = mkznode(r, zbrar, boolvar, boolvar0, m), remove-refsize0(istore3) = istore3, remove-refsize0(gstore3) = gstore3, elems nx0 ∩ ginval0 = ∅, dom remove-refsize0(gstore4) ∩ ginval0 = ∅, dom gstore3 ∪ elems nx0 = dom gstore4 ∪ ginval0, btree-inv(rp, adr3, istore4, istore3, zh, ri, fi), inv(remove-refsize0(istore4)), inv(istore3), inv(istore4), inv(gstore3), inv(gstore4 \ ginval0), inv(remove-refsize0(gstore4)), istore3 ⊑ istore4 ⊦ btree-inv(rp, adr3, remove-refsize0(istore4), remove-refsize0(istore4), zh, ri, ri), dups(nx0), rp ≠ null ∧ boolvar0, (¬ boolvar0 ∨ rp = null) ∧ inv(istore4) ∧ inv(istore4) ∧ zh[rp] = mkznode(r, zbrar, boolvar, boolvar0, m) ∧ btree-inv(rp, adr3, istore4, istore4, zh, ri, ri) ∧ istore4 ⊑ istore4
Used terms: boolvar0, r, zbrar, boolvar, m, ri, ri, zh, istore4, istore4, adr3, rp