| ordered≤(a + x0), ordered≤(x0) → max(x0) = x0.last ∨ x0 = [] ⊦ a + x0 = [], max(a + x0) = (a + x0).last |
max(x0) = x0.last, ordered≤(a ' + x0) ⊦ (x0.last < a ⊃ a;x0.last) = x0.last, x0 = []
Used simplifier rules: max-base: ⊦ max(a ') = a;%max-rec: ⊦ x ≠ [] → max(a ' + x) = (max(x) < a ⊃ a;max(x));% ⊦ x ≠ [] → (a ' + x).last = x.last; (s)% ⊦ a '.last = a; (s)% ⊦ x + [] = x; (s)% ⊦ ordered≤(x + y) → ordered≤(y); (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ a ' + x ≠ []; (s)% ⊦ a + x = a ' + x; (s)