Documentation

Mathlib.Data.ENat.Monoid

LinearOrderedAddCommMonoidWithTop structure on ENat #

@[instance_reducible]
Equations
  • One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
  • One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem ENat.natCast_mul (m n : ) :
↑(m * n) = m * n
@[deprecated ENat.natCast_mul (since := "2026-07-17")]
theorem ENat.coe_mul (m n : ) :
↑(m * n) = m * n

Alias of ENat.natCast_mul.

@[simp]
theorem ENat.mul_top {m : ℕ∞} (hm : m 0) :
@[simp]
theorem ENat.top_mul {m : ℕ∞} (hm : m 0) :
theorem ENat.mul_top' {m : ℕ∞} :
m * = if m = 0 then 0 else

A version of mul_top where the RHS is stated as an ite

theorem ENat.top_mul' {m : ℕ∞} :
* m = if m = 0 then 0 else

A version of top_mul where the RHS is stated as an ite

@[simp]
theorem ENat.top_pow {n : } (hn : n 0) :
@[simp]
theorem ENat.pow_eq_top_iff {a : ℕ∞} {n : } :
a ^ n = a = n 0
theorem ENat.pow_ne_top_iff {a : ℕ∞} {n : } :
a ^ n a n = 0
@[simp]
theorem ENat.pow_lt_top_iff {a : ℕ∞} {n : } :
a ^ n < a < n = 0
theorem ENat.eq_top_of_pow {a : ℕ∞} (n : ) (ha : a ^ n = ) :
a =
@[simp]
theorem ENat.lift_add (a b : ℕ∞) (h : a + b < ) :
(a + b).lift h = a.lift + b.lift

Homomorphism from ℕ∞ to sending to 0.

