| n0 < n, m + n ≤ # x ⊦ firstn(n, restn(m, x))[n0] = x[m + n0], n = 0 |
⊦ n < m ∧ m ≤ # x → firstn(m, x)[n] = x[n]
Used simplifier rules: rest-len: n ≤ # x ⊦ # restn(n, x) = # x - n;%rest-len: n ≤ # x ⊦ # restn(n, x) = # x - n;%restn-at: ⊦ m + n < # x → restn(m, x)[n] = x[m + n];%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%l-02: ⊦ ¬ m + n < m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%ls: n0 ≤ n ⊦ m < n - n0 ↔ m + n0 < n; from specification nat%ls-01: n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; from specification nat%le-ls-simp: ⊦ m ≤ n → (n < m ↔ false); from specification nat Used terms: n0, restn(m, x), n