Skip to content

Commit e0685aa

Browse files
feat: add mul_iff right and mul_iff_left for (AE)(Strongly)Measurable (#12711)
Add the lemma that says that if `f` is measurable, then `f+g` is measurable iff `g` is measurable. Then add the same but with `g+f`, and the same lemmas about AEMeasurable, StronglyMeasurable and AEStronglyMeasurable. Co-authored-by: Lorenzo Luccioli <71074618+LorenzoLuccioli@users.noreply.github.com>
1 parent 87543dc commit e0685aa

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,17 @@ protected theorem div [Div β] [ContinuousDiv β] (hf : StronglyMeasurable f)
452452
#align measure_theory.strongly_measurable.div MeasureTheory.StronglyMeasurable.div
453453
#align measure_theory.strongly_measurable.sub MeasureTheory.StronglyMeasurable.sub
454454

455+
@[to_additive]
456+
theorem mul_iff_right [CommGroup β] [TopologicalGroup β] (hf : StronglyMeasurable f) :
457+
StronglyMeasurable (f * g) ↔ StronglyMeasurable g :=
458+
fun h ↦ show g = f * g * f⁻¹ by simp only [mul_inv_cancel_comm] ▸ h.mul hf.inv,
459+
fun h ↦ hf.mul h⟩
460+
461+
@[to_additive]
462+
theorem mul_iff_left [CommGroup β] [TopologicalGroup β] (hf : StronglyMeasurable f) :
463+
StronglyMeasurable (g * f) ↔ StronglyMeasurable g :=
464+
mul_comm g f ▸ mul_iff_right hf
465+
455466
@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
456467
protected theorem smul {𝕜} [TopologicalSpace 𝕜] [SMul 𝕜 β] [ContinuousSMul 𝕜 β] {f : α → 𝕜}
457468
{g : α → β} (hf : StronglyMeasurable f) (hg : StronglyMeasurable g) :
@@ -1355,6 +1366,17 @@ protected theorem div [Group β] [TopologicalGroup β] (hf : AEStronglyMeasurabl
13551366
#align measure_theory.ae_strongly_measurable.div MeasureTheory.AEStronglyMeasurable.div
13561367
#align measure_theory.ae_strongly_measurable.sub MeasureTheory.AEStronglyMeasurable.sub
13571368

1369+
@[to_additive]
1370+
theorem mul_iff_right [CommGroup β] [TopologicalGroup β] (hf : AEStronglyMeasurable f μ) :
1371+
AEStronglyMeasurable (f * g) μ ↔ AEStronglyMeasurable g μ :=
1372+
fun h ↦ show g = f * g * f⁻¹ by simp only [mul_inv_cancel_comm] ▸ h.mul hf.inv,
1373+
fun h ↦ hf.mul h⟩
1374+
1375+
@[to_additive]
1376+
theorem mul_iff_left [CommGroup β] [TopologicalGroup β] (hf : AEStronglyMeasurable f μ) :
1377+
AEStronglyMeasurable (g * f) μ ↔ AEStronglyMeasurable g μ :=
1378+
mul_comm g f ▸ AEStronglyMeasurable.mul_iff_right hf
1379+
13581380
@[to_additive (attr := aesop safe 20 apply (rule_sets := [Measurable]))]
13591381
protected theorem smul {𝕜} [TopologicalSpace 𝕜] [SMul 𝕜 β] [ContinuousSMul 𝕜 β] {f : α → 𝕜}
13601382
{g : α → β} (hf : AEStronglyMeasurable f μ) (hg : AEStronglyMeasurable g μ) :

Mathlib/MeasureTheory/Group/Arithmetic.lean

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,32 @@ theorem measurableEmbedding_inv [InvolutiveInv α] [MeasurableInv α] :
520520

521521
end Inv
522522

523+
@[to_additive]
524+
theorem Measurable.mul_iff_right {G : Type*} [MeasurableSpace G] [MeasurableSpace α] [CommGroup G]
525+
[MeasurableMul₂ G] [MeasurableInv G] {f g : α → G} (hf : Measurable f) :
526+
Measurable (f * g) ↔ Measurable g :=
527+
fun h ↦ show g = f * g * f⁻¹ by simp only [mul_inv_cancel_comm] ▸ h.mul hf.inv,
528+
fun h ↦ hf.mul h⟩
529+
530+
@[to_additive]
531+
theorem AEMeasurable.mul_iff_right {G : Type*} [MeasurableSpace G] [MeasurableSpace α] [CommGroup G]
532+
[MeasurableMul₂ G] [MeasurableInv G] {μ : Measure α} {f g : α → G} (hf : AEMeasurable f μ) :
533+
AEMeasurable (f * g) μ ↔ AEMeasurable g μ :=
534+
fun h ↦ show g = f * g * f⁻¹ by simp only [mul_inv_cancel_comm] ▸ h.mul hf.inv,
535+
fun h ↦ hf.mul h⟩
536+
537+
@[to_additive]
538+
theorem Measurable.mul_iff_left {G : Type*} [MeasurableSpace G] [MeasurableSpace α] [CommGroup G]
539+
[MeasurableMul₂ G] [MeasurableInv G] {f g : α → G} (hf : Measurable f) :
540+
Measurable (g * f) ↔ Measurable g :=
541+
mul_comm g f ▸ Measurable.mul_iff_right hf
542+
543+
@[to_additive]
544+
theorem AEMeasurable.mul_iff_left {G : Type*} [MeasurableSpace G] [MeasurableSpace α] [CommGroup G]
545+
[MeasurableMul₂ G] [MeasurableInv G] {μ : Measure α} {f g : α → G} (hf : AEMeasurable f μ) :
546+
AEMeasurable (g * f) μ ↔ AEMeasurable g μ :=
547+
mul_comm g f ▸ AEMeasurable.mul_iff_right hf
548+
523549
/-- `DivInvMonoid.Pow` is measurable. -/
524550
instance DivInvMonoid.measurableZPow (G : Type u) [DivInvMonoid G] [MeasurableSpace G]
525551
[MeasurableMul₂ G] [MeasurableInv G] : MeasurablePow G ℤ :=

0 commit comments

Comments
 (0)