Theorem: MeasureTheory.lintegral_image_eq_lintegral_abs_det_fderiv_mul
File: Mathlib/MeasureTheory/Function/Jacobian.lean

tactic: rw [← restrict_map_withDensity_abs_det_fderiv_eq_addHaar μ hs hf' hf,
  (measurableEmbedding_of_fderivWithin hs hf' hf).lintegral_map]
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
⊢ (∫⁻ (x : E) in f '' s, g x ∂μ) = ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) * g (f x) ∂μ

tactic: have : ∀ x : s, g (s.restrict f x) = (g ∘ f) x := fun x => rfl
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
⊢ (∫⁻ (a : ↑s),
      g
        (Set.restrict s f
          a) ∂Measure.comap Subtype.val
        (withDensity μ fun x => ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))))) =
    ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) * g (f x) ∂μ

tactic: simp only [this]
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
this : ∀ (x : ↑s), g (Set.restrict s f x) = (g ∘ f) ↑x
⊢ (∫⁻ (a : ↑s),
      g
        (Set.restrict s f
          a) ∂Measure.comap Subtype.val
        (withDensity μ fun x => ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))))) =
    ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) * g (f x) ∂μ

tactic: rw [← (MeasurableEmbedding.subtype_coe hs).lintegral_map, map_comap_subtype_coe hs,
  set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀ _ _ _ hs]
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
this : ∀ (x : ↑s), g (Set.restrict s f x) = (g ∘ f) ↑x
⊢ (∫⁻ (a : ↑s),
      (g ∘ f)
        ↑a ∂Measure.comap Subtype.val (withDensity μ fun x => ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))))) =
    ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) * g (f x) ∂μ

tactic: rfl
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
this : ∀ (x : ↑s), g (Set.restrict s f x) = (g ∘ f) ↑x
⊢ (∫⁻ (a : E) in s, ((fun x => ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x)))) * fun a => (g ∘ f) a) a ∂μ) =
    ∫⁻ (x : E) in s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) * g (f x) ∂μ

tactic: simp only [eventually_true, ENNReal.ofReal_lt_top]
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
this : ∀ (x : ↑s), g (Set.restrict s f x) = (g ∘ f) ↑x
⊢ ∀ᵐ (x : E) ∂Measure.restrict μ s, ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x))) < ⊤

tactic: exact aemeasurable_ofReal_abs_det_fderivWithin μ hs hf'
state_before: E : Type u_1
F : Type ?u.1015376
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : FiniteDimensional ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
s : Set E
f : E → E
f' : E → E →L[ℝ] E
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
hs : MeasurableSet s
hf' : ∀ (x : E), x ∈ s → HasFDerivWithinAt f (f' x) s x
hf : InjOn f s
g : E → ℝ≥0∞
this : ∀ (x : ↑s), g (Set.restrict s f x) = (g ∘ f) ↑x
⊢ AEMeasurable fun x => ENNReal.ofReal (abs (ContinuousLinearMap.det (f' x)))