ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- finsum_congr_Prop
@[to_additive (attr := congr)]
theorem finprod_congr_Prop {p q : Prop} {f : p → M} {g : q → M} (hpq : p = q)
    (hfg : ∀ h : q, f (hpq.mpr h) = g h) : finprod f = finprod g 
Arguments: {M : Type u_2} [AddCommMonoid M] {p q : Prop} {f : p → M} {g : q → M} (hpq : p = q) (hfg : ∀ (h : q), f ⋯ = g h)
Goal: finsum f = finsum g
-- finsum_induction
@[to_additive
      "To prove a property of a finite sum, it suffices to prove that the property is
      additive and holds on the summands."]
theorem finprod_induction {f : α → M} (p : M → Prop) (hp₀ : p 1)
    (hp₁ : ∀ x y, p x → p y → p (x * y)) (hp₂ : ∀ i, p (f i)) : p (∏ᶠ i, f i) 
Arguments: {M : Type u_2} {α : Sort u_4} [AddCommMonoid M] {f : α → M} (p : M → Prop) (hp₀ : p 0) (hp₁ : ∀ (x y : M), p x → p y → p (x + y)) (hp₂ : ∀ (i : α), p (f i))
Goal: p (∑ᶠ (i : α), f i)
-- finprod_induction
@[to_additive
      "To prove a property of a finite sum, it suffices to prove that the property is
      additive and holds on the summands."]
theorem finprod_induction {f : α → M} (p : M → Prop) (hp₀ : p 1)
    (hp₁ : ∀ x y, p x → p y → p (x * y)) (hp₂ : ∀ i, p (f i)) : p (∏ᶠ i, f i) 
Arguments: {M : Type u_2} {α : Sort u_4} [CommMonoid M] {f : α → M} (p : M → Prop) (hp₀ : p 1) (hp₁ : ∀ (x y : M), p x → p y → p (x * y)) (hp₂ : ∀ (i : α), p (f i))
Goal: p (∏ᶠ (i : α), f i)
-- finprod_nonneg
theorem finprod_nonneg {R : Type*} [OrderedCommSemiring R] {f : α → R} (hf : ∀ x, 0 ≤ f x) :
    0 ≤ ∏ᶠ x, f x 
Arguments: {α : Sort u_4} {R : Type u_7} [OrderedCommSemiring R] {f : α → R} (hf : ∀ (x : α), 0 ≤ f x)
Goal: 0 ≤ ∏ᶠ (x : α), f x
-- one_le_finprod'
@[to_additive finsum_nonneg]
theorem one_le_finprod' {M : Type*} [OrderedCommMonoid M] {f : α → M} (hf : ∀ i, 1 ≤ f i) :
    1 ≤ ∏ᶠ i, f i 
Arguments: {α : Sort u_4} {M : Type u_7} [OrderedCommMonoid M] {f : α → M} (hf : ∀ (i : α), 1 ≤ f i)
Goal: 1 ≤ ∏ᶠ (i : α), f i
-- finsum_nonneg
@[to_additive finsum_nonneg]
theorem one_le_finprod' {M : Type*} [OrderedCommMonoid M] {f : α → M} (hf : ∀ i, 1 ≤ f i) :
    1 ≤ ∏ᶠ i, f i 
Arguments: {α : Sort u_4} {M : Type u_7} [OrderedAddCommMonoid M] {f : α → M} (hf : ∀ (i : α), 0 ≤ f i)
Goal: 0 ≤ ∑ᶠ (i : α), f i
-- AddMonoidHom.map_finsum_plift
@[to_additive]
theorem MonoidHom.map_finprod_plift (f : M →* N) (g : α → M)
    (h : (mulSupport <| g ∘ PLift.down).Finite) : f (∏ᶠ x, g x) = ∏ᶠ x, f (g x) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [AddCommMonoid M] [AddCommMonoid N] (f : M →+ N) (g : α → M) (h : (Function.support (g ∘ PLift.down)).Finite)
Goal: f (∑ᶠ (x : α), g x) = ∑ᶠ (x : α), f (g x)
-- MonoidHom.map_finprod_plift
@[to_additive]
theorem MonoidHom.map_finprod_plift (f : M →* N) (g : α → M)
    (h : (mulSupport <| g ∘ PLift.down).Finite) : f (∏ᶠ x, g x) = ∏ᶠ x, f (g x) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [CommMonoid M] [CommMonoid N] (f : M →* N) (g : α → M) (h : (Function.mulSupport (g ∘ PLift.down)).Finite)
Goal: f (∏ᶠ (x : α), g x) = ∏ᶠ (x : α), f (g x)
-- AddMonoidHom.map_finsum_Prop
@[to_additive]
theorem MonoidHom.map_finprod_Prop {p : Prop} (f : M →* N) (g : p → M) :
    f (∏ᶠ x, g x) = ∏ᶠ x, f (g x) 
Arguments: {M : Type u_2} {N : Type u_3} [AddCommMonoid M] [AddCommMonoid N] {p : Prop} (f : M →+ N) (g : p → M)
Goal: f (∑ᶠ (x : p), g x) = ∑ᶠ (x : p), f (g x)
-- MonoidHom.map_finprod_Prop
@[to_additive]
theorem MonoidHom.map_finprod_Prop {p : Prop} (f : M →* N) (g : p → M) :
    f (∏ᶠ x, g x) = ∏ᶠ x, f (g x) 
Arguments: {M : Type u_2} {N : Type u_3} [CommMonoid M] [CommMonoid N] {p : Prop} (f : M →* N) (g : p → M)
Goal: f (∏ᶠ (x : p), g x) = ∏ᶠ (x : p), f (g x)
-- AddMonoidHom.map_finsum_of_preimage_zero
@[to_additive]
theorem MonoidHom.map_finprod_of_preimage_one (f : M →* N) (hf : ∀ x, f x = 1 → x = 1) (g : α → M) :
    f (∏ᶠ i, g i) = ∏ᶠ i, f (g i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [AddCommMonoid M] [AddCommMonoid N] (f : M →+ N) (hf : ∀ (x : M), f x = 0 → x = 0) (g : α → M)
Goal: f (∑ᶠ (i : α), g i) = ∑ᶠ (i : α), f (g i)
-- MonoidHom.map_finprod_of_preimage_one
@[to_additive]
theorem MonoidHom.map_finprod_of_preimage_one (f : M →* N) (hf : ∀ x, f x = 1 → x = 1) (g : α → M) :
    f (∏ᶠ i, g i) = ∏ᶠ i, f (g i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [CommMonoid M] [CommMonoid N] (f : M →* N) (hf : ∀ (x : M), f x = 1 → x = 1) (g : α → M)
Goal: f (∏ᶠ (i : α), g i) = ∏ᶠ (i : α), f (g i)
-- AddMonoidHom.map_finsum_of_injective
@[to_additive]
theorem MonoidHom.map_finprod_of_injective (g : M →* N) (hg : Injective g) (f : α → M) :
    g (∏ᶠ i, f i) = ∏ᶠ i, g (f i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [AddCommMonoid M] [AddCommMonoid N] (g : M →+ N) (hg : Function.Injective ⇑g) (f : α → M)
Goal: g (∑ᶠ (i : α), f i) = ∑ᶠ (i : α), g (f i)
-- MonoidHom.map_finprod_of_injective
@[to_additive]
theorem MonoidHom.map_finprod_of_injective (g : M →* N) (hg : Injective g) (f : α → M) :
    g (∏ᶠ i, f i) = ∏ᶠ i, g (f i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [CommMonoid M] [CommMonoid N] (g : M →* N) (hg : Function.Injective ⇑g) (f : α → M)
Goal: g (∏ᶠ (i : α), f i) = ∏ᶠ (i : α), g (f i)
-- MulEquiv.map_finprod
@[to_additive]
theorem MulEquiv.map_finprod (g : M ≃* N) (f : α → M) : g (∏ᶠ i, f i) = ∏ᶠ i, g (f i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [CommMonoid M] [CommMonoid N] (g : M ≃* N) (f : α → M)
Goal: g (∏ᶠ (i : α), f i) = ∏ᶠ (i : α), g (f i)
-- AddEquiv.map_finsum
@[to_additive]
theorem MulEquiv.map_finprod (g : M ≃* N) (f : α → M) : g (∏ᶠ i, f i) = ∏ᶠ i, g (f i) 
Arguments: {M : Type u_2} {N : Type u_3} {α : Sort u_4} [AddCommMonoid M] [AddCommMonoid N] (g : M ≃+ N) (f : α → M)
Goal: g (∑ᶠ (i : α), f i) = ∑ᶠ (i : α), g (f i)
-- finsum_smul
theorem finsum_smul {R M : Type*} [Ring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M]
    (f : ι → R) (x : M) : (∑ᶠ i, f i) • x = ∑ᶠ i, f i • x 
Arguments: {ι : Sort u_6} {R : Type u_7} {M : Type u_8} [Ring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M] (f : ι → R) (x : M)
Goal: (∑ᶠ (i : ι), f i) • x = ∑ᶠ (i : ι), f i • x
-- smul_finsum
theorem smul_finsum {R M : Type*} [Ring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M]
    (c : R) (f : ι → M) : (c • ∑ᶠ i, f i) = ∑ᶠ i, c • f i 
Arguments: {ι : Sort u_6} {R : Type u_7} {M : Type u_8} [Ring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M] (c : R) (f : ι → M)
Goal: c • ∑ᶠ (i : ι), f i = ∑ᶠ (i : ι), c • f i
-- finprod_inv_distrib
@[to_additive]
theorem finprod_inv_distrib [DivisionCommMonoid G] (f : α → G) : (∏ᶠ x, (f x)⁻¹) = (∏ᶠ x, f x)⁻¹ 
Arguments: {G : Type u_1} {α : Sort u_4} [DivisionCommMonoid G] (f : α → G)
Goal: ∏ᶠ (x : α), (f x)⁻¹ = (∏ᶠ (x : α), f x)⁻¹
-- finsum_neg_distrib
@[to_additive]
theorem finprod_inv_distrib [DivisionCommMonoid G] (f : α → G) : (∏ᶠ x, (f x)⁻¹) = (∏ᶠ x, f x)⁻¹ 
Arguments: {G : Type u_1} {α : Sort u_4} [SubtractionCommMonoid G] (f : α → G)
Goal: ∑ᶠ (x : α), -f x = -∑ᶠ (x : α), f x
-- finsum_eq_indicator_apply
@[to_additive]
theorem finprod_eq_mulIndicator_apply (s : Set α) (f : α → M) (a : α) :
    ∏ᶠ _ : a ∈ s, f a = mulIndicator s f a 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (s : Set α) (f : α → M) (a : α)
Goal: ∑ᶠ (_ : a ∈ s), f a = s.indicator f a
-- finprod_eq_mulIndicator_apply
@[to_additive]
theorem finprod_eq_mulIndicator_apply (s : Set α) (f : α → M) (a : α) :
    ∏ᶠ _ : a ∈ s, f a = mulIndicator s f a 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (s : Set α) (f : α → M) (a : α)
Goal: ∏ᶠ (_ : a ∈ s), f a = s.mulIndicator f a
-- finprod_mem_mulSupport
@[to_additive (attr := simp)]
theorem finprod_mem_mulSupport (f : α → M) (a : α) : ∏ᶠ _ : f a ≠ 1, f a = f a 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (a : α)
Goal: ∏ᶠ (_ : f a ≠ 1), f a = f a
-- finsum_mem_support
@[to_additive (attr := simp)]
theorem finprod_mem_mulSupport (f : α → M) (a : α) : ∏ᶠ _ : f a ≠ 1, f a = f a 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (a : α)
Goal: ∑ᶠ (_ : f a ≠ 0), f a = f a
-- finsum_mem_def
@[to_additive]
theorem finprod_mem_def (s : Set α) (f : α → M) : ∏ᶠ a ∈ s, f a = ∏ᶠ a, mulIndicator s f a 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (s : Set α) (f : α → M)
Goal: ∑ᶠ (a : α) (_ : a ∈ s), f a = ∑ᶠ (a : α), s.indicator f a
-- finprod_mem_def
@[to_additive]
theorem finprod_mem_def (s : Set α) (f : α → M) : ∏ᶠ a ∈ s, f a = ∏ᶠ a, mulIndicator s f a 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (s : Set α) (f : α → M)
Goal: ∏ᶠ (a : α) (_ : a ∈ s), f a = ∏ᶠ (a : α), s.mulIndicator f a
-- finprod_eq_prod_of_mulSupport_subset
@[to_additive]
theorem finprod_eq_prod_of_mulSupport_subset (f : α → M) {s : Finset α} (h : mulSupport f ⊆ s) :
    ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Finset α} (h : Function.mulSupport f ⊆ ↑s)
Goal: ∏ᶠ (i : α), f i = ∏ i ∈ s, f i
-- finsum_eq_sum_of_support_subset
@[to_additive]
theorem finprod_eq_prod_of_mulSupport_subset (f : α → M) {s : Finset α} (h : mulSupport f ⊆ s) :
    ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Finset α} (h : Function.support f ⊆ ↑s)
Goal: ∑ᶠ (i : α), f i = ∑ i ∈ s, f i
-- finsum_eq_sum_of_support_toFinset_subset
@[to_additive]
theorem finprod_eq_prod_of_mulSupport_toFinset_subset (f : α → M) (hf : (mulSupport f).Finite)
    {s : Finset α} (h : hf.toFinset ⊆ s) : ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (hf : (Function.support f).Finite) {s : Finset α} (h : hf.toFinset ⊆ s)
Goal: ∑ᶠ (i : α), f i = ∑ i ∈ s, f i
-- finprod_eq_prod_of_mulSupport_toFinset_subset
@[to_additive]
theorem finprod_eq_prod_of_mulSupport_toFinset_subset (f : α → M) (hf : (mulSupport f).Finite)
    {s : Finset α} (h : hf.toFinset ⊆ s) : ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (hf : (Function.mulSupport f).Finite) {s : Finset α} (h : hf.toFinset ⊆ s)
Goal: ∏ᶠ (i : α), f i = ∏ i ∈ s, f i
-- finsum_eq_finset_sum_of_support_subset
@[to_additive]
theorem finprod_eq_finset_prod_of_mulSupport_subset (f : α → M) {s : Finset α}
    (h : mulSupport f ⊆ (s : Set α)) : ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Finset α} (h : Function.support f ⊆ ↑s)
Goal: ∑ᶠ (i : α), f i = ∑ i ∈ s, f i
-- finprod_eq_finset_prod_of_mulSupport_subset
@[to_additive]
theorem finprod_eq_finset_prod_of_mulSupport_subset (f : α → M) {s : Finset α}
    (h : mulSupport f ⊆ (s : Set α)) : ∏ᶠ i, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Finset α} (h : Function.mulSupport f ⊆ ↑s)
Goal: ∏ᶠ (i : α), f i = ∏ i ∈ s, f i
-- finprod_def
@[to_additive]
theorem finprod_def (f : α → M) [Decidable (mulSupport f).Finite] :
    ∏ᶠ i : α, f i = if h : (mulSupport f).Finite then ∏ i ∈ h.toFinset, f i else 1 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) [Decidable (Function.mulSupport f).Finite]
Goal: ∏ᶠ (i : α), f i = if h : (Function.mulSupport f).Finite then ∏ i ∈ h.toFinset, f i else 1
-- finsum_def
@[to_additive]
theorem finprod_def (f : α → M) [Decidable (mulSupport f).Finite] :
    ∏ᶠ i : α, f i = if h : (mulSupport f).Finite then ∏ i ∈ h.toFinset, f i else 1 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) [Decidable (Function.support f).Finite]
Goal: ∑ᶠ (i : α), f i = if h : (Function.support f).Finite then ∑ i ∈ h.toFinset, f i else 0
-- finprod_of_infinite_mulSupport
@[to_additive]
theorem finprod_of_infinite_mulSupport {f : α → M} (hf : (mulSupport f).Infinite) :
    ∏ᶠ i, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] {f : α → M} (hf : (Function.mulSupport f).Infinite)
