HepLean Documentation

Mathlib.Data.Nat.Cast.Order.Ring

Cast of natural numbers: lemmas about bundled ordered semirings #

@[simp]
theorem Nat.cast_nonneg {α : Type u_2} [OrderedSemiring α] (n : ) :
0 n

Specialisation of Nat.cast_nonneg', which seems to be easier for Lean to use.

@[simp]
theorem Nat.ofNat_nonneg {α : Type u_2} [OrderedSemiring α] (n : ) [n.AtLeastTwo] :

Specialisation of Nat.ofNat_nonneg', which seems to be easier for Lean to use.

@[simp]
theorem Nat.cast_min {α : Type u_2} [LinearOrderedSemiring α] (m n : ) :
(m n) = m n
@[simp]
theorem Nat.cast_max {α : Type u_2} [LinearOrderedSemiring α] (m n : ) :
(m n) = m n
@[simp]
theorem Nat.cast_pos {α : Type u_2} [OrderedSemiring α] [Nontrivial α] {n : } :
0 < n 0 < n

Specialisation of Nat.cast_pos', which seems to be easier for Lean to use.

@[simp]
theorem Nat.ofNat_pos' {α : Type u_1} [AddMonoidWithOne α] [PartialOrder α] [AddLeftMono α] [ZeroLEOneClass α] [NeZero 1] {n : } [n.AtLeastTwo] :

See also Nat.ofNat_pos, specialised for an OrderedSemiring.

@[simp]
theorem Nat.ofNat_pos {α : Type u_2} [OrderedSemiring α] [Nontrivial α] {n : } [n.AtLeastTwo] :

Specialisation of Nat.ofNat_pos', which seems to be easier for Lean to use.

@[simp]
theorem Nat.cast_tsub {α : Type u_1} [CanonicallyOrderedCommSemiring α] [Sub α] [OrderedSub α] [AddLeftReflectLE α] (m n : ) :
(m - n) = 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.

@[simp]
theorem Nat.abs_cast {α : Type u_1} [LinearOrderedRing α] (a : ) :
|a| = a
@[simp]
theorem Nat.abs_ofNat {α : Type u_1} [LinearOrderedRing α] (n : ) [n.AtLeastTwo] :
theorem Nat.mul_le_pow {a : } (ha : a 1) (b : ) :
a * b a ^ b