| lfgen(0)(0) = [], lfgen(n)(n) = lfgen(n + 1)(n), ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → lfgen(n1)(m) = lfgen(n2)(m), lfgen(n + 1)(0) = [] ∧ (∀ m. m < n + 1 → lfgen(n + 1)(m + 1) = nextli(lfgen(n + 1)(m))), ∀ n. lfgen(n)(0) = [] ∧ (∀ m. m < n → lfgen(n)(m + 1) = nextli(lfgen(n)(m))) ⊦ lfgen(n + 1)(n + 1) = nextli(lfgen(n)(n)) |
lfgen(0)(0) = [], lfgen(n)(n) = lfgen(n + 1)(n), lfgen(n + 1)(0) = [], ∀ m, n1, n2. m ≤ n1 ∧ n1 ≤ n2 → lfgen(n1)(m) = lfgen(n2)(m), ∀ n. lfgen(n)(0) = [] ∧ (∀ m. m < n → lfgen(n)(m + 1) = nextli(lfgen(n)(m))), ∀ m. ¬ n < m → lfgen(n + 1)(m + 1) = nextli(lfgen(n + 1)(m)) ⊦ lfgen(n + 1)(n + 1) = nextli(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