| rs2 ∩ rs = ∅, rs1 ∩ rs0 = ∅, rs2 ∪ rs = rs1 ∪ rs0, a0[P0][rs2, f, g], R0[rs, f, g], a[P][rs1, f, g], R[rs0, f, g], ∃ rs1. rs2 ∪ rs1 = rs0 ∧ rs2 ∩ rs1 = ∅ ⊦ a0 = a, (a[P] * a0[P0] * true)[rs1 ∪ rs0, f, g] |
rs2 ∩ rs = ∅, rs2 ∩ rs3 = ∅, rs1 ∩ rs2 = ∅, rs1 ∩ rs3 = ∅, rs2 ∪ rs = rs1 ∪ rs2 ∪ rs3, R[rs2 ∪ rs3, f, g], a[P][rs1, f, g], R0[rs, f, g], a0[P0][rs2, f, g] ⊦ a0 = a, (a[P] * a0[P0] * true)[rs2 ∪ rs, 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]%unc: ⊦ rs ∪ rs0 = rs0 ∪ rs; from specification set-union[refset]%una: ⊦ (rs ∪ rs0) ∪ rs1 = rs ∪ rs0 ∪ rs1; from specification set-union[refset]% ⊦ rs ∩ (rs0 ∪ rs1) = ∅ ↔ rs ∩ rs0 = ∅ ∧ rs ∩ rs1 = ∅; (ws)