| rs1 ∩ rs0 = ∅, a0[r => o][rs1, f, g], R[rs0, f, g] ⊦ (a1[r => o] * R)[rs1 ∪ rs0, f, g(r; a1)] ∧ g(r) = a0 |
⊦ R0[rs0, f, g] ∧ R1[rs1, f, g] ∧ rs0 ∩ rs1 = ∅ → (R0 * R1)[rs0 ∪ rs1, f, g]
rs1 ∩ rs0 = ∅, R[rs0, f, g], a0[r => o][rs1, f, g] ⊦ (a1[r => o] * R)[rs1 ∪ rs0, f, g(r; a1)] ∧ g(r) = a0, a1[r => o][rs1, f, g(r; a1)] ∧ R[rs0, f, g(r; a1)] ∧ rs1 ∩ rs0 = ∅
rs1 ∩ rs0 = ∅, R[rs0, f, g], a0[r => o][rs1, f, g], a1[r => o][rs1, f, g(r; a1)], R[rs0, f, g(r; a1)] ⊦ true ∧ g(r) = a0
Used terms: g(r; a1), f, rs0, rs1, R, a1[r => o]