Mathlib v3 is deprecated. Go to Mathlib v4

Commit 2021-08-12 07:03 cd2b5495

View on Github →

chore(measure_theory/*): make measurable_space arguments implicit, determined by the measure argument (#8571) In the measure theory library, most of the definitions that depend on a measure have that form:

def example_def {α} [measurable_space α] (μ : measure α) : some_type := sorry

Suppose now that we have two measurable_space structures on α : {m m0 : measurable_space α} and we have the measures μ : measure α (which is a measure on m0) and μm : @measure α m. This will be common for probability theory applications. See for example the conditional_expectation file. Then we can write example_def μ but we cannot write example_def μm because the measurable_space inferred is m0, which does not match the measurable space on which μm is defined. We have to use @example_def _ m μm instead. This PR implements a simple fix: change [measurable_space α] (μ : measure α) into {m : measurable_space α} (μ : measure α). Advantage: we can now use example_def μm since the measurable_space argument is deduced from the measure argument. This removes many @ in all places where measure.trim is used. Downsides:

  • I have to write (0 : measure α) instead of 0 in some lemmas.
  • I had to add two apply_instance to find borel_space instances.
  • Whenever a lemma takes an explicit measure argument, we have to write {m : measurable_space α} (μ : measure α) instead of simply (μ : measure α).

Estimated changes

modified def ess_inf
modified theorem ess_inf_antimono_measure
modified theorem ess_inf_measure_zero
modified def ess_sup
modified theorem ess_sup_measure_zero
modified theorem ess_sup_mono_measure
modified theorem order_iso.ess_inf_apply
modified theorem order_iso.ess_sup_apply
modified theorem ae_measurable_zero_measure
modified theorem measure_theory.ae_mono
modified theorem measure_theory.ae_zero
modified theorem measure_theory.measure_if