Skip to content
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Mathlib/Data/ENat/Lattice.lean
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ lemma coe_iSup : BddAbove (range f) → ↑(⨆ i, f i) = ⨆ i, (f i : ℕ∞)
lemma iInf_eq_top_of_isEmpty [IsEmpty ι] : ⨅ i, (f i : ℕ∞) = ⊤ :=
iInf_coe_eq_top.mpr ‹_›

lemma iInf_eq_coe_iff {f : ι → ℕ∞} {n : ℕ} :
⨅ i, f i = n ↔ (∃ i, f i = n) ∧ ∀ i, n ≤ f i := by
by_cases! hι : IsEmpty ι
· simp [iInf_of_isEmpty]
apply iInf_eq_iff

lemma iInf_toNat : (⨅ i, (f i : ℕ∞)).toNat = ⨅ i, f i := by
cases isEmpty_or_nonempty ι
· simp
Expand Down
6 changes: 6 additions & 0 deletions Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,12 @@ variable [WellFoundedLT α]
theorem ciInf_mem [Nonempty ι] (f : ι → α) : iInf f ∈ range f :=
csInf_mem (range_nonempty f)

lemma iInf_eq_iff [Nonempty ι] (f : ι → α) (n : α) :
⨅ i, (f i) = n ↔ (∃ i, f i = n) ∧ ∀ i, n ≤ f i := by
have : OrderBot α := WellFoundedLT.toOrderBot
refine ⟨(· ▸ ⟨ciInf_mem f, ciInf_le (OrderBot.bddBelow ..)⟩), fun ⟨⟨i, hi⟩, h⟩ ↦ ?_⟩
exact le_antisymm (hi ▸ ciInf_le (OrderBot.bddBelow ..) _) (le_ciInf h)

end ConditionallyCompleteLinearOrder

/-!
Expand Down