Goal: ∏ᶠ (i : α), f i = 1
-- finsum_of_infinite_support
@[to_additive]
theorem finprod_of_infinite_mulSupport {f : α → M} (hf : (mulSupport f).Infinite) :
    ∏ᶠ i, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] {f : α → M} (hf : (Function.support f).Infinite)
Goal: ∑ᶠ (i : α), f i = 0
-- finprod_eq_prod
@[to_additive]
theorem finprod_eq_prod (f : α → M) (hf : (mulSupport f).Finite) :
    ∏ᶠ i : α, f i = ∏ i ∈ hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (hf : (Function.mulSupport f).Finite)
Goal: ∏ᶠ (i : α), f i = ∏ i ∈ hf.toFinset, f i
-- finsum_eq_sum
@[to_additive]
theorem finprod_eq_prod (f : α → M) (hf : (mulSupport f).Finite) :
    ∏ᶠ i : α, f i = ∏ i ∈ hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (hf : (Function.support f).Finite)
Goal: ∑ᶠ (i : α), f i = ∑ i ∈ hf.toFinset, f i
-- finsum_eq_sum_of_fintype
@[to_additive]
theorem finprod_eq_prod_of_fintype [Fintype α] (f : α → M) : ∏ᶠ i : α, f i = ∏ i, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] [Fintype α] (f : α → M)
Goal: ∑ᶠ (i : α), f i = ∑ i : α, f i
-- finprod_eq_prod_of_fintype
@[to_additive]
theorem finprod_eq_prod_of_fintype [Fintype α] (f : α → M) : ∏ᶠ i : α, f i = ∏ i, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] [Fintype α] (f : α → M)
Goal: ∏ᶠ (i : α), f i = ∏ i : α, f i
-- finprod_cond_eq_prod_of_cond_iff
@[to_additive]
theorem finprod_cond_eq_prod_of_cond_iff (f : α → M) {p : α → Prop} {t : Finset α}
    (h : ∀ {x}, f x ≠ 1 → (p x ↔ x ∈ t)) : (∏ᶠ (i) (_ : p i), f i) = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {p : α → Prop} {t : Finset α} (h : ∀ {x : α}, f x ≠ 1 → (p x ↔ x ∈ t))
