| ∀ x1, x2. #(x1 + x2) < #(x + x0) → true → x1 + x2 = [] ∨ min(x1 + x2) = min(x2 + x1) ⊦ x + x0 = [], min(x + x0) = min(x0 + x) |
x = a + x3, ∀ x1, x2. #(x1 + x2) < #(x + x0) → true → x1 + x2 = [] ∨ min(x1 + x2) = min(x2 + x1) ⊦ x + x0 = [], min(x + x0) = min(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