| (a[r => o0] * R)[rs, f, g] ⊦ (a[r => o1] * R)[rs, f(r; o1), g] ∧ f(r) = o0 |
⊦ (R0 * R1)[rs, f, g] ↔ (∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ R0[rs0, f, g] ∧ R1[rs1, f, g])
∃ rs0, rs1. rs0 ∪ rs1 = rs ∧ rs0 ∩ rs1 = ∅ ∧ a[r => o0][rs0, f, g] ∧ R[rs1, f, g] ⊦ (a[r => o1] * R)[rs, f(r; o1), g] ∧ f(r) = o0
Used terms: g, f, rs, R, a[r => o0]