The fold operation for a commutative associative operation over a multiset. #
fold #
def Multiset.fold {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] :
α → Multiset α → α
fold op b s folds a commutative associative operation op over
the multiset s.
Equations
- Multiset.fold op = Multiset.foldr op
Instances For
theorem Multiset.fold_eq_foldr {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b : α) (s : Multiset α) :
@[simp]
theorem Multiset.coe_fold_r {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b : α) (l : List α) :
theorem Multiset.coe_fold_l {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b : α) (l : List α) :
theorem Multiset.fold_eq_foldl {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b : α) (s : Multiset α) :
@[simp]
theorem Multiset.fold_zero {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b : α) :
@[simp]
theorem Multiset.fold_cons_left {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b a : α) (s : Multiset α) :
theorem Multiset.fold_cons_right {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b a : α) (s : Multiset α) :
theorem Multiset.fold_cons'_right {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b a : α) (s : Multiset α) :
theorem Multiset.fold_cons'_left {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b a : α) (s : Multiset α) :
theorem Multiset.fold_add {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b₁ b₂ : α) (s₁ s₂ : Multiset α) :
theorem Multiset.fold_singleton {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] (b a : α) :
theorem Multiset.fold_distrib {α : Type u_1} {β : Type u_2} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] {f g : β → α} (u₁ u₂ : α) (s : Multiset β) :
theorem Multiset.fold_hom {α : Type u_1} {β : Type u_2} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] {op' : β → β → β} [Std.Commutative op'] [Std.Associative op'] {m : α → β} (hm : ∀ (x y : α), m (op x y) = op' (m x) (m y)) (b : α) (s : Multiset α) :
theorem Multiset.fold_union_inter {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] [DecidableEq α] (s₁ s₂ : Multiset α) (b₁ b₂ : α) :
@[simp]
theorem Multiset.fold_dedup_idem {α : Type u_1} (op : α → α → α) [hc : Std.Commutative op] [ha : Std.Associative op] [DecidableEq α] [hi : Std.IdempotentOp op] (s : Multiset α) (b : α) :