Theorem: MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: obtain ⟨g, gpos, gmeas, hg⟩ :
  ∃ g : α → ℝ≥0, (∀ x : α, 0 < g x) ∧ Measurable g ∧ ∫⁻ x : α, ↑(g x) ∂μ < 1 :=
  exists_pos_lintegral_lt_of_sigmaFinite μ one_ne_zero
state_before: α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
⊢ ∃ ν, IsFiniteMeasure ν ∧ μ ≪ ν
state_after: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ ∃ ν, IsFiniteMeasure ν ∧ μ ≪ ν

tactic: refine ⟨μ.withDensity fun x => g x, isFiniteMeasure_withDensity hg.ne_top, ?_⟩
state_before: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ ∃ ν, IsFiniteMeasure ν ∧ μ ≪ ν
state_after: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ μ ≪ μ.withDensity fun x => ↑(g x)

tactic: have : μ = (μ.withDensity fun x => g x).withDensity fun x => (g x)⁻¹ := by
  have A : ((fun x : α => (g x : ℝ≥0∞)) * fun x : α => (g x : ℝ≥0∞)⁻¹) = 1 := by
    ext1 x
    exact ENNReal.mul_inv_cancel (ENNReal.coe_ne_zero.2 (gpos x).ne') ENNReal.coe_ne_top
  rw [← withDensity_mul _ gmeas.coe_nnreal_ennreal gmeas.coe_nnreal_ennreal.inv, A,
    withDensity_one]
state_before: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ μ ≪ μ.withDensity fun x => ↑(g x)
state_after: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
this : μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
⊢ μ ≪ μ.withDensity fun x => ↑(g x)

tactic: nth_rw 1 [this]
state_before: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
this : μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
⊢ μ ≪ μ.withDensity fun x => ↑(g x)
state_after: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
this : μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
⊢ ((μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹) ≪ μ.withDensity fun x => ↑(g x)

tactic: exact withDensity_absolutelyContinuous _ _
state_before: case intro.intro.intro
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
this : μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
⊢ ((μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹) ≪ μ.withDensity fun x => ↑(g x)
state_after: no goals

tactic: have A : ((fun x : α => (g x : ℝ≥0∞)) * fun x : α => (g x : ℝ≥0∞)⁻¹) = 1 := by
  ext1 x
  exact ENNReal.mul_inv_cancel (ENNReal.coe_ne_zero.2 (gpos x).ne') ENNReal.coe_ne_top
state_before: α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
state_after: α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
A : ((fun x => ↑(g x)) * fun x => (↑(g x))⁻¹) = 1
⊢ μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹

tactic: rw [← withDensity_mul _ gmeas.coe_nnreal_ennreal gmeas.coe_nnreal_ennreal.inv, A,
  withDensity_one]
state_before: α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
A : ((fun x => ↑(g x)) * fun x => (↑(g x))⁻¹) = 1
⊢ μ = (μ.withDensity fun x => ↑(g x)).withDensity fun x => (↑(g x))⁻¹
state_after: no goals

tactic: ext1 x
state_before: α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
⊢ ((fun x => ↑(g x)) * fun x => (↑(g x))⁻¹) = 1
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
x : α
⊢ ((fun x => ↑(g x)) * fun x => (↑(g x))⁻¹) x = 1 x

tactic: exact ENNReal.mul_inv_cancel (ENNReal.coe_ne_zero.2 (gpos x).ne') ENNReal.coe_ne_top
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
g : α → ℝ≥0
gpos : ∀ (x : α), 0 < g x
gmeas : Measurable g
hg : ∫⁻ (x : α), ↑(g x) ∂μ < 1
x : α
⊢ ((fun x => ↑(g x)) * fun x => (↑(g x))⁻¹) x = 1 x
state_after: no goals