Goal: ∏ᶠ (i : α) (_ : p i), f i = ∏ i ∈ t, f i
-- finsum_cond_eq_sum_of_cond_iff
@[to_additive]
theorem finprod_cond_eq_prod_of_cond_iff (f : α → M) {p : α → Prop} {t : Finset α}
    (h : ∀ {x}, f x ≠ 1 → (p x ↔ x ∈ t)) : (∏ᶠ (i) (_ : p i), f i) = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {p : α → Prop} {t : Finset α} (h : ∀ {x : α}, f x ≠ 0 → (p x ↔ x ∈ t))
Goal: ∑ᶠ (i : α) (_ : p i), f i = ∑ i ∈ t, f i
-- finprod_cond_ne
@[to_additive]
theorem finprod_cond_ne (f : α → M) (a : α) [DecidableEq α] (hf : (mulSupport f).Finite) :
    (∏ᶠ (i) (_ : i ≠ a), f i) = ∏ i ∈ hf.toFinset.erase a, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (a : α) [DecidableEq α] (hf : (Function.mulSupport f).Finite)
Goal: ∏ᶠ (i : α) (_ : i ≠ a), f i = ∏ i ∈ hf.toFinset.erase a, f i
-- finsum_cond_ne
@[to_additive]
theorem finprod_cond_ne (f : α → M) (a : α) [DecidableEq α] (hf : (mulSupport f).Finite) :
    (∏ᶠ (i) (_ : i ≠ a), f i) = ∏ i ∈ hf.toFinset.erase a, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (a : α) [DecidableEq α] (hf : (Function.support f).Finite)
Goal: ∑ᶠ (i : α) (_ : i ≠ a), f i = ∑ i ∈ hf.toFinset.erase a, f i
-- finsum_mem_eq_sum_of_inter_support_eq
@[to_additive]
theorem finprod_mem_eq_prod_of_inter_mulSupport_eq (f : α → M) {s : Set α} {t : Finset α}
    (h : s ∩ mulSupport f = t.toSet ∩ mulSupport f) : ∏ᶠ i ∈ s, f i = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Set α} {t : Finset α} (h : s ∩ Function.support f = ↑t ∩ Function.support f)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ t, f i
-- finprod_mem_eq_prod_of_inter_mulSupport_eq
@[to_additive]
theorem finprod_mem_eq_prod_of_inter_mulSupport_eq (f : α → M) {s : Set α} {t : Finset α}
    (h : s ∩ mulSupport f = t.toSet ∩ mulSupport f) : ∏ᶠ i ∈ s, f i = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Set α} {t : Finset α} (h : s ∩ Function.mulSupport f = ↑t ∩ Function.mulSupport f)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ t, f i
-- finsum_mem_eq_sum_of_subset
@[to_additive]
theorem finprod_mem_eq_prod_of_subset (f : α → M) {s : Set α} {t : Finset α}
    (h₁ : s ∩ mulSupport f ⊆ t) (h₂ : ↑t ⊆ s) : ∏ᶠ i ∈ s, f i = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Set α} {t : Finset α} (h₁ : s ∩ Function.support f ⊆ ↑t) (h₂ : ↑t ⊆ s)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ t, f i
