| # y = # y0, a0 ' + y0 + z = y + z0, a0 ∈ y ∨ a0 ∈ z0 ⊦ (y + z0)[# y0, a] = y + a ' + z |
⊦ # x ≤ n → (x + y)[n, a] = x + y[n - # x, a]
# y ≤ # y0, # y = # y0, a0 ' + y0 + z = y + z0, a0 ∈ y ∨ a0 ∈ z0 ⊦ y + z0[# y0 - # y, a] = y + a ' + z
Used simplifier rules: put-app-left: ⊦ n < # x → (x + y)[n, a] = x[n, a] + y;%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%a: ⊦ (x + y) + z = x + y + z; from specification list%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic1%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%l: ⊦ # x = 0 ↔ x = []; from specification list-data%ls-02: ⊦ m < n → ¬ n < m; from specification nat-basic1 Used terms: a, # y0, z0, y