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