| #oc(x.first, x) + #oc(x.first, y) ≤ #oc(x.first, y -1l a), ∀ a0. #oc(a0, x) + #oc(a0, y) ≤ #oc(a0, y -1l a), ∀ a0. #oc(a0, y -1l a) ≤ #oc(a0, x) + #oc(a0, y) ⊦ x = [] |
x = a1 + y0, #oc(a1, x) + #oc(a1, y) ≤ #oc(a1, y -1l a), ∀ a0. #oc(a0, x) + #oc(a0, y) ≤ #oc(a0, y -1l a), ∀ a0. #oc(a0, y -1l a) ≤ #oc(a0, x) + #oc(a0, y) ⊦ x = []
Used simplifier rules: x ≠ [] ⊦ a = x.first ∧ y = x.rest ↔ x = a + y; (elim) Used terms: x, a1, y0