| ∀ a. ordered≤(x) ∧ a < x.last ∧ max(x) < x.last → x = [] ∨ a < max(x), ordered≤(a0 + x), a < (a0 + x).last, max(a0 + x) < (a0 + x).last ⊦ a0 + 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) ⊦ a < max(a0 ' + x)
Used simplifier rules: nll: ⊦ ¬ b < a ∧ b < c → a < c; (forward) from specification oelem%cons-02: ⊦ ordered≤(a ' + x) → ordered≤(x); from specification olist%a: ⊦ (x + y) + z = x + y + z; from specification list%e-01: ⊦ a ' + x ≠ []; from specification list%c: ⊦ a + x = a ' + x; from specification list