| r0 ∈ H0 ⊦ r0 ∈ rs, ∃ r. ¬ r ∈ rs ∧ r ≠ null ∧ ¬ r ∈ H0 ∧ H0 = H0[r0, o] ++ r, ¬ r0 ∈ rs ∧ r0 ∈ H0 ∧ H0 = H0[r0, o][r0, H0[r0]], ∃ r. ¬ r ∈ rs ∧ r ∈ H0 ∧ H0 = H0[r0, o] -- r |
r0 ∈ H0 ⊦ H0 = H0[r0, H0[r0]], r0 ∈ rs, ∃ r. ¬ r ∈ rs ∧ r ∈ H0 ∧ H0 = H0[r0, o] -- r, ∃ r. ¬ r ∈ rs ∧ r ≠ null ∧ ¬ r ∈ H0 ∧ H0 = H0[r0, o] ++ r
Used simplifier rules: overwrite: r ∈ H ⊦ H[r, o0][r, o1] = H[r, o1]; from specification heap