| ¬(a ' + a0 ' + y ≠ [] ∧ m ≠ 0), n ≤ 1 + # y, ordered<(a0 ' + y), a < a0, m < n, m ≤ # y, ∀ m0, n0. m0 < n0 ∧ ¬ # y < n0 → (a0 ' + y)[m0] < (a0 ' + y)[n0] ⊦ (a ' + a0 ' + y)[m] < (a ' + a0 ' + y)[n] |
n ≤ 1 + # y, ordered<(a0 ' + y), a < a0, (a ' + a0 ' + y)[n] < a0, ∀ m0, n0. m0 < n0 ∧ ¬ # y < n0 → (a0 ' + y)[m0] < (a0 ' + y)[n0] ⊦ a ' + a0 ' + y = [], n = 0, a < (a ' + a0 ' + y)[n]
Used simplifier rules: nll: ⊦ ¬ b < a ∧ b < c → a < c; (forward) from specification oelem%get-zero-01: ⊦ (a ' + x)[0] = a; from specification list-del%lez: ⊦ 0 ≤ m; from specification nat%f: ⊦ m < n → n ≠ 0; from specification nat-basic1%z: ⊦ 0 < n ↔ n ≠ 0; from specification nat-basic1%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic1%a: ⊦ (x + y) + z = x + y + z; from specification list%e: ⊦ a ' ≠ []; from specification list%app-02-ant: ⊦ ¬ x + y ≠ [] ↔ x = [] ∧ y = []; from specification list