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