Cast of natural numbers: lemmas about order #
theorem
Nat.mono_cast
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
:
Monotone Nat.cast
@[simp]
theorem
Nat.cast_nonneg'
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
(n : ℕ)
:
0 ≤ ↑n
See also Nat.cast_nonneg
, specialised for an OrderedSemiring
.
@[simp]
Specialisation of Nat.cast_nonneg'
, which seems to be easier for Lean to use.
@[simp]
@[simp]
theorem
Nat.cast_add_one_pos
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[NeZero 1]
(n : ℕ)
:
@[simp]
theorem
Nat.cast_pos'
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[NeZero 1]
{n : ℕ}
:
See also Nat.cast_pos
, a specialisation of this to an OrderedSemiring
.
@[simp]
Specialisation of Nat.cast_pos'
, which seems to be easier for Lean to use.
theorem
Nat.strictMono_cast
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
:
StrictMono Nat.cast
@[simp]
theorem
Nat.castOrderEmbedding_apply
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
:
⇑Nat.castOrderEmbedding = Nat.cast
def
Nat.castOrderEmbedding
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
:
Nat.cast : ℕ → α
as an OrderEmbedding
Equations
- Nat.castOrderEmbedding = OrderEmbedding.ofStrictMono Nat.cast (_ : StrictMono Nat.cast)
Instances For
@[simp]
theorem
Nat.cast_le
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{m : ℕ}
{n : ℕ}
:
@[simp]
theorem
Nat.cast_lt
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{m : ℕ}
{n : ℕ}
:
@[simp]
theorem
Nat.one_lt_cast
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{n : ℕ}
:
@[simp]
theorem
Nat.one_le_cast
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{n : ℕ}
:
@[simp]
theorem
Nat.cast_lt_one
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{n : ℕ}
:
@[simp]
theorem
Nat.cast_le_one
{α : Type u_1}
[AddCommMonoidWithOne α]
[PartialOrder α]
[CovariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
[ZeroLEOneClass α]
[CharZero α]
{n : ℕ}
:
@[simp]
theorem
Nat.cast_tsub
{α : Type u_1}
[CanonicallyOrderedCommSemiring α]
[Sub α]
[OrderedSub α]
[ContravariantClass α α (fun (x x_1 : α) => x + x_1) fun (x x_1 : α) => x ≤ x_1]
(m : ℕ)
(n : ℕ)
:
A version of Nat.cast_sub
that works for ℝ≥0
and ℚ≥0
. Note that this proof doesn't work
for ℕ∞
and ℝ≥0∞
, so we use type-specific lemmas for these types.
Equations
- (_ : Nontrivial α) = (_ : Nontrivial α)
theorem
NeZero.nat_of_injective
{R : Type u_3}
{S : Type u_4}
{F : Type u_5}
[NonAssocSemiring R]
[NonAssocSemiring S]
[FunLike F R S]
{n : ℕ}
[h : NeZero ↑n]
[RingHomClass F R S]
{f : F}
(hf : Function.Injective ⇑f)
:
NeZero ↑n