Basic operations on the natural numbers #
This file builds on Mathlib.Data.Nat.Init
by adding basic lemmas on natural numbers
depending on Mathlib definitions.
See note [foundational algebra order theory].
succ
, pred
#
div
#
pow
#
TODO #
- Rename
Nat.pow_le_pow_of_le_left
toNat.pow_le_pow_left
, protect it, remove the alias - Rename
Nat.pow_le_pow_of_le_right
toNat.pow_le_pow_right
, protect it, remove the alias
Recursion and induction principles #
This section is here due to dependencies -- the lemmas here require some of the lemmas proved above, and some of the results in later sections depend on the definitions in this section.
theorem
Nat.leRecOn_injective
{C : ℕ → Sort u_1}
{n m : ℕ}
(hnm : n ≤ m)
(next : {k : ℕ} → C k → C (k + 1))
(Hnext : ∀ (n : ℕ), Function.Injective next)
:
Function.Injective (leRecOn hnm fun {k : ℕ} => next)
theorem
Nat.leRecOn_surjective
{C : ℕ → Sort u_1}
{n m : ℕ}
(hnm : n ≤ m)
(next : {k : ℕ} → C k → C (k + 1))
(Hnext : ∀ (n : ℕ), Function.Surjective next)
:
Function.Surjective (leRecOn hnm fun {k : ℕ} => next)
mod
, dvd
#
dvd
is injective in the left argument