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