| ordered≤(a0 ' + x), a < (a0 ' + x).last, max(a0 ' + x) < (a0 ' + x).last, ∀ a1. a1 < x.last ∧ max(x) < x.last → x = [] ∨ a1 < max(x) ⊦ a < max(a0 ' + x) |
ordered≤(a0 ' + x), a < (a0 ' + x).last, max(a0 ' + x) < (a0 ' + x).last, ∀ a1. a1 < x.last ∧ max(x) < x.last → x = [] ∨ a1 < max(x) ⊦ x = [], a < max(a0 ' + x)
Used simplifier rules: max-base: ⊦ max(a ') = a;%app: ⊦ x + [] = x; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%le-o: ⊦ ordered≤(a '); from specification olist%l: ⊦ a '.last = a; from specification list-last%irreflexivity: ⊦ ¬ a < a; from specification oelem Used formulas: x = []