| x1 + x0 ≠ [], sort(x1 + a ' + x0) = sort(x1 + x0) + a ', ordered≤(sort(x1 + x0) + a '), a < max(sort(x1 + x0) + a '), (max(x1 + x0) < a ⊃ a;max(x1 + x0)) < max(sort(x1 + x0) + a '), max(x1 + x0) < max(sort(x1 + x0) + a ') ⊦ ins≤(a, sort(x1 + x0) + a ') = (sort(x1 + x0) + a ') + a ', a < (max(x1 + x0) < a ⊃ a;max(x1 + x0)), a < max(x1 + x0) |
sort(x1 + a ' + x0) = sort(x1 + x0) + a ', max(x1 + x0) < max(sort(x1 + x0) + a '), ordered≤(sort(x1 + x0) + a '), a < max(sort(x1 + x0) + a ') ⊦ x1 + x0 = [], ins≤(a, sort(x1 + x0) + a ') = (sort(x1 + x0) + a ') + a ', a < max(x1 + x0)
Used simplifier rules: max-ins-max-last-sort: ⊦ ¬ a < max(x0) → ins≤(a, sort(x0)) = sort(x0) + a ';%irreflexivity: ⊦ ¬ a < a; from specification oelem%app-01: ⊦ x + y = x + z ↔ y = z; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%ins-less-last: ⊦ ¬ a0 < a → ins≤(a, x + a0 ') = ins≤(a, x) + a0 '; from specification olist%nen: ⊦ ¬ b < a ∧ a = c → ¬ b < c; (forward) from specification oelem%lel: ⊦ a < b ∧ a = c → c < b; (forward) from specification oelem%seq: ⊦ ¬ b < a → (¬ a < b ↔ a = b); from specification oelem%nll: ⊦ ¬ b < a ∧ b < c → a < c; (forward) from specification oelem