Theorem: MeasureTheory.restrict_compl_sigmaFiniteSet
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

Proof steps:
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝ : SFinite μ
⊢ μ.restrict μ.sigmaFiniteSetᶜ = ⊤ • μ.toFinite.restrict μ.sigmaFiniteSetᶜ
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = (⊤ • μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
tactic: ext t ht
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = (⊤ • μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = (⊤ • μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
tactic: have : μ.restrict μ.sigmaFiniteSetᶜ
      = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ := by
    rw [withDensity_densitytoFinite μ]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = (⊤ • μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = ⊤ * (μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
tactic: simp only [Measure.coe_smul, Pi.smul_apply, smul_eq_mul]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = ⊤ * (μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t
state_after: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ ∫⁻ (a : α) in t ∩ μ.sigmaFiniteSetᶜ, μ.densityToFinite a ∂μ.toFinite = ⊤ * μ.toFinite (t ∩ μ.sigmaFiniteSetᶜ)
tactic: rw [this, Measure.restrict_apply ht,
    withDensity_apply _ (ht.inter (measurableSet_sigmaFiniteSet μ).compl),
    Measure.restrict_apply ht]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ ∫⁻ (a : α) in t ∩ μ.sigmaFiniteSetᶜ, μ.densityToFinite a ∂μ.toFinite = ⊤ * μ.toFinite (t ∩ μ.sigmaFiniteSetᶜ)
state_after: no goals
tactic: calc ∫⁻ a in t ∩ μ.sigmaFiniteSetᶜ, μ.densityToFinite a ∂μ.toFinite
  _ = ∫⁻ _ in t ∩ μ.sigmaFiniteSetᶜ, ∞ ∂μ.toFinite := by
        refine setLIntegral_congr_fun (ht.inter (measurableSet_sigmaFiniteSet μ).compl)
          (ae_of_all _ (fun x hx ↦ ?_))
        simpa [Measure.sigmaFiniteSet] using ((Set.inter_subset_right) hx)
  _ = ∞ * μ.toFinite (t ∩ μ.sigmaFiniteSetᶜ) := by simp