-- finprod_mem_eq_prod_of_subset
@[to_additive]
theorem finprod_mem_eq_prod_of_subset (f : α → M) {s : Set α} {t : Finset α}
    (h₁ : s ∩ mulSupport f ⊆ t) (h₂ : ↑t ⊆ s) : ∏ᶠ i ∈ s, f i = ∏ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Set α} {t : Finset α} (h₁ : s ∩ Function.mulSupport f ⊆ ↑t) (h₂ : ↑t ⊆ s)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ t, f i
-- finsum_mem_eq_sum
@[to_additive]
theorem finprod_mem_eq_prod (f : α → M) {s : Set α} (hf : (s ∩ mulSupport f).Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Set α} (hf : (s ∩ Function.support f).Finite)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ hf.toFinset, f i
-- finprod_mem_eq_prod
@[to_additive]
theorem finprod_mem_eq_prod (f : α → M) {s : Set α} (hf : (s ∩ mulSupport f).Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Set α} (hf : (s ∩ Function.mulSupport f).Finite)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ hf.toFinset, f i
-- finsum_mem_eq_sum_filter
@[to_additive]
theorem finprod_mem_eq_prod_filter (f : α → M) (s : Set α) [DecidablePred (· ∈ s)]
    (hf : (mulSupport f).Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ Finset.filter (· ∈ s) hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s : Set α) [DecidablePred fun x => x ∈ s] (hf : (Function.support f).Finite)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ Finset.filter (fun x => x ∈ s) hf.toFinset, f i
-- finprod_mem_eq_prod_filter
@[to_additive]
theorem finprod_mem_eq_prod_filter (f : α → M) (s : Set α) [DecidablePred (· ∈ s)]
    (hf : (mulSupport f).Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ Finset.filter (· ∈ s) hf.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s : Set α) [DecidablePred fun x => x ∈ s] (hf : (Function.mulSupport f).Finite)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ Finset.filter (fun x => x ∈ s) hf.toFinset, f i
-- finsum_mem_eq_toFinset_sum
@[to_additive]
theorem finprod_mem_eq_toFinset_prod (f : α → M) (s : Set α) [Fintype s] :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ s.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s : Set α) [Fintype ↑s]
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ s.toFinset, f i
-- finprod_mem_eq_toFinset_prod
@[to_additive]
theorem finprod_mem_eq_toFinset_prod (f : α → M) (s : Set α) [Fintype s] :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ s.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s : Set α) [Fintype ↑s]
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ s.toFinset, f i
-- finsum_mem_eq_finite_toFinset_sum
@[to_additive]
theorem finprod_mem_eq_finite_toFinset_prod (f : α → M) {s : Set α} (hs : s.Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ hs.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) {s : Set α} (hs : s.Finite)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ hs.toFinset, f i
-- finprod_mem_eq_finite_toFinset_prod
@[to_additive]
theorem finprod_mem_eq_finite_toFinset_prod (f : α → M) {s : Set α} (hs : s.Finite) :
    ∏ᶠ i ∈ s, f i = ∏ i ∈ hs.toFinset, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) {s : Set α} (hs : s.Finite)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ hs.toFinset, f i
-- finsum_mem_finset_eq_sum
@[to_additive]
theorem finprod_mem_finset_eq_prod (f : α → M) (s : Finset α) : ∏ᶠ i ∈ s, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s : Finset α)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ i ∈ s, f i
-- finprod_mem_finset_eq_prod
@[to_additive]
theorem finprod_mem_finset_eq_prod (f : α → M) (s : Finset α) : ∏ᶠ i ∈ s, f i = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s : Finset α)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ i ∈ s, f i
-- finprod_mem_coe_finset
@[to_additive]
theorem finprod_mem_coe_finset (f : α → M) (s : Finset α) :
    (∏ᶠ i ∈ (s : Set α), f i) = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s : Finset α)
Goal: ∏ᶠ (i : α) (_ : i ∈ ↑s), f i = ∏ i ∈ s, f i
-- finsum_mem_coe_finset
@[to_additive]
theorem finprod_mem_coe_finset (f : α → M) (s : Finset α) :
    (∏ᶠ i ∈ (s : Set α), f i) = ∏ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s : Finset α)
Goal: ∑ᶠ (i : α) (_ : i ∈ ↑s), f i = ∑ i ∈ s, f i
-- finprod_mem_eq_one_of_infinite
@[to_additive]
theorem finprod_mem_eq_one_of_infinite {f : α → M} {s : Set α} (hs : (s ∩ mulSupport f).Infinite) :
    ∏ᶠ i ∈ s, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] {f : α → M} {s : Set α} (hs : (s ∩ Function.mulSupport f).Infinite)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = 1
-- finsum_mem_eq_zero_of_infinite
@[to_additive]
theorem finprod_mem_eq_one_of_infinite {f : α → M} {s : Set α} (hs : (s ∩ mulSupport f).Infinite) :
    ∏ᶠ i ∈ s, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] {f : α → M} {s : Set α} (hs : (s ∩ Function.support f).Infinite)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = 0
-- finsum_mem_eq_zero_of_forall_eq_zero
@[to_additive]
theorem finprod_mem_eq_one_of_forall_eq_one {f : α → M} {s : Set α} (h : ∀ x ∈ s, f x = 1) :
    ∏ᶠ i ∈ s, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] {f : α → M} {s : Set α} (h : ∀ x ∈ s, f x = 0)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = 0
