| # s0 + #(s ++ a) < #(s0 ∪ (s ++ a)), ∀ s0. ¬ # s0 + # s < #(s0 ∪ s) ⊦ |
# s0 + #(s ++ a) < #((s ∪ s0) ++ a), ∀ s0. ¬ # s0 + # s < #(s0 ∪ s) ⊦
Used simplifier rules: unadd: ⊦ (s ++ a) ∪ s0 = (s ∪ s0) ++ a;%una: ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1;%unc: ⊦ s ∪ s0 = s0 ∪ s;% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic