ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- tsum_congr
@[to_additive]
theorem tprod_congr {f g : β → α}
    (hfg : ∀ b, f b = g b) : ∏' b, f b = ∏' b, g b 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α} (hfg : ∀ (b : β), f b = g b)
Goal: ∑' (b : β), f b = ∑' (b : β), g b
-- tprod_congr
@[to_additive]
theorem tprod_congr {f g : β → α}
    (hfg : ∀ b, f b = g b) : ∏' b, f b = ∏' b, g b 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f g : β → α} (hfg : ∀ (b : β), f b = g b)
Goal: ∏' (b : β), f b = ∏' (b : β), g b
-- tsum_fintype
@[to_additive]
theorem tprod_fintype [Fintype β] (f : β → α) : ∏' b, f b = ∏ b, f b 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] [Fintype β] (f : β → α)
Goal: ∑' (b : β), f b = ∑ b : β, f b
-- tprod_fintype
@[to_additive]
theorem tprod_fintype [Fintype β] (f : β → α) : ∏' b, f b = ∏ b, f b 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] [Fintype β] (f : β → α)
Goal: ∏' (b : β), f b = ∏ b : β, f b
-- prod_eq_tprod_mulIndicator
@[to_additive]
theorem prod_eq_tprod_mulIndicator (f : β → α) (s : Finset β) :
    ∏ x ∈ s, f x = ∏' x, Set.mulIndicator (↑s) f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (f : β → α) (s : Finset β)
Goal: ∏ x ∈ s, f x = ∏' (x : β), (↑s).mulIndicator f x
-- sum_eq_tsum_indicator
@[to_additive]
theorem prod_eq_tprod_mulIndicator (f : β → α) (s : Finset β) :
    ∏ x ∈ s, f x = ∏' x, Set.mulIndicator (↑s) f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α) (s : Finset β)
Goal: ∑ x ∈ s, f x = ∑' (x : β), (↑s).indicator f x
-- tprod_bool
@[to_additive]
theorem tprod_bool (f : Bool → α) : ∏' i : Bool, f i = f false * f true 
Arguments: {α : Type u_1} [CommMonoid α] [TopologicalSpace α] (f : Bool → α)
Goal: ∏' (i : Bool), f i = f false * f true
-- tsum_bool
@[to_additive]
theorem tprod_bool (f : Bool → α) : ∏' i : Bool, f i = f false * f true 
Arguments: {α : Type u_1} [AddCommMonoid α] [TopologicalSpace α] (f : Bool → α)
Goal: ∑' (i : Bool), f i = f false + f true
-- tsum_eq_single
@[to_additive]
theorem tprod_eq_mulSingle {f : β → α} (b : β) (hf : ∀ b' ≠ b, f b' = 1) :
    ∏' b, f b = f b 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} (b : β) (hf : ∀ (b' : β), b' ≠ b → f b' = 0)
Goal: ∑' (b : β), f b = f b
-- tprod_eq_mulSingle
@[to_additive]
theorem tprod_eq_mulSingle {f : β → α} (b : β) (hf : ∀ b' ≠ b, f b' = 1) :
    ∏' b, f b = f b 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} (b : β) (hf : ∀ (b' : β), b' ≠ b → f b' = 1)
Goal: ∏' (b : β), f b = f b
-- tsum_tsum_eq_single
@[to_additive]
theorem tprod_tprod_eq_mulSingle (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ b' ≠ b, f b' c = 1)
    (hfc : ∀ b', ∀ c' ≠ c, f b' c' = 1) : ∏' (b') (c'), f b' c' = f b c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b' : β), b' ≠ b → f b' c = 0) (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0)
Goal: ∑' (b' : β) (c' : γ), f b' c' = f b c
-- tprod_tprod_eq_mulSingle
@[to_additive]
theorem tprod_tprod_eq_mulSingle (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ b' ≠ b, f b' c = 1)
    (hfc : ∀ b', ∀ c' ≠ c, f b' c' = 1) : ∏' (b') (c'), f b' c' = f b c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b' : β), b' ≠ b → f b' c = 1) (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 1)
