| 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] |
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])) ⊦ r = null, ∃ o, a. (r ==>(o, a) * R)[rs1 ∪ rs0, f, g], (r0 ∈ rs1 ↔ r0 = r) ∧ (r0 ∈ rs1 → f(r0) = (r0 = r ⊃ o;(∅ ++ r)[r0]o) ∧ g(r0) = (r0 = r ⊃ a;(∅ ++ r)[r0]a))
Used simplifier rules: ⊦ Ha[r0, o, a][r]a = (r = r0 ∧ r0 ∈ Ha ⊃ a;Ha[r]a); (s)% ⊦ r ∈ rs → mk(rs, f, g)[r]a = g(r); (s)% ⊦ Ha[r0, o, a][r]o = (r = r0 ∧ r0 ∈ Ha ⊃ o;Ha[r]o); (s)% ⊦ r ∈ rs → mk(rs, f, g)[r]o = f(r); (s)%r0 ≠ null, ¬ r0 ∈ Ha ⊦ r ∈ Ha ++ r0 ↔ r = r0 ∨ r ∈ Ha; (s)% ⊦ ¬ r ∈ ∅; (s)% ⊦ r ∈ Ha[r0, o, a] ↔ r ∈ Ha; (s)% ⊦ r ∈ mk(rs, f, g) ↔ r ∈ rs; (s)