HepLean Documentation

Mathlib.Order.ConditionallyCompleteLattice.Finset

Conditionally complete lattices and finite sets. #

theorem Finset.Nonempty.csSup_eq_max' {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Finset α} (h : s.Nonempty) :
sSup s = s.max' h
theorem Finset.Nonempty.csInf_eq_min' {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Finset α} (h : s.Nonempty) :
sInf s = s.min' h
theorem Finset.Nonempty.csSup_mem {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Finset α} (h : s.Nonempty) :
sSup s s
theorem Finset.Nonempty.csInf_mem {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Finset α} (h : s.Nonempty) :
sInf s s
theorem Set.Nonempty.csSup_mem {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Set α} (h : s.Nonempty) (hs : s.Finite) :
sSup s s
theorem Set.Nonempty.csInf_mem {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Set α} (h : s.Nonempty) (hs : s.Finite) :
sInf s s
theorem Set.Finite.csSup_lt_iff {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Set α} {a : α} (hs : s.Finite) (h : s.Nonempty) :
sSup s < a xs, x < a
theorem Set.Finite.lt_csInf_iff {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Set α} {a : α} (hs : s.Finite) (h : s.Nonempty) :
a < sInf s xs, a < x
theorem Finset.ciSup_eq_max'_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Finset ι} (h : xs, sSup f x) (h' : (Finset.image f s).Nonempty := by classical exact image_nonempty.mpr (h.imp fun _ ↦ And.left)) :
is, f i = (Finset.image f s).max' h'
theorem Finset.ciInf_eq_min'_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Finset ι} (h : xs, f x sInf ) (h' : (Finset.image f s).Nonempty := by classical exact image_nonempty.mpr (h.imp fun _ ↦ And.left)) :
is, f i = (Finset.image f s).min' h'
theorem Finset.ciSup_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Finset ι} (h : xs, sSup f x) :
is, f i Finset.image f s
theorem Finset.ciInf_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Finset ι} (h : xs, f x sInf ) :
is, f i Finset.image f s
theorem Set.Finite.ciSup_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Set ι} (hs : s.Finite) (h : xs, sSup f x) :
is, f i f '' s
theorem Set.Finite.ciInf_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] (f : ια) {s : Set ι} (hs : s.Finite) (h : xs, f x sInf ) :
is, f i f '' s
theorem Set.Finite.ciSup_lt_iff {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {a : α} {s : Set ι} {f : ια} (hs : s.Finite) (h : xs, sSup f x) :
is, f i < a xs, f x < a
theorem Set.Finite.lt_ciInf_iff {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {a : α} {s : Set ι} {f : ια} (hs : s.Finite) (h : xs, f x sInf ) :
a < is, f i xs, a < f x
theorem List.iSup_mem_map_of_exists_sSup_empty_le {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {l : List ι} (f : ια) (h : xl, sSup f x) :
xl, f x List.map f l
theorem List.iInf_mem_map_of_exists_le_sInf_empty {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {l : List ι} (f : ια) (h : xl, f x sInf ) :
xl, f x List.map f l
theorem Multiset.iSup_mem_map_of_exists_sSup_empty_le {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Multiset ι} (f : ια) (h : xs, sSup f x) :
xs, f x Multiset.map f s
theorem Multiset.iInf_mem_map_of_exists_le_sInf_empty {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] {s : Multiset ι} (f : ια) (h : xs, f x sInf ) :
xs, f x Multiset.map f s
theorem exists_eq_ciSup_of_finite {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] [Nonempty ι] [Finite ι] {f : ια} :
∃ (i : ι), f i = ⨆ (i : ι), f i
theorem exists_eq_ciInf_of_finite {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrder α] [Nonempty ι] [Finite ι] {f : ια} :
∃ (i : ι), f i = ⨅ (i : ι), f i

Relation between sSup / sInf and Finset.sup' / Finset.inf' #

Like the Sup of a ConditionallyCompleteLattice, Finset.sup' also requires the set to be non-empty. As a result, we can translate between the two.

theorem Finset.sup'_eq_csSup_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] (s : Finset ι) (H : s.Nonempty) (f : ια) :
s.sup' H f = sSup (f '' s)
theorem Finset.inf'_eq_csInf_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] (s : Finset ι) (H : s.Nonempty) (f : ια) :
s.inf' H f = sInf (f '' s)
theorem Finset.sup'_id_eq_csSup {α : Type u_2} [ConditionallyCompleteLattice α] (s : Finset α) (hs : s.Nonempty) :
s.sup' hs id = sSup s
theorem Finset.inf'_id_eq_csInf {α : Type u_2} [ConditionallyCompleteLattice α] (s : Finset α) (hs : s.Nonempty) :
s.inf' hs id = sInf s
theorem Finset.sup'_univ_eq_ciSup {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] [Fintype ι] [Nonempty ι] (f : ια) :
Finset.univ.sup' f = ⨆ (i : ι), f i
theorem Finset.inf'_univ_eq_ciInf {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLattice α] [Fintype ι] [Nonempty ι] (f : ια) :
Finset.univ.inf' f = ⨅ (i : ι), f i
theorem Finset.sup_univ_eq_ciSup {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] [Fintype ι] (f : ια) :
Finset.univ.sup f = ⨆ (i : ι), f i
theorem Finset.Nonempty.ciSup_eq_max'_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] (f : ια) {s : Finset ι} (h : s.Nonempty) (h' : (Finset.image f s).Nonempty := ) :
is, f i = (Finset.image f s).max' h'
theorem Finset.Nonempty.ciSup_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] (f : ια) {s : Finset ι} (h : s.Nonempty) :
is, f i Finset.image f s
theorem Set.Nonempty.ciSup_mem_image {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] (f : ια) {s : Set ι} (h : s.Nonempty) (hs : s.Finite) :
is, f i f '' s
theorem Set.Nonempty.ciSup_lt_iff {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] {s : Set ι} {a : α} {f : ια} (h : s.Nonempty) (hs : s.Finite) :
is, f i < a xs, f x < a
theorem List.iSup_mem_map_of_ne_nil {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] {l : List ι} (f : ια) (h : l []) :
xl, f x List.map f l
theorem Multiset.iSup_mem_map_of_ne_zero {ι : Type u_1} {α : Type u_2} [ConditionallyCompleteLinearOrderBot α] {s : Multiset ι} (f : ια) (h : s 0) :
xs, f x Multiset.map f s