Equations
Instances For
    theorem ENat.toNatHom_apply (n : ) :
    toNatHom n = (↑n).toNat
    @[simp]
    @[deprecated ENat.natCast_toNat_eq_self (since := "2026-07-17")]
    theorem ENat.coe_toNat_eq_self {n : ℕ∞} :
    n.toNat = n n

    Alias of ENat.natCast_toNat_eq_self.

    theorem ENat.natCast_toNat {n : ℕ∞} :
    n n.toNat = n

    Alias of the reverse direction of ENat.natCast_toNat_eq_self.

    @[deprecated ENat.natCast_toNat (since := "2026-07-17")]
    theorem ENat.coe_toNat {n : ℕ∞} :
    n n.toNat = n

    Alias of ENat.natCast_toNat.


    Alias of the reverse direction of ENat.natCast_toNat_eq_self.

    @[simp]
    theorem ENat.toNat_eq_iff_eq_natCast (n : ℕ∞) (m : ) [NeZero m] :
    n.toNat = m n = m
    @[simp]
    theorem ENat.toNat_mul (a b : ℕ∞) :
    (a * b).toNat = a.toNat * b.toNat
    theorem ENat.toNat_eq_iff {m : ℕ∞} {n : } (hn : n 0) :
    m.toNat = n m = n
    theorem ENat.toNat_le_of_le_natCast {m : ℕ∞} {n : } (h : m n) :
    @[deprecated ENat.toNat_le_of_le_natCast (since := "2026-07-17")]
    theorem ENat.toNat_le_of_le_coe {m : ℕ∞} {n : } (h : m n) :

    Alias of ENat.toNat_le_of_le_natCast.

    theorem ENat.toNat_le_toNat {m n : ℕ∞} (h : m n) (hn : n ) :
    @[deprecated ENat.toNat_eq_iff_eq_natCast (since := "2026-07-17")]
    theorem ENat.toNat_eq_iff_eq_coe (n : ℕ∞) (m : ) [NeZero m] :
    n.toNat = m n = m

    Alias of ENat.toNat_eq_iff_eq_natCast.

    @[deprecated add_pos_of_right (since := "2026-05-25")]
    theorem ENat.add_one_pos {n : ℕ∞} :
    0 < n + 1
    theorem ENat.natCast_lt_succ {n : } :
    n < n + 1
    theorem ENat.le_sub_of_add_le_left {a b c : ℕ∞} (ha : a ) :
    a + b cb c - a
    theorem ENat.le_sub_of_add_le_right {a b c : ℕ∞} (hb : b ) :
    a + b ca c - b
    theorem ENat.lt_add_left {n k : ℕ∞} (h : n ) (h' : 0 < k) :
    n < k + n
    theorem ENat.sub_sub_cancel {a b : ℕ∞} (h : a ) (h2 : b a) :
    a - (a - b) = b
    theorem ENat.mul_right_strictMono {a : ℕ∞} (ha : a 0) (h_top : a ) :
    StrictMono fun (x : ℕ∞) => a * x
    theorem ENat.mul_left_strictMono {a : ℕ∞} (ha : a 0) (h_top : a ) :
    StrictMono fun (x : ℕ∞) => x * a
    @[simp]
    theorem ENat.mul_le_mul_left_iff {a x y : ℕ∞} (ha : a 0) (h_top : a ) :
    a * x a * y x y
    @[simp]
    theorem ENat.mul_le_mul_right_iff {a x y : ℕ∞} (ha : a 0) (h_top : a ) :
    x * a y * a x y
    theorem ENat.mul_le_mul_of_le_right {a x y : ℕ∞} (hxy : x y) (ha : a 0) (h_top : a ) :
    x * a y * a
    theorem ENat.self_le_mul_right {c : ℕ∞} (a : ℕ∞) (hc : c 0) :
    a a * c
    theorem ENat.self_le_mul_left {c : ℕ∞} (a : ℕ∞) (hc : c 0) :
    a c * a
    @[instance_reducible]
    Equations
    theorem ENat.add_one_natCast_le_withTop_of_lt {m : } {n : WithTop ℕ∞} (h : m < n) :
    ↑(m + 1) n
    @[simp]
    theorem ENat.coe_top_add_one :
    + 1 =
    @[simp]
    theorem ENat.add_one_eq_coe_top_iff {n : WithTop ℕ∞} :
    n + 1 = n =
    @[simp]
    theorem ENat.natCast_ne_coe_top (n : ) :
    n
    theorem ENat.natCast_le_of_coe_top_le_withTop {N : WithTop ℕ∞} (hN : N) (n : ) :
    n N
    theorem ENat.natCast_lt_of_coe_top_le_withTop {N : WithTop ℕ∞} (hN : N) (n : ) :
    n < N
    @[simp]
    @[simp]

    A version of WithTop.map for AddMonoidHoms.

    Equations
    Instances For
      @[simp]
      theorem AddMonoidHom.ENatMap_apply {N : Type u_1} [AddZeroClass N] (f : →+ N) :
      f.ENatMap = ENat.map f

      A version of ENat.map for MonoidWithZeroHoms.

      Equations
      • f.ENatMap hf = { toFun := ENat.map f, map_zero' := , map_one' := , map_mul' := }
      Instances For
        @[simp]

        A version of ENat.map for RingHoms.

        Equations
        Instances For
          @[simp]
          theorem ENat.WithBot.add_natCast_cancel {a b : WithBot ℕ∞} {c : } :
          a + c = b + c a = b
          @[simp]
          theorem ENat.WithBot.add_one_cancel {a b : WithBot ℕ∞} :
          a + 1 = b + 1 a = b
          @[simp]
          theorem ENat.WithBot.natCast_add_cancel {a b : WithBot ℕ∞} {c : } :
          c + a = c + b a = b
          @[simp]
          theorem ENat.WithBot.one_add_cancel {a b : WithBot ℕ∞} :
          1 + a = 1 + b a = b
          theorem ENat.WithBot.add_le_add_natCast_left_iff {a b : WithBot ℕ∞} {c : } :
          c + a c + b a b