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

tactic: ext t ht
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: 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
⊢ (μ.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ᶜ
⊢ (μ.restrict μ.sigmaFiniteSetᶜ) t = ⊤ * (μ.toFinite.restrict μ.sigmaFiniteSetᶜ) t

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ᶜ
⊢ (μ.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: 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
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: rw [withDensity_densitytoFinite μ]
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
⊢ μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
state_after: no goals

tactic: refine setLIntegral_congr_fun (ht.inter (measurableSet_sigmaFiniteSet μ).compl)
  (ae_of_all _ (fun x hx ↦ ?_))
state_before: α : 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 =
    ∫⁻ (x : α) in t ∩ μ.sigmaFiniteSetᶜ, ⊤ ∂μ.toFinite
state_after: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
x : α
hx : x ∈ t ∩ μ.sigmaFiniteSetᶜ
⊢ μ.densityToFinite x = ⊤

tactic: simpa [Measure.sigmaFiniteSet] using ((Set.inter_subset_right) hx)
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
x : α
hx : x ∈ t ∩ μ.sigmaFiniteSetᶜ
⊢ μ.densityToFinite x = ⊤
state_after: no goals

tactic: simp
state_before: α : Type u_1
mα : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝ : SFinite μ
t : Set α
ht : MeasurableSet t
this : μ.restrict μ.sigmaFiniteSetᶜ = (μ.toFinite.withDensity μ.densityToFinite).restrict μ.sigmaFiniteSetᶜ
⊢ ∫⁻ (x : α) in t ∩ μ.sigmaFiniteSetᶜ, ⊤ ∂μ.toFinite = ⊤ * μ.toFinite (t ∩ μ.sigmaFiniteSetᶜ)
state_after: no goals