Documentation

Mathlib.Algebra.Order.BigOperators.Group.Multiset

Big operators on a multiset in ordered groups #

This file contains the results concerning the interaction of multiset big operators with ordered groups.

theorem Multiset.sum_nonneg {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} :
(xs, 0 x)0 Multiset.sum s
theorem Multiset.one_le_prod_of_one_le {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} :
(xs, 1 x)1 Multiset.prod s
theorem Multiset.single_le_sum {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} :
(xs, 0 x)xs, x Multiset.sum s
theorem Multiset.single_le_prod {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} :
(xs, 1 x)xs, x Multiset.prod s
theorem Multiset.sum_le_card_nsmul {α : Type u_2} [OrderedAddCommMonoid α] (s : Multiset α) (n : α) (h : xs, x n) :
Multiset.sum s Multiset.card s n
theorem Multiset.prod_le_pow_card {α : Type u_2} [OrderedCommMonoid α] (s : Multiset α) (n : α) (h : xs, x n) :
Multiset.prod s n ^ Multiset.card s
theorem Multiset.all_zero_of_le_zero_le_of_sum_eq_zero {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} :
(xs, 0 x)Multiset.sum s = 0xs, x = 0
theorem Multiset.all_one_of_le_one_le_of_prod_eq_one {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} :
(xs, 1 x)Multiset.prod s = 1xs, x = 1
theorem Multiset.sum_le_sum_of_rel_le {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} {t : Multiset α} (h : Multiset.Rel (fun (x x_1 : α) => x x_1) s t) :
theorem Multiset.prod_le_prod_of_rel_le {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} {t : Multiset α} (h : Multiset.Rel (fun (x x_1 : α) => x x_1) s t) :
theorem Multiset.sum_map_le_sum_map {ι : Type u_1} {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset ι} (f : ια) (g : ια) (h : is, f i g i) :
theorem Multiset.prod_map_le_prod_map {ι : Type u_1} {α : Type u_2} [OrderedCommMonoid α] {s : Multiset ι} (f : ια) (g : ια) (h : is, f i g i) :
theorem Multiset.sum_map_le_sum {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} (f : αα) (h : xs, f x x) :
theorem Multiset.prod_map_le_prod {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} (f : αα) (h : xs, f x x) :
theorem Multiset.sum_le_sum_map {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} (f : αα) (h : xs, x f x) :
theorem Multiset.prod_le_prod_map {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} (f : αα) (h : xs, x f x) :
theorem Multiset.card_nsmul_le_sum {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} {a : α} (h : xs, a x) :
Multiset.card s a Multiset.sum s
theorem Multiset.pow_card_le_prod {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} {a : α} (h : xs, a x) :
a ^ Multiset.card s Multiset.prod s
theorem Multiset.le_sum_of_subadditive_on_pred {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : αβ) (p : αProp) (h_one : f 0 = 0) (hp_one : p 0) (h_mul : ∀ (a b : α), p ap bf (a + b) f a + f b) (hp_mul : ∀ (a b : α), p ap bp (a + b)) (s : Multiset α) (hps : as, p a) :
theorem Multiset.le_prod_of_submultiplicative_on_pred {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : αβ) (p : αProp) (h_one : f 1 = 1) (hp_one : p 1) (h_mul : ∀ (a b : α), p ap bf (a * b) f a * f b) (hp_mul : ∀ (a b : α), p ap bp (a * b)) (s : Multiset α) (hps : as, p a) :
theorem Multiset.le_sum_of_subadditive {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : αβ) (h_one : f 0 = 0) (h_mul : ∀ (a b : α), f (a + b) f a + f b) (s : Multiset α) :
theorem Multiset.le_prod_of_submultiplicative {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : αβ) (h_one : f 1 = 1) (h_mul : ∀ (a b : α), f (a * b) f a * f b) (s : Multiset α) :
theorem Multiset.le_sum_nonempty_of_subadditive_on_pred {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : αβ) (p : αProp) (h_mul : ∀ (a b : α), p ap bf (a + b) f a + f b) (hp_mul : ∀ (a b : α), p ap bp (a + b)) (s : Multiset α) (hs_nonempty : s ) (hs : as, p a) :
theorem Multiset.le_prod_nonempty_of_submultiplicative_on_pred {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : αβ) (p : αProp) (h_mul : ∀ (a b : α), p ap bf (a * b) f a * f b) (hp_mul : ∀ (a b : α), p ap bp (a * b)) (s : Multiset α) (hs_nonempty : s ) (hs : as, p a) :
theorem Multiset.le_sum_nonempty_of_subadditive {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : αβ) (h_mul : ∀ (a b : α), f (a + b) f a + f b) (s : Multiset α) (hs_nonempty : s ) :
theorem Multiset.le_prod_nonempty_of_submultiplicative {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : αβ) (h_mul : ∀ (a b : α), f (a * b) f a * f b) (s : Multiset α) (hs_nonempty : s ) :
theorem Multiset.sum_lt_sum {ι : Type u_1} {α : Type u_2} [OrderedCancelAddCommMonoid α] {s : Multiset ι} {f : ια} {g : ια} (hle : is, f i g i) (hlt : ∃ i ∈ s, f i < g i) :
theorem Multiset.prod_lt_prod' {ι : Type u_1} {α : Type u_2} [OrderedCancelCommMonoid α] {s : Multiset ι} {f : ια} {g : ια} (hle : is, f i g i) (hlt : ∃ i ∈ s, f i < g i) :
theorem Multiset.sum_lt_sum_of_nonempty {ι : Type u_1} {α : Type u_2} [OrderedCancelAddCommMonoid α] {s : Multiset ι} {f : ια} {g : ια} (hs : s ) (hfg : is, f i < g i) :
theorem Multiset.prod_lt_prod_of_nonempty' {ι : Type u_1} {α : Type u_2} [OrderedCancelCommMonoid α] {s : Multiset ι} {f : ια} {g : ια} (hs : s ) (hfg : is, f i < g i) :
theorem Multiset.sum_eq_zero_iff {α : Type u_2} [CanonicallyOrderedAddCommMonoid α] {m : Multiset α} :
Multiset.sum m = 0 xm, x = 0
theorem Multiset.prod_eq_one_iff {α : Type u_2} [CanonicallyOrderedCommMonoid α] {m : Multiset α} :
Multiset.prod m = 1 xm, x = 1
theorem Multiset.le_sum_of_mem {α : Type u_2} [CanonicallyOrderedAddCommMonoid α] {m : Multiset α} {a : α} (ha : a m) :
theorem Multiset.le_prod_of_mem {α : Type u_2} [CanonicallyOrderedCommMonoid α] {m : Multiset α} {a : α} (ha : a m) :
theorem Multiset.max_le_of_forall_le {α : Type u_4} [LinearOrder α] [OrderBot α] (l : Multiset α) (n : α) (h : xl, x n) :