| x0 = [], ∀ a. max(ins≤(a, x0)) = max(x0) ∨ x0 = [] ∨ max(x0) < a ⊦ max(ins≤(a, a0 ' + x0)) = max(a0 ' + x0), max(a0 ' + x0) < a |
⊦ max(a ' + a0 ') = a0, a0 < a
Used simplifier rules: max-base: ⊦ max(a ') = a;%ins-e: ⊦ ins≤(a, []) = a '; from specification olist%ins-one-01: ⊦ ¬ b < a → ins≤(a, b ') = a ' + b '; from specification olist%a: ⊦ (x + y) + z = x + y + z; from specification list%app: ⊦ x + [] = x; from specification list