Skip to content

Commit b5cacbc

Browse files
committed
refactor(MeasureTheory): golf Mathlib/MeasureTheory/Constructions/Pi (#38353)
- refactors `MeasureTheory/Constructions/Pi` by moving `pi_map_piCongrLeft` next to `measurePreserving_piCongrLeft` and deriving it directly from `.map_eq` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
1 parent 33f160f commit b5cacbc

1 file changed

Lines changed: 6 additions & 17 deletions

File tree

  • Mathlib/MeasureTheory/Constructions

Mathlib/MeasureTheory/Constructions/Pi.lean

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -450,23 +450,6 @@ theorem ae_eq_set_pi {I : Set ι} {s t : ∀ i, Set (α i)} (h : ∀ i ∈ I, s
450450
Set.pi I s =ᵐ[Measure.pi μ] Set.pi I t :=
451451
(ae_le_set_pi fun i hi => (h i hi).le).antisymm (ae_le_set_pi fun i hi => (h i hi).symm.le)
452452

453-
lemma pi_map_piCongrLeft [hι' : Fintype ι'] (e : ι ≃ ι') {β : ι' → Type*}
454-
[∀ i, MeasurableSpace (β i)] (μ : (i : ι') → Measure (β i)) [∀ i, SigmaFinite (μ i)] :
455-
(Measure.pi fun i ↦ μ (e i)).map (MeasurableEquiv.piCongrLeft (fun i ↦ β i) e)
456-
= Measure.pi μ := by
457-
let e_meas : ((b : ι) → β (e b)) ≃ᵐ ((a : ι') → β a) :=
458-
MeasurableEquiv.piCongrLeft (fun i ↦ β i) e
459-
refine Measure.pi_eq (fun s _ ↦ ?_) |>.symm
460-
rw [e_meas.measurableEmbedding.map_apply]
461-
let s' : (i : ι) → Set (β (e i)) := fun i ↦ s (e i)
462-
have : e_meas ⁻¹' pi univ s = pi univ s' := by
463-
ext x
464-
simp only [mem_preimage, Set.mem_pi, mem_univ, forall_true_left, s']
465-
refine (e.forall_congr ?_).symm
466-
intro i
467-
rw [MeasurableEquiv.piCongrLeft_apply_apply e x i]
468-
simpa [this] using Fintype.prod_equiv _ (fun _ ↦ (μ _) (s' _)) _ (congrFun rfl)
469-
470453
lemma pi_map_piOptionEquivProd {β : Option ι → Type*} [∀ i, MeasurableSpace (β i)]
471454
(μ : (i : Option ι) → Measure (β i)) [∀ (i : Option ι), SigmaFinite (μ i)] :
472455
((Measure.pi fun i ↦ μ (some i)).prod (μ none)).map
@@ -755,6 +738,12 @@ theorem volume_measurePreserving_piCongrLeft (α : ι → Type*) (f : ι' ≃ ι
755738
MeasurePreserving (MeasurableEquiv.piCongrLeft α f) volume volume :=
756739
measurePreserving_piCongrLeft (fun _ ↦ volume) f
757740

741+
lemma Measure.pi_map_piCongrLeft (e : ι ≃ ι') {β : ι' → Type*} [∀ i, MeasurableSpace (β i)]
742+
(μ : (i : ι') → Measure (β i)) [∀ i, SigmaFinite (μ i)] :
743+
(Measure.pi fun i ↦ μ (e i)).map (MeasurableEquiv.piCongrLeft (fun i ↦ β i) e) =
744+
Measure.pi μ :=
745+
(measurePreserving_piCongrLeft (α := fun i ↦ β i) μ e).map_eq
746+
758747
theorem measurePreserving_arrowProdEquivProdArrow (α β γ : Type*) [MeasurableSpace α]
759748
[MeasurableSpace β] [Fintype γ] (μ : γ → Measure α) (ν : γ → Measure β) [∀ i, SigmaFinite (μ i)]
760749
[∀ i, SigmaFinite (ν i)] :

0 commit comments

Comments
 (0)