Documentation

Monlib.Preq.Finset

finset #

In this file we provide some elementary results for summations

theorem Finset.sum_rotate {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ζ : Type u_4} [AddCommMonoid β] {s : Finset α} {t : Finset γ} {u : Finset ζ} {f : αγζβ} :
xs, yt, zu, f x y z = zu, xs, yt, f x y z
theorem Finset.sum_3_comm {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ζ : Type u_4} [AddCommMonoid β] {s : Finset α} {t : Finset γ} {u : Finset ζ} {f : αγζβ} :
xs, yt, zu, f x y z = zu, yt, xs, f x y z
theorem Finset.sum_4_rotate {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ζ : Type u_4} {ε : Type u_5} [AddCommMonoid β] {s : Finset α} {t : Finset γ} {u : Finset ζ} {v : Finset ε} {f : αγζεβ} :
xs, yt, zu, wv, f x y z w = wv, xs, yt, zu, f x y z w
theorem Finset.sum_sum_comm_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ζ : Type u_4} {ε : Type u_5} [AddCommMonoid β] {s : Finset α} {t : Finset γ} {u : Finset ζ} {v : Finset ε} {f : αγζεβ} :
xs, yt, zu, wv, f x y z w = xs, yt, wv, zu, f x y z w
theorem Finset.sum_sum_sum {β : Type u_1} {α : Type u_2} {γ : Type u_3} {ζ : Type u_4} [AddCommMonoid β] {s : Finset γ} {t : Finset α} {g : Finset ζ} {f : γαζβ} :
xs, yt, zg, f x y z = zg, xs, yt, f x y z
theorem Finset.sum_4_swap_2 {β : Type u_1} {α : Type u_2} {γ : Type u_3} {ζ : Type u_4} {ε : Type u_5} [AddCommMonoid β] {s : Finset γ} {t : Finset α} {u : Finset ζ} {v : Finset ε} {f : γαζεβ} :
xs, yt, zu, wv, f x y z w = zu, wv, xs, yt, f x y z w
theorem Finset.sum_5_rotate {α : Type u_1} {β : Type u_2} {γ : Type u_3} {ζ : Type u_4} {ε : Type u_5} {κ : Type u_6} [AddCommMonoid β] {s : Finset α} {t : Finset γ} {u : Finset ζ} {v : Finset ε} {k : Finset κ} {f : αγζεκβ} :
xs, yt, zu, wv, vzk, f x y z w vz = vzk, xs, yt, zu, wv, f x y z w vz
theorem Forall.rotate {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {p : αβγProp} :
(∀ (x : α) (y : β) (z : γ), p x y z) ∀ (z : γ) (x : α) (y : β), p x y z
theorem forall_forall_comm {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {ζ : Sort u_4} {p : αβγζProp} :
(∀ (x : α) (y : β) (z : γ) (w : ζ), p x y z w) ∀ (x : α) (z : γ) (y : β) (w : ζ), p x y z w
theorem Finset.sum_product_univ {β : Type u_1} {α : Type u_2} {γ : Type u_3} [AddCommMonoid β] [Fintype α] [Fintype γ] {f : γ × αβ} :
x : γ × α, f x = x : γ, y : α, f (x, y)