| # nσ = ⌜n⌝ , nσ[n - 1] = nσ[n1], n1 < n, 1 + m + n1 < n, stutf(nσ), ∀ m0. m0 < n ∧ nσ[m0] = nσ[n1] → ¬ n1 < m0 ⊦ nσ[n1 + m + 1] = nσ[n1] + 1 |
n = m1 + 1 ∧ n ≠ 0, # nσ = ⌜n⌝ , nσ[m1] = nσ[n1], n1 < n, 1 + m + n1 < n, stutf(nσ), ∀ m0. m0 < n ∧ nσ[m0] = nσ[n1] → ¬ n1 < m0 ⊦ nσ[n1 + m + 1] = nσ[n1] + 1
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: n, m1