| leninv(nσ) = ∞, ⌜n⌝ < leninv(nσ), ⌜⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ [n]⌝ + ⌜1⌝ < # nσ, stutf(nσ) ⊦ nσ [ (leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n⌝ ;⌜(λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n⌝ )[n] + 1 ] = n + 1 |
# nσ = ∞, ⌜n⌝ < leninv(nσ), stutf(nσ), ∀ m. ∃ m0. m < nσ[m0], ∀ m. ∃ m0. m < m0 ∧ nσ[m] < nσ[m0] ⊦ nσ[(leninv(nσ) = ∞ ⊃ ⌜λ m. max∞(λ n0. nσ[n0] = m).n⌝ ;⌜(λ m. max∞(λ n0. nσ[n0] = m).n) to leninv(nσ).n⌝ )[n] + 1] = n + 1
Used simplifier rules: leninv-inf-strong: ⊦ stutf(nσ) → ( leninv(nσ) = ∞ ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ[m] < nσ[m0]) ∧ (∀ m. ∃ m0. m < nσ[m0]));%add-comm: ⊦ n∞1 + n∞2 = n∞2 + n∞1; from specification nat-inf%add-assoc: ⊦ (n∞ + n∞1) + n∞2 = n∞ + n∞1 + n∞2; from specification nat-inf% ⊦ ⌜m⌝ ≠ ∞; (s)% ⊦ ⌜n⌝ + n∞1 = ∞ ↔ n∞1 = ∞; (s)% ⊦ n∞ < ∞ ↔ n∞ ≠ ∞; (s)% ⊦ ⌜m⌝ < ∞; (s)% ⊦ ⌜nnf⌝ [n] = nnf(n); (s)