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