Theorem: MeasurableEmbedding.map_apply
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: refine' le_antisymm _ (le_map_apply hf.measurable.aemeasurable s)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
⊢ ↑↑(Measure.map f μ) s = ↑↑μ (f ⁻¹' s)

tactic: set t := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)

tactic: have htm : MeasurableSet t :=
  (hf.measurableSet_image.2 <| measurableSet_toMeasurable _ _).union
    hf.measurableSet_range.compl
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)

tactic: have hst : s ⊆ t := by
  rw [subset_union_compl_iff_inter_subset, ← image_preimage_eq_inter_range]
  exact image_subset _ (subset_toMeasurable _ _)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)

tactic: have hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s) := by
  rw [preimage_union, preimage_compl, preimage_range, compl_univ, union_empty,
    hf.injective.preimage_image]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
hst : s ⊆ t
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)

tactic: calc
  μ.map f s ≤ μ.map f t := measure_mono hst
  _ = μ (f ⁻¹' s) := by rw [map_apply hf.measurable htm, hft, measure_toMeasurable]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
hst : s ⊆ t
hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s)
⊢ ↑↑(Measure.map f μ) s ≤ ↑↑μ (f ⁻¹' s)

tactic: rw [subset_union_compl_iff_inter_subset, ← image_preimage_eq_inter_range]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
⊢ s ⊆ t

tactic: exact image_subset _ (subset_toMeasurable _ _)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
⊢ f '' (f ⁻¹' s) ⊆ f '' toMeasurable μ (f ⁻¹' s)

tactic: rw [preimage_union, preimage_compl, preimage_range, compl_univ, union_empty,
  hf.injective.preimage_image]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
hst : s ⊆ t
⊢ f ⁻¹' t = toMeasurable μ (f ⁻¹' s)

tactic: rw [map_apply hf.measurable htm, hft, measure_toMeasurable]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.857129
δ : Type ?u.857132
ι : Type ?u.857135
R : Type ?u.857138
R' : Type ?u.857141
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : MeasureTheory.Measure α
s : Set β
t : Set β := f '' toMeasurable μ (f ⁻¹' s) ∪ range fᶜ
htm : MeasurableSet t
hst : s ⊆ t
hft : f ⁻¹' t = toMeasurable μ (f ⁻¹' s)
⊢ ↑↑(Measure.map f μ) t = ↑↑μ (f ⁻¹' s)