| rs1 ∩ rs0 = ∅, R[rs0, f, g], ∀ r0. (r0 ∈ rs1 ↔ r0 = r) ∧ (r0 ∈ rs1 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])), ∀ r. r ∈ rs1 → g(r) = a ⊦ r = null, r0 = r, ∃ o, a. (r ==>(o, a) * R)[rs1 ∪ rs0, f, g], (r0 ∈ rs1 ↔ r0 = r) ∧ (r0 ∈ rs1 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0]o) ∧ g(r0) = (r0 = r ⊃ a;(∅ ++ r)[r0]a)) |
rs1 ∩ rs0 = ∅, R[rs0, f, g], r0 ∈ rs1, ∀ r0. (r0 ∈ rs1 ↔ r0 = r) ∧ (r0 ∈ rs1 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0])), ∀ r. r ∈ rs1 → g(r) = a ⊦ # rs1 = 0, r = null, r0 = r, rs1 = ∅, ∃ o, a. (r ==>(o, a) * R)[rs1 ∪ rs0, f, g]
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]