| max∞(λ n0. n0 < n ∧ nσ[n0] = nσ[n - 1]) = ∞, # nσ = ⌜n⌝ , 1 + m + ∞.n < n, stutf(nσ), ∀ n0. n0 < n → nσ[n0] < nσ[n - 1] ⊦ nσ[∞.n + m + 1] = nσ[n - 1] + 1 |
n = m0 + 1 ∧ n ≠ 0, max∞(λ n0. n0 < n ∧ nσ[n0] = nσ[m0]) = ∞, # nσ = ⌜n⌝ , 1 + m + ∞.n < n, stutf(nσ), ∀ n0. n0 < n → nσ[n0] < nσ[m0] ⊦ nσ[∞.n + m + 1] = nσ[m0] + 1
Used simplifier rules: stutf-nonempty: ⊦ stutf(nσ) → (¬ nσ ≠ [] ↔ false);%zero-01: ⊦ ¬ m < 0; from specification nat-basic1%size-empty-equiv: ⊦ # nσ = ⌜0⌝ ↔ nσ = []; from specification stream[natstream]%n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: n, m0