| ∀ x1, x2. # x1 + # x2 < # x + # x0 → true → x1 + x2 = [] ∨ max(x1 + x2) = max(x2 + x1) ⊦ x + x0 = [], max(x + x0) = max(x0 + x) |
x = a + x3, ∀ x1, x2. # x1 + # x2 < # x + # x0 → true → x1 + x2 = [] ∨ max(x1 + x2) = max(x2 + x1) ⊦ x + x0 = [], max(x + x0) = max(x0 + x)
Used simplifier rules: list freely generated by [], +;;%Nil: ⊦ [] + x = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%app: ⊦ x + [] = x; from specification list