| min(x + a ' + x3) = min((a ' + x3) + x), min(x3 + a0 ' + x) = min((a0 ' + x) + x3), a0 < min((a ' + x3) + x), a < min((a0 ' + x) + x3), ∀ x1, x2. #(x1 + x2) < #((a + x3) + (a0 + x)) → true → x1 + x2 = [] ∨ min(x1 + x2) = min(x2 + x1) ⊦ a = a0 |
⊦ x ≠ [] → min(a ' + x) = (a < min(x) ⊃ a;min(x))
x + x3 ≠ [], min(x + a ' + x3) = min((a ' + x3) + x), min(x3 + a0 ' + x) = (a0 < min(x + x3) ⊃ a0;min(x + x3)), a0 < min((a ' + x3) + x), a < (a0 < min(x + x3) ⊃ a0;min(x + x3)), ∀ x1, x2. #(x1 + x2) < #((a + x3) + (a0 + x)) → true → x1 + x2 = [] ∨ min(x1 + x2) = min(x2 + x1) ⊦ a = a0
Used simplifier rules: min-base: ⊦ min(a ') = a;%app-02-ant: ⊦ ¬ x + y ≠ [] ↔ x = [] ∧ y = []; from specification list%Nil: ⊦ [] + x = x; from specification list%app: ⊦ x + [] = x; from specification list%transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem%irreflexivity: ⊦ ¬ a < a; from specification oelem%a: ⊦ (x + y) + z = x + y + z; from specification list Used terms: x + x3, a0