| ∀ m. lfgen(m)(0) = a ' ∧ iigen(m)(0) = n0 ∧ (∀ n. n ≤ m → lfgen(m)(n + 1) = nextl(iigen(m)(n), lfgen(m)(n).last) ∧ iigen(m)(n + 1) = nextj(iigen(m)(n), lfgen(m)(n).last)) ⊦ ∀ n. m ≤ n → lfgen(n)(m) = lfgen(m)(m) ∧ iigen(n)(m) = iigen(m)(m) |
∀ m. lfgen(m)(0) = a ' ∧ iigen(m)(0) = n0 ∧ (∀ n. n ≤ m → lfgen(m)(n + 1) = nextl(iigen(m)(n), lfgen(m)(n).last) ∧ iigen(m)(n + 1) = nextj(iigen(m)(n), lfgen(m)(n).last)) ⊦ ∀ n. 0 ≤ n → lfgen(n)(0) = lfgen(0)(0) ∧ iigen(n)(0) = iigen(0)(0)
∀ lfgen, a, iigen, n0, nextl, nextj. (∀ m. lfgen(m)(0) = a ' ∧ iigen(m)(0) = n0 ∧ (∀ n. n ≤ m → lfgen(m)(n + 1) = nextl(iigen(m)(n), lfgen(m)(n).last) ∧ iigen(m)(n + 1) = nextj(iigen(m)(n), lfgen(m)(n).last))) → (∀ n. m0 ≤ n → lfgen(n)(m0) = lfgen(m0)(m0) ∧ iigen(n)(m0) = iigen(m0)(m0)), ∀ m. lfgen(m)(0) = a ' ∧ iigen(m)(0) = n0 ∧ (∀ n. n ≤ m → lfgen(m)(n + 1) = nextl(iigen(m)(n), lfgen(m)(n).last) ∧ iigen(m)(n + 1) = nextj(iigen(m)(n), lfgen(m)(n).last)) ⊦ ∀ n. m0 +1 ≤ n → lfgen(n)(m0 +1) = lfgen(m0 +1)(m0 +1) ∧ iigen(n)(m0 +1) = iigen(m0 +1)(m0 +1)
Used simplifier rules: nat freely generated by 0, +1;;