| 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 |
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, (¬ boolvar0 ∨ rp = null) ∧ btree-inv(rp, adr3, istore4, istore4, zh, ri, ri)
Used simplifier rules: ⊦ inv(istore) → istore ⊑ istore; (s)