| rs2 ∩ rs1 = ∅, a[P][rs2, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs2 ∪ rs1) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ rs2 ∪ (rs \ rs2) = rs ∧ rs2 ∩ (rs \ rs2) = ∅ ∧ a[P][rs2, f, g] |
rs2 ∩ rs1 = ∅, a[P][rs2, f0, g0], ∀ r. (g(r) = a ∧ r ∈ rs ↔ g0(r) = a ∧ r ∈ rs2 ∪ rs1) ∧ (g(r) = a ∧ r ∈ rs → f(r) = f0(r)) ⊦ rs2 ∪ (rs \ rs2) = rs ∧ a[P][rs2, f, g]
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)