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]
    theorem ENat.toNat_mul (a b : ℕ∞) :
    (a * b).toNat = a.toNat * b.toNat
    @[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