| rs2 ∩ rs = ∅, rs2 ∩ rs3 = ∅, rs1 ∩ rs2 = ∅, rs1 ∩ 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)[rs1 ∪ rs2 ∪ rs3, f, g], a[P][rs1, f, g] ∧ (a0[P0] * true)[rs2 ∪ rs3, f, g] ∧ rs1 ∩ (rs2 ∪ rs3) = ∅ |
rs1 ∩ rs3 = ∅, rs1 ∩ rs2 = ∅, rs2 ∩ rs3 = ∅, rs2 ∩ rs = ∅, a0[P0][rs2, f, g], R0[rs, f, g], a[P][rs1, f, g], R[rs2 ∪ rs3, f, g] ⊦ a0 = a, (a[P] * a0[P0] * true)[rs1 ∪ rs2 ∪ rs3, f, g], (a0[P0] * true)[rs2 ∪ rs3, f, g]
Used simplifier rules: 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)%int-c: ⊦ rs ∩ rs0 = rs0 ∩ rs; from specification set-union[refset]%int-a: ⊦ (rs ∩ rs0) ∩ rs1 = rs ∩ rs0 ∩ rs1; from specification set-union[refset]