| mk(rs1, f) = (∅ ++ r)[r, o], rs1 ∩ rs0 = ∅, R[rs0, f, g], ∀ r0. r0 ∈ rs1 → (r = r0 ⊃ a1;g(r0)) = a1 ⊦ r = null, g(r)[r => o][rs1, f, g], (g(r)[r => o] * R)[rs1 ∪ rs0, f, g], r ∈ rs0 |
⊦ R[rs, f, g] ↔ R(mk(rs, f, g))
mk(rs1, f) = (∅ ++ r)[r, o], rs1 ∩ rs0 = ∅, R[rs0, f, g], ∀ r0. r0 ∈ rs1 → (r = r0 ⊃ a1;g(r0)) = a1 ⊦ r = null, (g(r)[r => o] * R)[rs1 ∪ rs0, f, g], g(r)[r => o](mk(rs1, f, g)), r ∈ rs0
Used terms: g, f, rs1, g(r)[r => o]