Documentation

Mathlib.Data.ENat.Lattice

Extended natural numbers form a complete linear order #

This instance is not in Data.ENat.Basic to avoid dependency on Finsets.

We also restate some lemmas about WithTop for ENat to have versions that use Nat.cast instead of WithTop.some.

theorem ENat.iSup_coe_eq_top {ι : Sort u_1} {f : ι} :
⨆ (i : ι), (f i) = ¬BddAbove (Set.range f)
theorem ENat.iSup_coe_ne_top {ι : Sort u_1} {f : ι} :
⨆ (i : ι), (f i) BddAbove (Set.range f)
theorem ENat.iSup_coe_lt_top {ι : Sort u_1} {f : ι} :
⨆ (i : ι), (f i) < BddAbove (Set.range f)
theorem ENat.iInf_coe_eq_top {ι : Sort u_1} {f : ι} :
⨅ (i : ι), (f i) = IsEmpty ι
theorem ENat.iInf_coe_ne_top {ι : Sort u_1} {f : ι} :
⨅ (i : ι), (f i) Nonempty ι
theorem ENat.iInf_coe_lt_top {ι : Sort u_1} {f : ι} :
⨅ (i : ι), (f i) < Nonempty ι
theorem ENat.coe_sSup {s : Set } :
BddAbove s(sSup s) = as, a
theorem ENat.coe_sInf {s : Set } (hs : s.Nonempty) :
(sInf s) = as, a
theorem ENat.coe_iSup {ι : Sort u_1} {f : ι} :
BddAbove (Set.range f)(⨆ (i : ι), f i) = ⨆ (i : ι), (f i)
theorem ENat.coe_iInf {ι : Sort u_1} {f : ι} [Nonempty ι] :
(⨅ (i : ι), f i) = ⨅ (i : ι), (f i)
@[simp]
theorem ENat.iInf_eq_top_of_isEmpty {ι : Sort u_1} {f : ι} [IsEmpty ι] :
⨅ (i : ι), (f i) =
theorem ENat.iInf_toNat {ι : Sort u_1} {f : ι} :
(⨅ (i : ι), (f i)).toNat = ⨅ (i : ι), f i
theorem ENat.iInf_eq_zero {ι : Sort u_1} {f : ι} :
⨅ (i : ι), (f i) = 0 ∃ (i : ι), f i = 0
theorem ENat.sSup_eq_zero {s : Set ℕ∞} :
sSup s = 0 as, a = 0
theorem ENat.sInf_eq_zero {s : Set ℕ∞} :
sInf s = 0 0 s
theorem ENat.sSup_eq_zero' {s : Set ℕ∞} :
sSup s = 0 s = s = {0}
@[simp]
theorem ENat.iSup_eq_zero {ι : Sort u_1} {f : ιℕ∞} :
iSup f = 0 ∀ (i : ι), f i = 0
@[simp]
theorem ENat.iSup_zero {ι : Sort u_1} :
⨆ (x : ι), 0 = 0
theorem ENat.sSup_eq_top_of_infinite {s : Set ℕ∞} (h : s.Infinite) :
theorem ENat.finite_of_sSup_lt_top {s : Set ℕ∞} (h : sSup s < ) :
s.Finite
theorem ENat.exists_eq_iSup_of_lt_top {ι : Sort u_1} {f : ιℕ∞} [Nonempty ι] (h : ⨆ (i : ι), f i < ) :
∃ (i : ι), f i = ⨆ (i : ι), f i
theorem ENat.exists_eq_iSup₂_of_lt_top {ι₁ : Type u_2} {ι₂ : Type u_3} {f : ι₁ι₂ℕ∞} [Nonempty ι₁] [Nonempty ι₂] (h : ⨆ (i : ι₁), ⨆ (j : ι₂), f i j < ) :
∃ (i : ι₁) (j : ι₂), f i j = ⨆ (i : ι₁), ⨆ (j : ι₂), f i j
theorem ENat.iSup_natCast :
⨆ (n : ), n =
theorem ENat.add_iSup {ι : Sort u_2} {a : ℕ∞} [Nonempty ι] (f : ιℕ∞) :
a + ⨆ (i : ι), f i = ⨆ (i : ι), a + f i
theorem ENat.iSup_add {ι : Sort u_2} {a : ℕ∞} [Nonempty ι] (f : ιℕ∞) :
(⨆ (i : ι), f i) + a = ⨆ (i : ι), f i + a
theorem ENat.add_biSup' {ι : Sort u_2} {a : ℕ∞} {p : ιProp} (h : ∃ (i : ι), p i) (f : ιℕ∞) :
a + ⨆ (i : ι), ⨆ (_ : p i), f i = ⨆ (i : ι), ⨆ (_ : p i), a + f i
theorem ENat.biSup_add' {ι : Sort u_2} {a : ℕ∞} {p : ιProp} (h : ∃ (i : ι), p i) (f : ιℕ∞) :
(⨆ (i : ι), ⨆ (_ : p i), f i) + a = ⨆ (i : ι), ⨆ (_ : p i), f i + a
theorem ENat.add_biSup {a : ℕ∞} {ι : Type u_4} {s : Set ι} (hs : s.Nonempty) (f : ιℕ∞) :
a + is, f i = is, a + f i
theorem ENat.biSup_add {a : ℕ∞} {ι : Type u_4} {s : Set ι} (hs : s.Nonempty) (f : ιℕ∞) :
(⨆ is, f i) + a = is, f i + a
theorem ENat.add_sSup {s : Set ℕ∞} {a : ℕ∞} (hs : s.Nonempty) :
a + sSup s = bs, a + b
theorem ENat.sSup_add {s : Set ℕ∞} {a : ℕ∞} (hs : s.Nonempty) :
sSup s + a = bs, b + a
theorem ENat.iSup_add_iSup_le {ι : Sort u_2} {κ : Sort u_3} {f : ιℕ∞} {a : ℕ∞} [Nonempty ι] [Nonempty κ] {g : κℕ∞} (h : ∀ (i : ι) (j : κ), f i + g j a) :
iSup f + iSup g a
theorem ENat.biSup_add_biSup_le' {ι : Sort u_2} {κ : Sort u_3} {f : ιℕ∞} {a : ℕ∞} {p : ιProp} {q : κProp} (hp : ∃ (i : ι), p i) (hq : ∃ (j : κ), q j) {g : κℕ∞} (h : ∀ (i : ι), p i∀ (j : κ), q jf i + g j a) :
(⨆ (i : ι), ⨆ (_ : p i), f i) + ⨆ (j : κ), ⨆ (_ : q j), g j a
theorem ENat.biSup_add_biSup_le {ι : Type u_4} {κ : Type u_5} {s : Set ι} {t : Set κ} (hs : s.Nonempty) (ht : t.Nonempty) {f : ιℕ∞} {g : κℕ∞} {a : ℕ∞} (h : is, jt, f i + g j a) :
(⨆ is, f i) + jt, g j a
theorem ENat.iSup_add_iSup {ι : Sort u_2} {f : ιℕ∞} {g : ιℕ∞} (h : ∀ (i j : ι), ∃ (k : ι), f i + g j f k + g k) :
iSup f + iSup g = ⨆ (i : ι), f i + g i
theorem ENat.iSup_add_iSup_of_monotone {ι : Type u_4} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {f : ιℕ∞} {g : ιℕ∞} (hf : Monotone f) (hg : Monotone g) :
iSup f + iSup g = ⨆ (a : ι), f a + g a
theorem ENat.sub_iSup {ι : Sort u_2} {f : ιℕ∞} {a : ℕ∞} [Nonempty ι] (ha : a ) :
a - ⨆ (i : ι), f i = ⨅ (i : ι), a - f i