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