Goal: ∏' (b' : β) (c' : γ), f b' c' = f b c
-- tsum_ite_eq
@[to_additive (attr := simp)]
theorem tprod_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
    ∏' b', (if b' = b then a else 1) = a 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (b : β) [DecidablePred fun x => x = b] (a : α)
Goal: (∑' (b' : β), if b' = b then a else 0) = a
-- tprod_ite_eq
@[to_additive (attr := simp)]
theorem tprod_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
    ∏' b', (if b' = b then a else 1) = a 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (b : β) [DecidablePred fun x => x = b] (a : α)
Goal: (∏' (b' : β), if b' = b then a else 1) = a
-- Finset.tsum_subtype
@[to_additive (attr := simp, nolint simpNF)]
theorem Finset.tprod_subtype (s : Finset β) (f : β → α) :
    ∏' x : { x // x ∈ s }, f x = ∏ x ∈ s, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (s : Finset β) (f : β → α)
Goal: ∑' (x : { x // x ∈ s }), f ↑x = ∑ x ∈ s, f x
-- Finset.tprod_subtype
@[to_additive (attr := simp, nolint simpNF)]
theorem Finset.tprod_subtype (s : Finset β) (f : β → α) :
    ∏' x : { x // x ∈ s }, f x = ∏ x ∈ s, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (s : Finset β) (f : β → α)
Goal: ∏' (x : { x // x ∈ s }), f ↑x = ∏ x ∈ s, f x
-- Finset.tsum_subtype'
@[to_additive]
theorem Finset.tprod_subtype' (s : Finset β) (f : β → α) :
    ∏' x : (s : Set β), f x = ∏ x ∈ s, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (s : Finset β) (f : β → α)
Goal: ∑' (x : ↑↑s), f ↑x = ∑ x ∈ s, f x
-- Finset.tprod_subtype'
@[to_additive]
theorem Finset.tprod_subtype' (s : Finset β) (f : β → α) :
    ∏' x : (s : Set β), f x = ∏ x ∈ s, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (s : Finset β) (f : β → α)
Goal: ∏' (x : ↑↑s), f ↑x = ∏ x ∈ s, f x
-- tsum_singleton
@[to_additive (attr := simp, nolint simpNF)]
theorem tprod_singleton (b : β) (f : β → α) : ∏' x : ({b} : Set β), f x = f b 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (b : β) (f : β → α)
Goal: ∑' (x : ↑{b}), f ↑x = f b
-- tprod_singleton
@[to_additive (attr := simp, nolint simpNF)]
theorem tprod_singleton (b : β) (f : β → α) : ∏' x : ({b} : Set β), f x = f b 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (b : β) (f : β → α)
Goal: ∏' (x : ↑{b}), f ↑x = f b
-- Function.Injective.tprod_eq
@[to_additive]
theorem Function.Injective.tprod_eq {g : γ → β} (hg : Injective g) {f : β → α}
    (hf : mulSupport f ⊆ Set.range g) : ∏' c, f (g c) = ∏' b, f b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] {g : γ → β} (hg : Function.Injective g) {f : β → α} (hf : Function.mulSupport f ⊆ Set.range g)
Goal: ∏' (c : γ), f (g c) = ∏' (b : β), f b
-- Function.Injective.tsum_eq
@[to_additive]
theorem Function.Injective.tprod_eq {g : γ → β} (hg : Injective g) {f : β → α}
    (hf : mulSupport f ⊆ Set.range g) : ∏' c, f (g c) = ∏' b, f b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] {g : γ → β} (hg : Function.Injective g) {f : β → α} (hf : Function.support f ⊆ Set.range g)
Goal: ∑' (c : γ), f (g c) = ∑' (b : β), f b
-- Equiv.tprod_eq
@[to_additive]
theorem Equiv.tprod_eq (e : γ ≃ β) (f : β → α) : ∏' c, f (e c) = ∏' b, f b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] (e : γ ≃ β) (f : β → α)
Goal: ∏' (c : γ), f (e c) = ∏' (b : β), f b
-- Equiv.tsum_eq
@[to_additive]
theorem Equiv.tprod_eq (e : γ ≃ β) (f : β → α) : ∏' c, f (e c) = ∏' b, f b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] (e : γ ≃ β) (f : β → α)
Goal: ∑' (c : γ), f (e c) = ∑' (b : β), f b
-- tprod_subtype_eq_of_mulSupport_subset
@[to_additive]
theorem tprod_subtype_eq_of_mulSupport_subset {f : β → α} {s : Set β} (hs : mulSupport f ⊆ s) :
    ∏' x : s, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} {s : Set β} (hs : Function.mulSupport f ⊆ s)
