| ∀ 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]) |
r0 = r ∨ r0 ∈ rs, ∀ H1. # H1 < # (mk(rs, f) ++ r)[r, o] → true → (∃ rs, f. H1 = mk(rs, f)) ⊦ (r0 = r ⊃ o;(mk(rs, f) ++ r)[r0]) = mk(rs ++ r, f(r; o))[r0], r = null, r ∈ rs
Used simplifier rules: in-mk: ⊦ r ∈ mk(rs, f) ↔ r ∈ rs;% ⊦ H[r0, o][r] = (r = r0 ∧ r0 ∈ H ⊃ o;H[r]); (s)% ⊦ r ∈ rs ++ r0 ↔ r = r0 ∨ r ∈ rs; (s)%r0 ≠ null, ¬ r0 ∈ H ⊦ r ∈ H ++ r0 ↔ r = r0 ∨ r ∈ H; (s)% ⊦ r ∈ H[r0, o] ↔ r ∈ H; (s)