Zulip Chat Archive

Stream: Is there code for X?

Topic: Type of SFinite measures


Josha Dekker (Dec 31 2023 at 17:25):

How would I denote the type of SFinite measures on a monoid M? I'm interested in establishing that these form a MulZeroOneClass (or a related structure), but I cannot write MulZeroOneClass (Measure M), as that would not use the restriction that the measures should be SFinite. Is there some way to restrict this to some prop? The following shows my idea, but I know that this is not the way to go, as SFiniteMeas is a set of measures here.

import Mathlib.MeasureTheory.Constructions.Prod.Basic
import Mathlib.MeasureTheory.Measure.MeasureSpace

namespace MeasureTheory

namespace Measure

def SFiniteMeas {M : Type*} [Monoid M] [MeasurableSpace M] : Set (Measure M) :=
  {μ | SFinite μ}

instance {M : Type*} [Monoid M] [MeasurableSpace M] [MeasurableMul₂ M] : MulZeroOneClass (SFiniteMeas M) where
  sorry

Yury G. Kudryashov (Dec 31 2023 at 17:37):

If we're going to use more measure subtypes, then we may want to do the FunLike refactor for (outer) measures.

Josha Dekker (Dec 31 2023 at 17:41):

So you mean that it is better to wait until that is added? I'm fine with waiting a bit with adding this.

Yury G. Kudryashov (Dec 31 2023 at 17:43):

As a temporary solution, you may use def SFiniteMeasure (α : Type*) [MeasurableSpace M] : Type _ := {μ // SFinite μ}

Rémy Degenne (Dec 31 2023 at 17:52):

You can define a type of SFinite measures like that, and show some properties of it. But I am not sure that defining such a type is really useful. For example, we only defined a type for finite measures because we wanted to put a topology on the space of finite measures, and for everything else we just work on a measure together with the IsFiniteMeasure property.

What makes you want a new type, instead of simply proving things about measures with the SFinite property?

Josha Dekker (Dec 31 2023 at 18:00):

I just thought it would be nice to encode the basic properties of convolution of measures (has a 0, has a 1, acts as a multiplication) in something like a MulZeroOneClass, I didn't have a particular goal in mind yet. The reason for this is that in order to get the results that I currently have in #9372, you'd need to assume that the measures are SFinite; which is why I thought it would be nice to encode it in a type in the first place.

Josha Dekker (Dec 31 2023 at 18:00):

I think it is better that I don't think too much about these things at this point anyway and just focus on building some more results for convolutions.


Last updated: May 02 2025 at 03:31 UTC