| #oc(a0, (y + y0) -1l a) < #oc(a0, x), #oc(a0, (y + y0) -1l a) < #oc(a0, y) + #oc(a0, y0 -1l a), a ∈ y0, a0 ∈ x, #oc(a0, x) ≤ #oc(a0, y) + #oc(a0, y0 -1l a), ∀ a1. #oc(a1, x) ≤ #oc(a1, y) + #oc(a1, y0 -1l a) ⊦ |
Used simplifier rules: del1: ⊦ a ∈ x → #oc(a, x -1l a) = #oc(a, x) -1;%oc-del-01: ⊦ a ∈ y → #oc(a, (x + y) -1l a) = #oc(a, x + y) -1;%ocappend: ⊦ #oc(a, x + y) = #oc(a, x) + #oc(a, y);%oc-zero: ⊦ #oc(a, x) = 0 ↔ ¬ a ∈ x;%in-05: ⊦ a ∈ x → #oc(a, x) ≠ 0;%del1-01: ⊦ a ≠ b → #oc(a, x -1l b) = #oc(a, x);%ocappend: ⊦ #oc(a, x + y) = #oc(a, x) + #oc(a, y);%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ m + n < m + n0 ↔ n < n0; (s)% ⊦ ¬ n < n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ n -1 = n - 1; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; (ws)%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; (s)% ⊦ m < n + 1 ↔ ¬ n < m; (s) Used formulas: a = a0