Goal: ∏' (x : ↑s), f ↑x = ∏' (x : β), f x
-- tsum_subtype_eq_of_support_subset
@[to_additive]
theorem tprod_subtype_eq_of_mulSupport_subset {f : β → α} {s : Set β} (hs : mulSupport f ⊆ s) :
    ∏' x : s, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {s : Set β} (hs : Function.support f ⊆ s)
Goal: ∑' (x : ↑s), f ↑x = ∑' (x : β), f x
-- tsum_subtype_support
@[to_additive]
theorem tprod_subtype_mulSupport (f : β → α) : ∏' x : mulSupport f, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α)
Goal: ∑' (x : ↑(Function.support f)), f ↑x = ∑' (x : β), f x
-- tprod_subtype_mulSupport
@[to_additive]
theorem tprod_subtype_mulSupport (f : β → α) : ∏' x : mulSupport f, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (f : β → α)
Goal: ∏' (x : ↑(Function.mulSupport f)), f ↑x = ∏' (x : β), f x
-- tsum_subtype
@[to_additive]
theorem tprod_subtype (s : Set β) (f : β → α) : ∏' x : s, f x = ∏' x, s.mulIndicator f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (s : Set β) (f : β → α)
Goal: ∑' (x : ↑s), f ↑x = ∑' (x : β), s.indicator f x
-- tprod_subtype
@[to_additive]
theorem tprod_subtype (s : Set β) (f : β → α) : ∏' x : s, f x = ∏' x, s.mulIndicator f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (s : Set β) (f : β → α)
Goal: ∏' (x : ↑s), f ↑x = ∏' (x : β), s.mulIndicator f x
-- tsum_univ
@[to_additive (attr := simp, nolint simpNF)]
theorem tprod_univ (f : β → α) : ∏' x : (Set.univ : Set β), f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α)
Goal: ∑' (x : ↑Set.univ), f ↑x = ∑' (x : β), f x
-- tprod_univ
@[to_additive (attr := simp, nolint simpNF)]
theorem tprod_univ (f : β → α) : ∏' x : (Set.univ : Set β), f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (f : β → α)
Goal: ∏' (x : ↑Set.univ), f ↑x = ∏' (x : β), f x
-- tsum_image
@[to_additive]
theorem tprod_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
    ∏' x : g '' s, f x = ∏' x : s, f (g x) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s)
Goal: ∑' (x : ↑(g '' s)), f ↑x = ∑' (x : ↑s), f (g ↑x)
-- tprod_image
@[to_additive]
theorem tprod_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
    ∏' x : g '' s, f x = ∏' x : s, f (g x) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s)
Goal: ∏' (x : ↑(g '' s)), f ↑x = ∏' (x : ↑s), f (g ↑x)
-- tsum_range
@[to_additive]
theorem tprod_range {g : γ → β} (f : β → α) (hg : Injective g) :
    ∏' x : Set.range g, f x = ∏' x, f (g x) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] {g : γ → β} (f : β → α) (hg : Function.Injective g)
