File: Mathlib/Data/Multiset/Lattice.lean

full_name: Multiset.sup
code: /-- Supremum of a multiset: `sup {a, b, c} = a ⊔ b ⊔ c` -/
def sup (s : Multiset α) : α 
goal: α

full_name: Multiset.sup_coe
code: @[simp]
theorem sup_coe (l : List α) : sup (l : Multiset α) = l.foldr (· ⊔ ·) ⊥ 
goal: (↑l).sup = List.foldr (fun x x_1 => x ⊔ x_1) ⊥ l

full_name: Multiset.sup_zero
code: @[simp]
theorem sup_zero : (0 : Multiset α).sup = ⊥ 
goal: Multiset.sup 0 = ⊥

full_name: Multiset.sup_cons
code: @[simp]
theorem sup_cons (a : α) (s : Multiset α) : (a ::ₘ s).sup = a ⊔ s.sup 
goal: (a ::ₘ s).sup = a ⊔ s.sup

full_name: Multiset.sup_singleton
code: @[simp]
theorem sup_singleton {a : α} : ({a} : Multiset α).sup = a 
goal: {a}.sup = a

full_name: Multiset.sup_add
code: @[simp]
theorem sup_add (s₁ s₂ : Multiset α) : (s₁ + s₂).sup = s₁.sup ⊔ s₂.sup 
goal: (s₁ + s₂).sup = s₁.sup ⊔ s₂.sup

full_name: Multiset.sup_le
code: @[simp]
theorem sup_le {s : Multiset α} {a : α} : s.sup ≤ a ↔ ∀ b ∈ s, b ≤ a 
goal: s.sup ≤ a ↔ ∀ b ∈ s, b ≤ a

full_name: Multiset.le_sup
code: theorem le_sup {s : Multiset α} {a : α} (h : a ∈ s) : a ≤ s.sup 
goal: a ≤ s.sup

full_name: Multiset.sup_mono
code: theorem sup_mono {s₁ s₂ : Multiset α} (h : s₁ ⊆ s₂) : s₁.sup ≤ s₂.sup 
goal: s₁.sup ≤ s₂.sup

full_name: Multiset.sup_dedup
code: @[simp]
theorem sup_dedup (s : Multiset α) : (dedup s).sup = s.sup 
goal: s.dedup.sup = s.sup

full_name: Multiset.sup_ndunion
code: @[simp]
theorem sup_ndunion (s₁ s₂ : Multiset α) : (ndunion s₁ s₂).sup = s₁.sup ⊔ s₂.sup 
goal: (s₁.ndunion s₂).sup = s₁.sup ⊔ s₂.sup

full_name: Multiset.sup_union
code: @[simp]
theorem sup_union (s₁ s₂ : Multiset α) : (s₁ ∪ s₂).sup = s₁.sup ⊔ s₂.sup 
goal: (s₁ ∪ s₂).sup = s₁.sup ⊔ s₂.sup

full_name: Multiset.sup_ndinsert
code: @[simp]
theorem sup_ndinsert (a : α) (s : Multiset α) : (ndinsert a s).sup = a ⊔ s.sup 
goal: (Multiset.ndinsert a s).sup = a ⊔ s.sup

full_name: Multiset.nodup_sup_iff
code: theorem nodup_sup_iff {α : Type*} [DecidableEq α] {m : Multiset (Multiset α)} :
    m.sup.Nodup ↔ ∀ a : Multiset α, a ∈ m → a.Nodup 
goal: m.sup.Nodup ↔ ∀ a ∈ m, a.Nodup

full_name: Multiset.inf
code: /-- Infimum of a multiset: `inf {a, b, c} = a ⊓ b ⊓ c` -/
def inf (s : Multiset α) : α 
goal: α

full_name: Multiset.inf_coe
code: @[simp]
theorem inf_coe (l : List α) : inf (l : Multiset α) = l.foldr (· ⊓ ·) ⊤ 
goal: (↑l).inf = List.foldr (fun x x_1 => x ⊓ x_1) ⊤ l

full_name: Multiset.inf_zero
code: @[simp]
theorem inf_zero : (0 : Multiset α).inf = ⊤ 
goal: Multiset.inf 0 = ⊤

full_name: Multiset.inf_cons
code: @[simp]
theorem inf_cons (a : α) (s : Multiset α) : (a ::ₘ s).inf = a ⊓ s.inf 
goal: (a ::ₘ s).inf = a ⊓ s.inf

full_name: Multiset.inf_singleton
code: @[simp]
theorem inf_singleton {a : α} : ({a} : Multiset α).inf = a 
goal: {a}.inf = a

full_name: Multiset.inf_add
code: @[simp]
theorem inf_add (s₁ s₂ : Multiset α) : (s₁ + s₂).inf = s₁.inf ⊓ s₂.inf 
goal: (s₁ + s₂).inf = s₁.inf ⊓ s₂.inf

full_name: Multiset.le_inf
code: @[simp]
theorem le_inf {s : Multiset α} {a : α} : a ≤ s.inf ↔ ∀ b ∈ s, a ≤ b 
goal: a ≤ s.inf ↔ ∀ b ∈ s, a ≤ b

full_name: Multiset.inf_le
code: theorem inf_le {s : Multiset α} {a : α} (h : a ∈ s) : s.inf ≤ a 
goal: s.inf ≤ a

full_name: Multiset.inf_mono
code: theorem inf_mono {s₁ s₂ : Multiset α} (h : s₁ ⊆ s₂) : s₂.inf ≤ s₁.inf 
goal: s₂.inf ≤ s₁.inf

full_name: Multiset.inf_dedup
code: @[simp]
theorem inf_dedup (s : Multiset α) : (dedup s).inf = s.inf 
goal: s.dedup.inf = s.inf

full_name: Multiset.inf_ndunion
code: @[simp]
theorem inf_ndunion (s₁ s₂ : Multiset α) : (ndunion s₁ s₂).inf = s₁.inf ⊓ s₂.inf 
goal: (s₁.ndunion s₂).inf = s₁.inf ⊓ s₂.inf

full_name: Multiset.inf_union
code: @[simp]
theorem inf_union (s₁ s₂ : Multiset α) : (s₁ ∪ s₂).inf = s₁.inf ⊓ s₂.inf 
goal: (s₁ ∪ s₂).inf = s₁.inf ⊓ s₂.inf

full_name: Multiset.inf_ndinsert
code: @[simp]
theorem inf_ndinsert (a : α) (s : Multiset α) : (ndinsert a s).inf = a ⊓ s.inf 
goal: (Multiset.ndinsert a s).inf = a ⊓ s.inf