| r ∈ H, r ∈ rs0 ++ r0, ∀ r, H, o. r ∈ rs0 ∧ r ∈ H → # rs0 = 0 ∨ H[r, o] \ rs0 = H \ rs0 ∨ rs0 = ∅ ⊦ #(rs0 ++ r0) = 0, rs0 ++ r0 = ∅, H[r, o] \ (rs0 ++ r0) = H \ (rs0 ++ r0) |
r ∈ H, r ∈ rs0, ∀ r1, H0, o0. r1 ∈ rs0 ∧ r1 ∈ H0 → H0[r1, o0] \ rs0 = H0 \ rs0 ⊦ # rs0 = 0, #(rs0 ++ r0) = 0, (H[r, o] -- r0) \ rs0 = (H -- r0) \ rs0, r = r0, rs0 = ∅
Used simplifier rules: diffs-ins: ⊦ H0 \ (rs ++ r) = (H0 -- r) \ rs;%write-del: r ∈ H ⊦ H[r, o] -- r = H -- r;%size-zero-01: ⊦ rs ≠ ∅ → # rs ≠ 0; (forward) from specification set-basic[refset]%ne-01: ⊦ r ∈ rs → rs ≠ ∅; (forward) from specification set-basic[refset]%size-zero: ⊦ # rs ≠ 0 → rs ≠ ∅; (forward) from specification set-basic[refset]% ⊦ r ∈ rs ++ r0 ↔ r = r0 ∨ r ∈ rs; (s)% ⊦ ∅ ≠ rs ++ r; (s)