| a0 ' + x0 ≠ [] ∧ (a0 ' + x0).rest ≠ [], ¬ (a0 ' + x0).rest.first < (a0 ' + x0).first ∧ ordered≤((a0 ' + x0).rest), ∀ a1. ordered≤(x0 -1l a1) ⊦ a = a0, ordered≤(a0 ' + (x0 -1l a)) |
ordered≤(x0), ∀ a1. ordered≤(x0 -1l a1) ⊦ a = a0, x0 = [], ordered≤(a0 ' + (x0 -1l a)), x0.first < a0
Used simplifier rules: c-08: ⊦ (a ' + x).first = a; from specification list%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