| max(a0 + x) < (a0 + x).last, a < (a0 + x).last, ordered≤(a0 + x), ∀ a. a < x.last ∧ max(x) < x.last ∧ ordered≤(x) → x = [] ∨ a < max(x) ⊦ a0 + x = [], a < max(a0 + x) |
a < (a0 ' + x).last, max(a0 ' + x) < (a0 ' + x).last, ordered≤(a0 ' + x), ∀ 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% ⊦ ordered≤(x + y) → ordered≤(y); (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ a ' + x ≠ []; (s)% ⊦ a + x = a ' + x; (s)