| ∀ n. ii(n) ≤ ii(n + 1), ∀ n0, ii. n0 < n → (∀ n. ii(n) ≤ ii(n + 1)) → (∃ n. (∀ m. ii(m) ≤ n) ∧ (∃ m. ii(m) = n)) ∨ (∃ m. n0 ≤ ii(m)) ⊦ n = 0, ∃ m. n ≤ ii(m), ∃ n. (∀ m. ii(m) ≤ n) ∧ (∃ m. ii(m) = n), (∀ m. ii(m) ≤ n - 1) ∧ (∃ m. ii(m) = n - 1) |
∀ n. ii(n) ≤ ii(n + 1), ∀ n0, ii. n0 < n → (∀ n. ii(n) ≤ ii(n + 1)) → (∃ n. (∀ m. ii(m) ≤ n) ∧ (∃ m. ii(m) = n)) ∨ (∃ m. n0 ≤ ii(m)) ⊦ n = 0, ∃ n. (∀ m. ii(m) ≤ n) ∧ (∃ m. ii(m) = n), ∃ m. n ≤ ii(m), ii(m) < n ∧ (∃ m. ii(m) = n - 1)
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m + 1 ≤ n ↔ m < n; (s)%n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n; (s)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)