| ∀ H1. # H1 < # (mk(rs, f) ++ r)[r, o] → true → (∃ rs, f. H1 = mk(rs, f)) ⊦ (mk(rs, f) ++ r)[r, o] = mk(rs ++ r, f(r; o)), r = null, r ∈ rs |
⊦ H0 = H1 ↔ (∀ r. (r ∈ H0 ↔ r ∈ H1) ∧ (r ∈ H0 → H0[r] = H1[r]))
∀ H1. # H1 < # (mk(rs, f) ++ r)[r, o] → true → (∃ rs, f. H1 = mk(rs, f)) ⊦ r = null, r ∈ rs, ∀ r0. (r0 ∈ (mk(rs, f) ++ r)[r, o] ↔ r0 ∈ mk(rs ++ r, f(r; o))) ∧ (r0 ∈ (mk(rs, f) ++ r)[r, o] → (mk(rs, f) ++ r)[r, o][r0] = mk(rs ++ r, f(r; o))[r0])
Used terms: mk(rs ++ r, f(r; o)), (mk(rs, f) ++ r)[r, o]