| a < a0, ordered≤(a0 ' + x0), ∀ a1, b0. a1 = b0 ∨ ins≤(a1, x0 -1l b0) = ins≤(a1, x0) -1l b0 ⊦ a = a0, ins≤(a, x0) = a ' + x0 |
⊦ x ≠ [] ∧ x.tail ≠ [] → (ordered≤(x) ↔ ¬ x.tail.head < x.head ∧ ordered≤(x.tail))
a < a0, ordered≤((a0 ' + x0).tail), ∀ a1, b0. a1 = b0 ∨ ins≤(a1, x0 -1l b0) = ins≤(a1, x0) -1l b0 ⊦ a0 ' + x0 = [], (a0 ' + x0).tail = [], a = a0, ins≤(a, x0) = a ' + x0, (a0 ' + x0).tail.head < (a0 ' + x0).head
Used simplifier rules: ins-e: ⊦ ins≤(a, []) = a ';% ⊦ (a ' + x).tail = x; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ x + y = [] ↔ x = [] ∧ y = []; (as)% ⊦ a ' ≠ []; (s)% ⊦ x + [] = x; (s)% ⊦ a ' = b ' ↔ a = b; (s) Used terms: a0 ' + x0