-- finprod_mem_eq_one_of_forall_eq_one
@[to_additive]
theorem finprod_mem_eq_one_of_forall_eq_one {f : α → M} {s : Set α} (h : ∀ x ∈ s, f x = 1) :
    ∏ᶠ i ∈ s, f i = 1 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] {f : α → M} {s : Set α} (h : ∀ x ∈ s, f x = 1)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = 1
-- finprod_mem_inter_mulSupport
@[to_additive]
theorem finprod_mem_inter_mulSupport (f : α → M) (s : Set α) :
    ∏ᶠ i ∈ s ∩ mulSupport f, f i = ∏ᶠ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s : Set α)
Goal: ∏ᶠ (i : α) (_ : i ∈ s ∩ Function.mulSupport f), f i = ∏ᶠ (i : α) (_ : i ∈ s), f i
-- finsum_mem_inter_support
@[to_additive]
theorem finprod_mem_inter_mulSupport (f : α → M) (s : Set α) :
    ∏ᶠ i ∈ s ∩ mulSupport f, f i = ∏ᶠ i ∈ s, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s : Set α)
Goal: ∑ᶠ (i : α) (_ : i ∈ s ∩ Function.support f), f i = ∑ᶠ (i : α) (_ : i ∈ s), f i
-- finsum_mem_inter_support_eq
@[to_additive]
theorem finprod_mem_inter_mulSupport_eq (f : α → M) (s t : Set α)
    (h : s ∩ mulSupport f = t ∩ mulSupport f) : ∏ᶠ i ∈ s, f i = ∏ᶠ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s t : Set α) (h : s ∩ Function.support f = t ∩ Function.support f)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ᶠ (i : α) (_ : i ∈ t), f i
-- finprod_mem_inter_mulSupport_eq
@[to_additive]
theorem finprod_mem_inter_mulSupport_eq (f : α → M) (s t : Set α)
    (h : s ∩ mulSupport f = t ∩ mulSupport f) : ∏ᶠ i ∈ s, f i = ∏ᶠ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s t : Set α) (h : s ∩ Function.mulSupport f = t ∩ Function.mulSupport f)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (i : α) (_ : i ∈ t), f i
-- finsum_mem_inter_support_eq'
@[to_additive]
theorem finprod_mem_inter_mulSupport_eq' (f : α → M) (s t : Set α)
    (h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t) : ∏ᶠ i ∈ s, f i = ∏ᶠ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M) (s t : Set α) (h : ∀ x ∈ Function.support f, x ∈ s ↔ x ∈ t)
Goal: ∑ᶠ (i : α) (_ : i ∈ s), f i = ∑ᶠ (i : α) (_ : i ∈ t), f i
-- finprod_mem_inter_mulSupport_eq'
@[to_additive]
theorem finprod_mem_inter_mulSupport_eq' (f : α → M) (s t : Set α)
    (h : ∀ x ∈ mulSupport f, x ∈ s ↔ x ∈ t) : ∏ᶠ i ∈ s, f i = ∏ᶠ i ∈ t, f i 
Arguments: {α : Type u_1} {M : Type u_5} [CommMonoid M] (f : α → M) (s t : Set α) (h : ∀ x ∈ Function.mulSupport f, x ∈ s ↔ x ∈ t)
Goal: ∏ᶠ (i : α) (_ : i ∈ s), f i = ∏ᶠ (i : α) (_ : i ∈ t), f i
-- finsum_mem_univ
@[to_additive]
theorem finprod_mem_univ (f : α → M) : ∏ᶠ i ∈ @Set.univ α, f i = ∏ᶠ i : α, f i 
Arguments: {α : Type u_1} {M : Type u_5} [AddCommMonoid M] (f : α → M)
Goal: ∑ᶠ (i : α) (_ : i ∈ Set.univ), f i = ∑ᶠ (i : α), f i