Goal: ∑' (x : ↑(Set.range g)), f ↑x = ∑' (x : γ), f (g x)
-- tprod_range
@[to_additive]
theorem tprod_range {g : γ → β} (f : β → α) (hg : Injective g) :
    ∏' x : Set.range g, f x = ∏' x, f (g x) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] {g : γ → β} (f : β → α) (hg : Function.Injective g)
Goal: ∏' (x : ↑(Set.range g)), f ↑x = ∏' (x : γ), f (g x)
-- tprod_setElem_eq_tprod_setElem_diff
@[to_additive "If `f b = 0` for all `b ∈ t`, then the sum of `f a` with `a ∈ s` is the same as the
sum of `f a` with `a ∈ s ∖ t`."]
lemma tprod_setElem_eq_tprod_setElem_diff {f : β → α} (s t : Set β)
    (hf₀ : ∀ b ∈ t, f b = 1) :
    ∏' a : s, f a = ∏' a : (s \ t : Set β), f a 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} (s t : Set β) (hf₀ : ∀ b ∈ t, f b = 1)
Goal: ∏' (a : ↑s), f ↑a = ∏' (a : ↑(s \ t)), f ↑a
-- tsum_setElem_eq_tsum_setElem_diff
@[to_additive "If `f b = 0` for all `b ∈ t`, then the sum of `f a` with `a ∈ s` is the same as the
sum of `f a` with `a ∈ s ∖ t`."]
lemma tprod_setElem_eq_tprod_setElem_diff {f : β → α} (s t : Set β)
    (hf₀ : ∀ b ∈ t, f b = 1) :
    ∏' a : s, f a = ∏' a : (s \ t : Set β), f a 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} (s t : Set β) (hf₀ : ∀ b ∈ t, f b = 0)
Goal: ∑' (a : ↑s), f ↑a = ∑' (a : ↑(s \ t)), f ↑a
-- tsum_eq_tsum_diff_singleton
@[to_additive "If `f b = 0`, then the sum of `f a` with `a ∈ s` is the same as the sum of `f a`
for `a ∈ s ∖ {b}`."]
lemma tprod_eq_tprod_diff_singleton {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 1) :
    ∏' a : s, f a = ∏' a : (s \ {b} : Set β), f a 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 0)
Goal: ∑' (a : ↑s), f ↑a = ∑' (a : ↑(s \ {b})), f ↑a
-- tprod_eq_tprod_diff_singleton
@[to_additive "If `f b = 0`, then the sum of `f a` with `a ∈ s` is the same as the sum of `f a`
for `a ∈ s ∖ {b}`."]
lemma tprod_eq_tprod_diff_singleton {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 1) :
    ∏' a : s, f a = ∏' a : (s \ {b} : Set β), f a 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 1)
Goal: ∏' (a : ↑s), f ↑a = ∏' (a : ↑(s \ {b})), f ↑a
-- tsum_eq_tsum_of_ne_zero_bij
@[to_additive]
theorem tprod_eq_tprod_of_ne_one_bij {g : γ → α} (i : mulSupport g → β) (hi : Injective i)
    (hf : mulSupport f ⊆ Set.range i) (hfg : ∀ x, f (i x) = g x) : ∏' x, f x = ∏' y, g y 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {g : γ → α} (i : ↑(Function.support g) → β) (hi : Function.Injective i) (hf : Function.support f ⊆ Set.range i) (hfg : ∀ (x : ↑(Function.support g)), f (i x) = g ↑x)
Goal: ∑' (x : β), f x = ∑' (y : γ), g y
-- tprod_eq_tprod_of_ne_one_bij
@[to_additive]
theorem tprod_eq_tprod_of_ne_one_bij {g : γ → α} (i : mulSupport g → β) (hi : Injective i)
    (hf : mulSupport f ⊆ Set.range i) (hfg : ∀ x, f (i x) = g x) : ∏' x, f x = ∏' y, g y 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] {f : β → α} {g : γ → α} (i : ↑(Function.mulSupport g) → β) (hi : Function.Injective i) (hf : Function.mulSupport f ⊆ Set.range i) (hfg : ∀ (x : ↑(Function.mulSupport g)), f (i x) = g ↑x)
