| P(H), ∀ s1, P. # s1 < #(s0 ++ a) → true → # s1 = 0 ∨ s1 = ∅ ∨ (λ a. P) ∧_ s1 = P ⊦ a ∈ s0, (((λ a. P) ∧_ s0))(H) |
Used simplifier rules: And-emp: ⊦ aP ∧_ ∅ = true;% ⊦ true(H); (s)%size-zero-02: ⊦ # s = 0 → s = ∅; (forward) from specification set-basic%size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic%size-zero: ⊦ # s ≠ 0 → s ≠ ∅; (forward) from specification set-basic% ⊦ ¬ a ∈ s → #(s ++ a) = # s + 1; (s)% ⊦ m < n + 1 ↔ ¬ n < m; (s)% ⊦ ¬ n < n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic Used terms: s0, P