| ins≤(a, x0) = a1 ' + y, a0 < a, a1 ∈ ins≤(a, x0), ∀ a. ordered≤(ins≤(a, x0)) ↔ ordered≤(x0) ⊦ a0 ' + x0 = [], (a0 ' + x0).tail = [], ¬ a1 < a0 ∧ ordered≤(ins≤(a, x0)) ↔ ¬ (a0 ' + x0).tail.head < (a0 ' + x0).head ∧ ordered≤((a0 ' + x0).tail) |
ins≤(a, x0) = a1 ' + y, a0 < a, a1 ∈ ins≤(a, x0), ∀ a. ordered≤(ins≤(a, x0)) ↔ ordered≤(x0) ⊦ ¬ a1 < a0 ∧ ordered≤(ins≤(a, x0)) ↔ ¬ x0.head < a0 ∧ ordered≤(x0), x0 = []
Used simplifier rules: ⊦ a ' + x ≠ []; (s)% ⊦ (a ' + x).head = a; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ (a ' + x).tail = x; (s)