| lfgen(0)(0) = a ', lfgen(n)(n) = lfgen(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → lfgen(n1)(m) = lfgen(n2)(m), lfgen(n + 1)(0) = a ' ∧ (∀ m. m < n + 1 → lfgen(n + 1)(m + 1) = nextl(m, lfgen(n + 1)(m).last) ∧ lfgen(n + 1)(m) ≠ []), ∀ n. lfgen(n)(0) = a ' ∧ (∀ m. m < n → lfgen(n)(m + 1) = nextl(m, lfgen(n)(m).last) ∧ lfgen(n)(m) ≠ []), ∀ n, a. nextl(n, a) ≠ [] ⊦ lfgen(n + 1)(n + 1) = nextl(n, lfgen(n)(n).last) ∧ lfgen(n)(n) ≠ [] |
lfgen(0)(0) = a ', lfgen(n)(n) = lfgen(n + 1)(n), lfgen(n + 1)(0) = a ', ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → lfgen(n1)(m) = lfgen(n2)(m), ∀ n. lfgen(n)(0) = a ' ∧ (∀ m. m < n → lfgen(n)(m + 1) = nextl(m, lfgen(n)(m).last) ∧ lfgen(n)(m) ≠ []), ∀ n, a. nextl(n, a) ≠ [], ∀ m. ¬ n < m → lfgen(n + 1)(m + 1) = nextl(m, lfgen(n + 1)(m).last) ∧ lfgen(n + 1)(m) ≠ [] ⊦ lfgen(n + 1)(n + 1) = nextl(n, lfgen(n)(n).last) ∧ lfgen(n)(n) ≠ []
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%s: ⊦ m < n + 1 ↔ ¬ n < m; from specification nat-basic2