| stutf(nσ), ⌜n⌝ + ⌜1⌝ = leninv(nσ), stutf(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]⌝ + ⌜m⌝ + ⌜1⌝ < # 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] + m + 1] = n + 1 |
⌜n⌝ + ⌜1⌝ = leninv(nσ), stutf(nσ), ⌜((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n)[n]⌝ + ⌜m⌝ + ⌜1⌝ < # nσ ⊦ nσ[((λ m. max∞(λ n. ⌜n⌝ < # nσ ∧ nσ[n] = m).n) to leninv(nσ).n)[n] + m + 1] = n + 1
Used simplifier rules: sel-fin: ⊦ ⌜nl⌝ [n] = nl[n]; from specification stream[natstream]%to-inf: ⊦ ⌜nnf⌝ to n = ⌜nnf to n⌝ ; from specification stream[natstream]%sum-notinf: ⊦ n∞ = ⌜m⌝ + ⌜n⌝ → (n∞ = ∞ ↔ false); from specification nat-inf%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