| max(sort(x0)) = max(x0), max(x0) < a ⊦ max(sort(x0) + a ') = a, x0 = [], ordered≤(sort(x0) + a '), ordered≤(sort(x0)) ∧ ordered≤(a ') ∧ (sort(x0) ≠ [] ∧ a ' ≠ [] → ¬ a '.head < sort(x0).last) |
max(sort(x0)) = max(x0), max(x0) < a, a < sort(x0).last, max(x0) < sort(x0).last ⊦ max(sort(x0) + a ') = a, x0 = [], ordered≤(sort(x0) + a ')
Used simplifier rules: lel: ⊦ a < b ∧ a = c → c < b; (forward) from specification oelem%transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem% ⊦ a '.head = a; (s)% ⊦ a ' ≠ []; (s)% ⊦ sort(x) = [] ↔ x = []; (s)% ⊦ ordered≤(a '); (s)% ⊦ ordered≤(sort(x)); (s)