| rs2 ∩ rs1 = ∅, P(mk(rs2, f)), ∀ r. (g(r) = a ∧ r ∈ rs2 ∪ rs1 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs2 ∪ rs1 → f(r) = f0(r)), ∀ r. r ∈ rs2 → g(r) = a ⊦ P(mk(rs2, f0)), ∀ r. (r ∈ mk(rs2, f0) ↔ r ∈ mk(rs2, f)) ∧ (r ∈ mk(rs2, f0) → mk(rs2, f0)[r] = mk(rs2, f)[r]) |
rs2 ∩ rs1 = ∅, P(mk(rs2, f)), r ∈ rs2, ∀ r. (g(r) = a ∧ r ∈ rs2 ∪ rs1 ↔ g0(r) = a ∧ r ∈ rs0) ∧ (g(r) = a ∧ r ∈ rs2 ∪ rs1 → f(r) = f0(r)), ∀ r. r ∈ rs2 → g(r) = a ⊦ # rs2 = 0, f0(r) = f(r), rs2 = ∅, P(mk(rs2, f0))
Used simplifier rules: size-zero-01: ⊦ rs ≠ ∅ → # rs ≠ 0; (forward) from specification set-basic[refset]%ne-01: ⊦ r ∈ rs → rs ≠ ∅; (forward) from specification set-basic[refset]% ⊦ r ∈ rs → mk(rs, f)[r] = f(r); (s)% ⊦ r ∈ mk(rs, f) ↔ r ∈ rs; (s)