Goal: ∏' (x : β), f x = ∏' (y : γ), g y
-- Equiv.tprod_eq_tprod_of_mulSupport
@[to_additive]
theorem Equiv.tprod_eq_tprod_of_mulSupport {f : β → α} {g : γ → α}
    (e : mulSupport f ≃ mulSupport g) (he : ∀ x, g (e x) = f x) :
    ∏' x, f x = ∏' y, g y 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] {f : β → α} {g : γ → α} (e : ↑(Function.mulSupport f) ≃ ↑(Function.mulSupport g)) (he : ∀ (x : ↑(Function.mulSupport f)), g ↑(e x) = f ↑x)
Goal: ∏' (x : β), f x = ∏' (y : γ), g y
-- Equiv.tsum_eq_tsum_of_support
@[to_additive]
theorem Equiv.tprod_eq_tprod_of_mulSupport {f : β → α} {g : γ → α}
    (e : mulSupport f ≃ mulSupport g) (he : ∀ x, g (e x) = f x) :
    ∏' x, f x = ∏' y, g y 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {g : γ → α} (e : ↑(Function.support f) ≃ ↑(Function.support g)) (he : ∀ (x : ↑(Function.support f)), g ↑(e x) = f ↑x)
Goal: ∑' (x : β), f x = ∑' (y : γ), g y
-- tprod_dite_right
@[to_additive]
theorem tprod_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
    ∏' b : β, (if h : P then (1 : α) else x b h) = if h : P then (1 : α) else ∏' b : β, x b h 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (P : Prop) [Decidable P] (x : β → ¬P → α)
