| r ∈ H, (∅ ++ r)[r, H[r]] ⊥ H -- r ⊦ (r0 ∈ (∅ ++ r)[r, H[r]] ∨ r0 ∈ H -- r ↔ r0 ∈ H) ∧ (r0 ∈ (∅ ++ r)[r, H[r]] ∨ r0 ∈ H -- r → ((∅ ++ r)[r, H[r]] ∪ (H -- r))[r0] = H[r0]) |
r ∈ H, r0 ∈ H ⊦ ((∅ ++ r)[r, H[r]] ∪ (H -- r))[r0] = H[r0]
Used simplifier rules: nonnull: ⊦ r ∈ H → r ≠ null;%disj-singleton-write: r ≠ null ⊦ (∅ ++ r)[r, o] ⊥ H ↔ ¬ r ∈ H;%in-del: ⊦ r ∈ H -- r0 ↔ r ≠ r0 ∧ r ∈ H;%in-write: ⊦ r ∈ H[r0, o] ↔ r ∈ H;%in-emp: ⊦ ¬ r ∈ ∅;%in-alloc: r0 ≠ null, ¬ r0 ∈ H ⊦ r ∈ H ++ r0 ↔ r = r0 ∨ r ∈ H;