| rs1 ∩ rs0 = ∅, R[rs0, f, g(r; a1)], a1[r => o][rs1, f, g(r; a1)], r ∈ rs0 ⊦ # rs0 = 0, rs0 = ∅, (g(r)[r => o] * R)[rs1 ∪ rs0, f, g], g(r)[r => o][rs1, f, g] ∧ R[rs0, f, g] |
⊦ R[rs, f, g] ↔ R(mk(rs, f, g))
rs1 ∩ rs0 = ∅, a1[r => o](mk(rs1, f, g(r; a1))), R[rs0, f, g(r; a1)], r ∈ rs0 ⊦ # rs0 = 0, rs0 = ∅, (g(r)[r => o] * R)[rs1 ∪ rs0, f, g], g(r)[r => o][rs1, f, g] ∧ R[rs0, f, g]
Used terms: g(r; a1), f, rs1, a1[r => o]