| stutf(nσ) ⊦ (0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ[m] = 0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ[m0] = 0 - 1)))) ∧ (∀ m. (m ≠ 0 → (∃ m0. ⌜m0⌝ < # nσ ∧ nσ[m0] = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ[m1] = m - 1)))) → ¬ 0 < m) ↔ nσ = ⌜λ n. 0⌝ |
stutf(nσ), ∀ m. (∃ m0. ⌜m0⌝ < # nσ ∧ nσ[m0] = m - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m1. m0 < m1 → nσ[m1] = m - 1))) → m = 0 ⊦ nσ = ⌜λ n. 0⌝
Used simplifier rules: sel-inf: ⊦ ⌜nnf⌝ [n] = nnf(n); from specification stream[natstream]%less-inf2: ⊦ ⌜m⌝ < ∞; from specification nat-inf%size-inf: ⊦ # ⌜nnf⌝ = ∞; from specification stream[natstream]%zero: ⊦ 0 < m ↔ m ≠ 0; from specification nat-basic1