Zulip Chat Archive
Stream: Is there code for X?
Topic: finprod of elements of a submonoid
Kevin Buzzard (Jun 12 2024 at 23:12):
Do we have this:
import Mathlib.Algebra.BigOperators.Finprod
import Mathlib.Algebra.Group.Submonoid.Basic
lemma Submonoid.finprod_mem {G : Type*} [CommMonoid G] {M : Submonoid G} {ι : Type*}
{S : Set ι} {f : ι → G} (hf : ∀ i ∈ S, f i ∈ M) : (∏ᶠ i ∈ S, f i) ∈ M := by
sorry
Kevin Buzzard (Jun 13 2024 at 07:20):
lemma Submonoid.finprod_mem {G : Type*} [CommMonoid G] {M : Submonoid G} {ι : Type*}
{S : Set ι}
{f : ι → G} (hf : ∀ i ∈ S, f i ∈ M) : (∏ᶠ i ∈ S, f i) ∈ M := by
by_cases hS : (S ∩ mulSupport f).Finite
· rw [finprod_mem_eq_prod _ hS]
apply Submonoid.prod_mem M <| fun i hi ↦ hf _ ?_
exact mem_of_mem_diff ((Finite.mem_toFinset hS).mp hi)
· exact finprod_mem_eq_one_of_infinite hS ▸ M.one_mem
Johan Commelin (Jun 13 2024 at 07:21):
I hope we have a generic docs#prod_mem
Kevin Buzzard (Jun 13 2024 at 07:25):
yeah but for finsets.
Johan Commelin (Jun 13 2024 at 07:37):
Aah, oops
Edward van de Meent (Jun 13 2024 at 10:34):
docs#finprod_induction seems relevant
Eric Wieser (Jun 13 2024 at 11:10):
lemma Submonoid.finprod_mem {G : Type*} [CommMonoid G] {M : Submonoid G} {ι : Type*}
{S : Set ι} {f : ι → G} (hf : ∀ i ∈ S, f i ∈ M) : (∏ᶠ i ∈ S, f i) ∈ M :=
finprod_mem_induction (· ∈ M) (one_mem _) (fun _ _ => mul_mem) hf
Yury G. Kudryashov (Jul 15 2024 at 01:30):
You should prove it for a finprod
indexed on i : (_ : Sort*)
Last updated: May 02 2025 at 03:31 UTC