Zulip Chat Archive

Stream: Is there code for X?

Topic: Re-package infinite sum via a partition


Michael Stoll (Dec 29 2023 at 21:23):

I am looking for something like (possibly with a more general target type than , of course)

import Mathlib

lemma HasSum.tsum_fibers {β γ : Type*} {f : β  } (g : β  γ) (a : ) (hf : HasSum f a) :
    HasSum (fun c : γ  tsum <| Set.restrict (g ⁻¹' {c}) f) a := sorry

but I'm unable to find anything close.

Any suggestions regarding where to look?

The finite version is there:

lemma Finset.sum.sum_fibers {β γ : Type*} [DecidableEq γ] (f : β  ) (g : β  γ) (s : Finset β) :
    (s.image g).sum (fun c  (s.filter (g · = c)).sum f) = s.sum f :=
  sum_fiberwise_of_maps_to (fun _  mem_image_of_mem g) f

Maybe one can use some filter magic to go from this to infinite sums, but I'm not an adept of the necessary yoga...

Terence Tao (Dec 29 2023 at 21:31):

docs#HasSum.sigma ?

Michael Stoll (Dec 29 2023 at 21:35):

Or docs#HasSum.prod_fiberwise (which comes right below it). I'll check it out. Thanks! @Terence Tao

Yury G. Kudryashov (Dec 29 2023 at 21:36):

(deleted)

Junyan Xu (Dec 29 2023 at 22:09):

Maybe you want to combine that with docs#Equiv.sigmaFiberEquiv and docs#Equiv.hasSum_iff

Michael Stoll (Dec 29 2023 at 22:19):

OK:

lemma HasSum.tsum_fibers {β γ : Type*} {f : β  } (g : β  γ) (a : ) (hf : HasSum f a) :
    HasSum (fun c : γ  tsum <| Set.restrict (g ⁻¹' {c}) f) a :=
  HasSum.sigma ((Equiv.hasSum_iff <| Equiv.sigmaFiberEquiv g).mpr hf) <|
    fun _  (Summable.hasSum_iff <| Summable.subtype hf.summable _).mpr rfl

Thanks everybody!


Last updated: May 02 2025 at 03:31 UTC