| n = m + 1, m0 < n, n ≤ # y + 1, m0 ≤ # y, ∀ n, x. m0 ≤ n ∧ n ≤ # x ∧ m0 ≤ # x → firstn(m0, firstn(n, x)) = firstn(m0, x) ⊦ n = 0, firstn(m0, firstn(m, y)) = firstn(m0, y) |
m ≤ # y, m0 ≤ m, m0 ≤ # y, ∀ n, x. m0 ≤ n ∧ n ≤ # x ∧ m0 ≤ # x → firstn(m0, firstn(n, x)) = firstn(m0, x) ⊦ firstn(m0, firstn(m, y)) = firstn(m0, y)
Used simplifier rules: let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%lep-02: ⊦ m + n ≤ m + n0 ↔ n ≤ n0; from specification nat%s: ⊦ m < n + 1 ↔ ¬ n < m; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%oz: ⊦ m + 1 ≠ 0; from specification nat-basic2