| rs0 ∩ rs1 = ∅, P0(mk(rs0, f0)), P1(mk(rs1, f1)), r ∈ rs1, ∀ r. (r ∈ mk(rs, f) ↔ r ∈ mk(rs0, f0) ∪ mk(rs1, f1)) ∧ (r ∈ mk(rs, f) → mk(rs, f)[r] = (mk(rs0, f0) ∪ mk(rs1, f1))[r]) ⊦ # rs1 = 0, f(r) = f1(r), rs1 = ∅, P1(mk(rs1, f)) |
rs0 ∩ rs1 = ∅, P0(mk(rs0, f0)), P1(mk(rs1, f1)), r ∈ rs1, ∀ r0. (r0 ∈ rs ↔ r0 ∈ rs0 ∨ r0 ∈ rs1) ∧ (r0 ∈ rs → f(r0) = (mk(rs0, f0) ∪ mk(rs1, f1))[r0]) ⊦ # rs1 = 0, f(r) = f1(r), rs1 = ∅, P1(mk(rs1, f))
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs;%in-uni: ⊦ rs0 ∩ rs1 = ∅ → (r ∈ mk(rs0, f0) ∪ mk(rs1, f1) ↔ r ∈ rs0 ∨ r ∈ rs1);%at-mk: ⊦ r ∈ rs → mk(rs, f)[r] = f(r);%int-c: ⊦ rs ∩ rs0 = rs0 ∩ rs; from specification set-union[refset]%int-a: ⊦ (rs ∩ rs0) ∩ rs1 = rs ∩ rs0 ∩ rs1; from specification set-union[refset]