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