| 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;%at-mk: ⊦ r ∈ rs → mk(rs, f)[r] = f(r);% ⊦ r ∈ rs ++ r0 ↔ ¬(r ≠ r0 ∧ ¬ r ∈ rs); (ss)% ⊦ r ≠ r0 → (r ∈ rs ++ r0 ↔ r ∈ rs); (s)%ne-01: ⊦ r ∈ rs → rs ≠ ∅; (forward) from specification set-basic[refset]%r ∈ H, r0 ≠ null, ¬ r0 ∈ H ⊦ r ≠ r0 → (H ++ r0)[r] = H[r]; (s)% ⊦ r ∈ rs ++ r0 ↔ r = r0 ∨ r ∈ rs; (s) Used formulas: r0 ∈ rs ++ r