| ordered≤(a0 ' + y), ordered≤(a ' + x1), ∀ x. ordered≤(x) ∧ (x1 ≠ [] ∧ x ≠ [] → ¬ x.first < x1.last) → ordered≤(x1 + x) ⊦ a0 < (a ' + x1).last, ordered≤(a ' + x1 + a0 ' + y) |
ordered≤(a0 ' + y), ordered≤(a ' + x1), ∀ x. ordered≤(x) ∧ (x1 ≠ [] ∧ x ≠ [] → ¬ x.first < x1.last) → ordered≤(x1 + x) ⊦ x1 = [], a0 < (a ' + x1).last, ordered≤(a ' + x1 + a0 ' + y)
Used simplifier rules: le-o: ⊦ ordered≤(a ');%le-r: ⊦ ordered≤(a ' + b ' + x) ↔ ¬ b < a ∧ ordered≤(b + x);%app: ⊦ x + [] = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%l: ⊦ a '.last = a; from specification list-last%Nil: ⊦ [] + x = x; from specification list%c: ⊦ a + x = a ' + x; from specification list Used formulas: x1 = []