| # nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n < n1, n < n1, stutf(nσ), max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n < n, nσ[n] ≤ nσ[n1 - 1], max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n + 1 < n1 ⊦ |
n1 = m + 1 ∧ n1 ≠ 0, # nσ = ⌜n1⌝ , max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n < n1, n < n1, stutf(nσ), max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n < n, nσ[n] ≤ nσ[m], max∞(λ n0. n0 < n1 ∧ nσ[n0] = nσ[n]).n + 1 < n1 ⊦
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, m