| rs2 ∩ rs1 = ∅, a[P][rs2, f, g], ∀ r. (g(r) = a ∧ r ∈ rs2 ∪ rs1 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs2 ∪ rs1 → f(r) = f0(r)) ⊦ rs2 ∪ (rs0 \ rs2) = rs0 ∧ rs2 ∩ (rs0 \ rs2) = ∅ ∧ a[P][rs2, f0, g0] |
rs2 ∩ rs1 = ∅, a[P][rs2, f, g], ∀ r. (g(r) = a ∧ r ∈ rs2 ∪ rs1 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs2 ∪ rs1 → f(r) = f0(r)) ⊦ rs2 ∪ (rs0 \ rs2) = rs0 ∧ a[P][rs2, f0, g0]
Used simplifier rules: int-c: ⊦ rs ∩ rs0 = rs0 ∩ rs; from specification set-union[refset]%int-a: ⊦ (rs ∩ rs0) ∩ rs1 = rs ∩ rs0 ∩ rs1; from specification set-union[refset]% ⊦ (rs \ rs0) ∩ rs0 = ∅; (s)