| r ∈ rs ↔ r ∈ mk(rs0, f0, g0) ∪ mk(rs1, f1, g1), rs0 ∩ rs1 = ∅, P0(mk(rs0, f0)), P1(mk(rs1, f1)), r ∈ rs → f(r) = (mk(rs0, f0, g0) ∪ mk(rs1, f1, g1))[r]o ∧ g(r) = (mk(rs0, f0, g0) ∪ mk(rs1, f1, g1))[r]a, ∀ r. r ∈ rs1 → g1(r) = a, ∀ r. r ∈ rs0 → g0(r) = a, ∀ r0. (r0 ∈ rs ↔ r0 ∈ mk(rs0, f0, g0) ∪ mk(rs1, f1, g1)) ∧ (r0 ∈ rs → f(r0) = (mk(rs0, f0, g0) ∪ mk(rs1, f1, g1))[r0]o ∧ g(r0) = (mk(rs0, f0, g0) ∪ mk(rs1, f1, g1))[r0]a) ⊦ (r ∈ rs ↔ r ∈ rs0 ∨ r ∈ rs1) ∧ (r ∈ rs → f(r) = (mk(rs0, f0) ∪ mk(rs1, f1))[r]) |
⊦ rs0 ∩ rs1 = ∅ → (r ∈ mk(rs0, f, g) ∪ mk(rs1, f0, g0) ↔ r ∈ rs0 ∨ r ∈ rs1)
Used simplifier rules: ne-01: ⊦ r ∈ rs → rs ≠ ∅; (forward) from specification set-basic[refset]%int-a: ⊦ (rs ∩ rs0) ∩ rs1 = rs ∩ rs0 ∩ rs1; from specification set-union[refset]%int-c: ⊦ rs ∩ rs0 = rs0 ∩ rs; from specification set-union[refset]%⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs0 → (mk(rs0, f, g) ∪ mk(rs1, f0, g0))[r]o = f(r); (s)%⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs0 → (mk(rs0, f, g) ∪ mk(rs1, f0, g0))[r]a = g(r); (s)% ⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs0 → (mk(rs0, f0) ∪ mk(rs1, f1))[r] = f0(r); (s)%⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs1 → (mk(rs0, f, g) ∪ mk(rs1, f0, g0))[r]o = f0(r); (s)%⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs1 → (mk(rs0, f, g) ∪ mk(rs1, f0, g0))[r]a = g0(r); (s)% ⊦ rs0 ∩ rs1 = ∅ ∧ r ∈ rs1 → (mk(rs0, f0) ∪ mk(rs1, f1))[r] = f1(r); (s) Used terms: g1, f1, rs1, g0, f0, rs0, r