Goal: (∏' (b : β), if h : P then 1 else x b h) = if h : P then 1 else ∏' (b : β), x b h
-- tsum_dite_right
@[to_additive]
theorem tprod_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
    ∏' b : β, (if h : P then (1 : α) else x b h) = if h : P then (1 : α) else ∏' b : β, x b h 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (P : Prop) [Decidable P] (x : β → ¬P → α)
Goal: (∑' (b : β), if h : P then 0 else x b h) = if h : P then 0 else ∑' (b : β), x b h
-- tsum_dite_left
@[to_additive]
theorem tprod_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
    ∏' b : β, (if h : P then x b h else 1) = if h : P then ∏' b : β, x b h else 1 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (P : Prop) [Decidable P] (x : β → P → α)
Goal: (∑' (b : β), if h : P then x b h else 0) = if h : P then ∑' (b : β), x b h else 0
-- tprod_dite_left
@[to_additive]
theorem tprod_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
    ∏' b : β, (if h : P then x b h else 1) = if h : P then ∏' b : β, x b h else 1 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] (P : Prop) [Decidable P] (x : β → P → α)
Goal: (∏' (b : β), if h : P then x b h else 1) = if h : P then ∏' (b : β), x b h else 1
-- tsum_extend_zero
@[to_additive (attr := simp)]
lemma tprod_extend_one {γ : Type*} {g : γ → β} (hg : Injective g) (f : γ → α) :
    ∏' y, extend g f 1 y = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {γ : Type u_5} {g : γ → β} (hg : Function.Injective g) (f : γ → α)
Goal: ∑' (y : β), Function.extend g f 0 y = ∑' (x : γ), f x
-- tprod_extend_one
@[to_additive (attr := simp)]
lemma tprod_extend_one {γ : Type*} {g : γ → β} (hg : Injective g) (f : γ → α) :
    ∏' y, extend g f 1 y = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {γ : Type u_5} {g : γ → β} (hg : Function.Injective g) (f : γ → α)
Goal: ∏' (y : β), Function.extend g f 1 y = ∏' (x : γ), f x
-- Function.Surjective.tprod_eq_tprod_of_hasProd_iff_hasProd
@[to_additive]
theorem Function.Surjective.tprod_eq_tprod_of_hasProd_iff_hasProd {α' : Type*} [CommMonoid α']
    [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h1 : e 1 = 1) {f : β → α}
    {g : γ → α'} (h : ∀ {a}, HasProd f (e a) ↔ HasProd g a) : ∏' b, f b = e (∏' c, g c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] [T2Space α] {α' : Type u_5} [CommMonoid α'] [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h1 : e 1 = 1) {f : β → α} {g : γ → α'} (h : ∀ {a : α'}, HasProd f (e a) ↔ HasProd g a)
Goal: ∏' (b : β), f b = e (∏' (c : γ), g c)
-- Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
@[to_additive]
theorem Function.Surjective.tprod_eq_tprod_of_hasProd_iff_hasProd {α' : Type*} [CommMonoid α']
    [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h1 : e 1 = 1) {f : β → α}
    {g : γ → α'} (h : ∀ {a}, HasProd f (e a) ↔ HasProd g a) : ∏' b, f b = e (∏' c, g c) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] [T2Space α] {α' : Type u_5} [AddCommMonoid α'] [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h1 : e 0 = 0) {f : β → α} {g : γ → α'} (h : ∀ {a : α'}, HasSum f (e a) ↔ HasSum g a)
Goal: ∑' (b : β), f b = e (∑' (c : γ), g c)
-- tprod_eq_tprod_of_hasProd_iff_hasProd
@[to_additive]
theorem tprod_eq_tprod_of_hasProd_iff_hasProd {f : β → α} {g : γ → α}
    (h : ∀ {a}, HasProd f a ↔ HasProd g a) : ∏' b, f b = ∏' c, g c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] [T2Space α] {f : β → α} {g : γ → α} (h : ∀ {a : α}, HasProd f a ↔ HasProd g a)
Goal: ∏' (b : β), f b = ∏' (c : γ), g c
-- tsum_eq_tsum_of_hasSum_iff_hasSum
@[to_additive]
theorem tprod_eq_tprod_of_hasProd_iff_hasProd {f : β → α} {g : γ → α}
    (h : ∀ {a}, HasProd f a ↔ HasProd g a) : ∏' b, f b = ∏' c, g c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] [T2Space α] {f : β → α} {g : γ → α} (h : ∀ {a : α}, HasSum f a ↔ HasSum g a)
Goal: ∑' (b : β), f b = ∑' (c : γ), g c
-- tprod_mul
@[to_additive]
theorem tprod_mul (hf : Multipliable f) (hg : Multipliable g) :
    ∏' b, (f b * g b) = (∏' b, f b) * ∏' b, g b 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f g : β → α} [T2Space α] [ContinuousMul α] (hf : Multipliable f) (hg : Multipliable g)
Goal: ∏' (b : β), f b * g b = (∏' (b : β), f b) * ∏' (b : β), g b
-- tsum_add
@[to_additive]
theorem tprod_mul (hf : Multipliable f) (hg : Multipliable g) :
    ∏' b, (f b * g b) = (∏' b, f b) * ∏' b, g b 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α} [T2Space α] [ContinuousAdd α] (hf : Summable f) (hg : Summable g)
Goal: ∑' (b : β), (f b + g b) = ∑' (b : β), f b + ∑' (b : β), g b
-- tprod_of_prod
@[to_additive tsum_sum]
theorem tprod_of_prod {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Multipliable (f i)) :
    ∏' b, ∏ i ∈ s, f i b = ∏ i ∈ s, ∏' b, f i b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [CommMonoid α] [TopologicalSpace α] [T2Space α] [ContinuousMul α] {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Multipliable (f i))
Goal: ∏' (b : β), ∏ i ∈ s, f i b = ∏ i ∈ s, ∏' (b : β), f i b
-- tsum_sum
@[to_additive tsum_sum]
theorem tprod_of_prod {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Multipliable (f i)) :
    ∏' b, ∏ i ∈ s, f i b = ∏ i ∈ s, ∏' b, f i b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [AddCommMonoid α] [TopologicalSpace α] [T2Space α] [ContinuousAdd α] {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i))
Goal: ∑' (b : β), ∑ i ∈ s, f i b = ∑ i ∈ s, ∑' (b : β), f i b
-- tprod_eq_mul_tprod_ite'
@[to_additive "Version of `tsum_eq_add_tsum_ite` for `AddCommMonoid` rather than `AddCommGroup`.
Requires a different convergence assumption involving `Function.update`."]
theorem tprod_eq_mul_tprod_ite' [DecidableEq β] {f : β → α} (b : β)
    (hf : Multipliable (update f b 1)) :
    ∏' x, f x = f b * ∏' x, ite (x = b) 1 (f x) 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] [T2Space α] [ContinuousMul α] [DecidableEq β] {f : β → α} (b : β) (hf : Multipliable (Function.update f b 1))
Goal: ∏' (x : β), f x = f b * ∏' (x : β), if x = b then 1 else f x
-- tsum_eq_add_tsum_ite'
@[to_additive "Version of `tsum_eq_add_tsum_ite` for `AddCommMonoid` rather than `AddCommGroup`.
Requires a different convergence assumption involving `Function.update`."]
theorem tprod_eq_mul_tprod_ite' [DecidableEq β] {f : β → α} (b : β)
    (hf : Multipliable (update f b 1)) :
    ∏' x, f x = f b * ∏' x, ite (x = b) 1 (f x) 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] [T2Space α] [ContinuousAdd α] [DecidableEq β] {f : β → α} (b : β) (hf : Summable (Function.update f b 0))
Goal: ∑' (x : β), f x = f b + ∑' (x : β), if x = b then 0 else f x
-- tprod_mul_tprod_compl
@[to_additive]
theorem tprod_mul_tprod_compl {s : Set β} (hs : Multipliable (f ∘ (↑) : s → α))
    (hsc : Multipliable (f ∘ (↑) : ↑sᶜ → α)) : (∏' x : s, f x) * ∏' x : ↑sᶜ, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} [T2Space α] [ContinuousMul α] {s : Set β} (hs : Multipliable (f ∘ Subtype.val)) (hsc : Multipliable (f ∘ Subtype.val))
Goal: (∏' (x : ↑s), f ↑x) * ∏' (x : ↑sᶜ), f ↑x = ∏' (x : β), f x
-- tsum_add_tsum_compl
@[to_additive]
theorem tprod_mul_tprod_compl {s : Set β} (hs : Multipliable (f ∘ (↑) : s → α))
    (hsc : Multipliable (f ∘ (↑) : ↑sᶜ → α)) : (∏' x : s, f x) * ∏' x : ↑sᶜ, f x = ∏' x, f x 
Arguments: {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] {f : β → α} [T2Space α] [ContinuousAdd α] {s : Set β} (hs : Summable (f ∘ Subtype.val)) (hsc : Summable (f ∘ Subtype.val))
Goal: ∑' (x : ↑s), f ↑x + ∑' (x : ↑sᶜ), f ↑x = ∑' (x : β), f x
-- tprod_union_disjoint
@[to_additive]
theorem tprod_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Multipliable (f ∘ (↑) : s → α))
    (ht : Multipliable (f ∘ (↑) : t → α)) :
    ∏' x : ↑(s ∪ t), f x = (∏' x : s, f x) * ∏' x : t, f x 
Arguments: {α : Type u_1} {β : Type u_2} [CommMonoid α] [TopologicalSpace α] {f : β → α} [T2Space α] [ContinuousMul α] {s t : Set β} (hd : Disjoint s t) (hs : Multipliable (f ∘ Subtype.val)) (ht : Multipliable (f ∘ Subtype.val))
Goal: ∏' (x : ↑(s ∪ t)), f ↑x = (∏' (x : ↑s), f ↑x) * ∏' (x : ↑t), f ↑x