| # y = # y0, ¬ # y0 < 0 → (a0 ' + y)[0] = (a ' + y0)[0], ∀ n0. ¬ # y0 < n0 → (a0 ' + y)[n0] = (a ' + y0)[n0], (n < # y0 → y[n] = y0[n]) → y = y0 ⊦ a0 ' + y = a ' + y0 |
# y = # y0, n < # y0, ∀ n0. ¬ # y0 < n0 → (a ' + y)[n0] = (a ' + y0)[n0] ⊦ y[n] = y0[n], y0 = []
Used simplifier rules: get-zero-01: ⊦ (a ' + x)[0] = a;%l: ⊦ # x = 0 ↔ x = []; from specification list-data%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%c-06: ⊦ a ' + x = b ' + y ↔ a = b ∧ x = y; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%zero-01: ⊦ ¬ m < 0; from specification nat-basic1