| #(s0 \ s) = # s0 - # s, a0 ∈ s0, a ∈ s0, ∀ a0. a0 ∈ s ++ a → a0 ∈ s0 ⊦ # s0 - # s - 1 = # s0 - # s + 1, a ∈ s, # s ≤ # s0 |
#(s0 \ s) = # s0 - # s, # s0 < # s, a0 ∈ s0, a ∈ s0, ∀ a0. a0 ∈ s ++ a → a0 ∈ s0 ⊦ # s0 - # s - 1 = # s0 - # s + 1, a ∈ s
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)