| stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (n0 ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ[m] = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ[m0] = n0 - 1))))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ[m] = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ[m0] = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ[m] < nσ[m0]) |
stutf(nσ) ⊦ (∀ n. ∃ n0. n < n0 ∧ (∃ m. ⌜m⌝ < # nσ ∧ nσ[m] = n0 - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ[m0] = n0 - 1)))) ∨ (∀ n. ¬(n ≠ 0 → (∃ m. ⌜m⌝ < # nσ ∧ nσ[m] = n - 1 ∧ (# nσ ≠ ∞ ∨ ¬(∀ m0. m < m0 → nσ[m0] = n - 1))))) ↔ # nσ = ∞ ∧ (∀ m. ∃ m0. m < m0 ∧ nσ[m] < nσ[m0])
Used simplifier rules: f: ⊦ m < n → n ≠ 0; from specification nat-basic1