測度論と積分

7.6. 密度付き測度🔗

定義.

X を可測空間とし、\muX 上の測度、f : X \to [0,\infty] を関数とする。 測度 f \cdot \mu を、任意の可測集合 A \subseteq X に対して (f \cdot \mu)(A) \coloneqq \underline{\int}_{x \in A} f(x)\,d\mu で定める。

Lean code
/-- The measure with density `f` with respect to `μ`. -/ def withDensity (μ : Measure X) (f : X ℝ≥0∞) : Measure X := Measure.ofMeasurable (fun A _ ∫⁻ x in A, f x μ) (X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞(fun A x => ∫⁻ (x : X) in A, f x μ) = 0 All goals completed! 🐙) <| X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞ f_1 : Set X (h : (i : ), MeasurableSet (f_1 i)), Pairwise (Function.onFun Disjoint f_1) (fun A x => ∫⁻ (x : X) in A, f x μ) (⋃ i, f_1 i) = ∑' (i : ), (fun A x => ∫⁻ (x : X) in A, f x μ) (f_1 i) intro A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞A: Set XhA: (i : ), MeasurableSet (A i)Pairwise (Function.onFun Disjoint A) (fun A x => ∫⁻ (x : X) in A, f x μ) (⋃ i, A i) = ∑' (i : ), (fun A x => ∫⁻ (x : X) in A, f x μ) (A i) X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Function.onFun Disjoint A)(fun A x => ∫⁻ (x : X) in A, f x μ) (⋃ i, A i) = ∑' (i : ), (fun A x => ∫⁻ (x : X) in A, f x μ) (A i) All goals completed! 🐙
theorem withDensity_apply (μ : Measure X) (f : X ℝ≥0∞) {A : Set X} (hA : MeasurableSet A) : Measure.withDensity μ f A = ∫⁻ x in A, f x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞A:Set XhA:MeasurableSet A(withDensity μ f) A = ∫⁻ (x : X) in A, f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞A:Set XhA:MeasurableSet A(Measure.ofMeasurable (fun A x => ∫⁻ (x : X) in A, f x μ) ) A = ∫⁻ (x : X) in A, f x μ All goals completed! 🐙
補題.

f, g : X \to [0,\infty] を可測とする。 このとき \underline{\int}_{x \in X} g(x)\,d(f \cdot \mu) = \underline{\int}_{x \in X} f(x) g(x)\,d\mu. が成り立つ。

Lean code
theorem lintegral_withDensity_eq_lintegral_mul (μ : Measure X) {f g : X ℝ≥0∞} (hf : Measurable f) (hg : Measurable g) : ∫⁻ x, g x (Measure.withDensity μ f) = ∫⁻ x, (f * g) x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g∫⁻ (x : X), g x Measure.withDensity μ f = ∫⁻ (x : X), (f * g) x μ have lhs := calc ∫⁻ x, g x (Measure.withDensity μ f) = ∫⁻ x : X, i, (SimpleFunc.eapprox g i) x (Measure.withDensity μ f) := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g∫⁻ (x : X), g x Measure.withDensity μ f = ∫⁻ (x : X), i, (SimpleFunc.eapprox g i) x Measure.withDensity μ f X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g (a : X), g a = i, (SimpleFunc.eapprox g i) a X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable gx:Xg x = i, (SimpleFunc.eapprox g i) x All goals completed! 🐙 _ = n, ∫⁻ x : X, (SimpleFunc.eapprox g n) x (Measure.withDensity μ f) := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g∫⁻ (x : X), i, (SimpleFunc.eapprox g i) x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g (n : ), Measurable (SimpleFunc.eapprox g n)X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable gMonotone fun n => (SimpleFunc.eapprox g n) X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable g (n : ), Measurable (SimpleFunc.eapprox g n) X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable gn:Measurable (SimpleFunc.eapprox g n) All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable gMonotone fun n => (SimpleFunc.eapprox g n) All goals completed! 🐙 have rhs := calc ∫⁻ x, (f * g) x μ = ∫⁻ x : X, i, f x * (SimpleFunc.eapprox g i) x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))∫⁻ (x : X), (f * g) x μ = ∫⁻ (x : X), i, f x * (SimpleFunc.eapprox g i) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g)) (a : X), (f * g) a = i, f a * (SimpleFunc.eapprox g i) a X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))x:X(f * g) x = i, f x * (SimpleFunc.eapprox g i) x X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))x:Xf x * g x = f x * i, (SimpleFunc.eapprox g i) x All goals completed! 🐙 _ = n, ∫⁻ x : X, f x * (SimpleFunc.eapprox g n) x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))∫⁻ (x : X), i, f x * (SimpleFunc.eapprox g i) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g)) (n : ), Measurable fun a => f a * (SimpleFunc.eapprox g n) aX:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))Monotone fun n a => f a * (SimpleFunc.eapprox g n) a X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g)) (n : ), Measurable fun a => f a * (SimpleFunc.eapprox g n) a X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))n:Measurable fun a => f a * (SimpleFunc.eapprox g n) a All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))Monotone fun n a => f a * (SimpleFunc.eapprox g n) a X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g)) (b : X), Monotone fun a => f b * (SimpleFunc.eapprox g a) b X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))x:XMonotone fun a => f x * (SimpleFunc.eapprox g a) x All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x))) n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x))) (i : ), ∫⁻ (x : X), (SimpleFunc.eapprox g i) x Measure.withDensity μ f = ∫⁻ (x : X), f x * (SimpleFunc.eapprox g i) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f = ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ calc ∫⁻ x : X, (SimpleFunc.eapprox g n) x (Measure.withDensity μ f) = y (SimpleFunc.eapprox g n).range, ∫⁻ x : X in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f = y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: x (SimpleFunc.eapprox g n).range, x * (Measure.withDensity μ f) ((SimpleFunc.eapprox g n) ⁻¹' {x}) = y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: x (SimpleFunc.eapprox g n).range, x * (Measure.withDensity μ f) ((SimpleFunc.eapprox g n) ⁻¹' {x}) = ∫⁻ (x_1 : X) in (SimpleFunc.eapprox g n) ⁻¹' {x}, x * f x_1 μ intro y X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangey * (Measure.withDensity μ f) ((SimpleFunc.eapprox g n) ⁻¹' {y}) = ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangey * ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, f x μ = ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ All goals completed! 🐙 _ = y (SimpleFunc.eapprox g n).range, ∫⁻ x : X in (SimpleFunc.eapprox g n) ⁻¹' {y}, (SimpleFunc.eapprox g n) x * f x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ = y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, (SimpleFunc.eapprox g n) x * f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: x (SimpleFunc.eapprox g n).range, ∫⁻ (x_1 : X) in (SimpleFunc.eapprox g n) ⁻¹' {x}, x * f x_1 μ = ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {x}, (SimpleFunc.eapprox g n) x * f x μ intro y X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).range∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, y * f x μ = ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, (SimpleFunc.eapprox g n) x * f x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangeEqOn (fun x => y * f x) (fun x => (SimpleFunc.eapprox g n) x * f x) ((SimpleFunc.eapprox g n) ⁻¹' {y}) intro x X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangex:Xhx:x (SimpleFunc.eapprox g n) ⁻¹' {y}(fun x => y * f x) x = (fun x => (SimpleFunc.eapprox g n) x * f x) x X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:y:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangex:Xhx:(SimpleFunc.eapprox g n) x = y(fun x => y * f x) x = (fun x => (SimpleFunc.eapprox g n) x * f x) x All goals completed! 🐙 _ = ∫⁻ x : X, f x * (SimpleFunc.eapprox g n) x μ := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, (SimpleFunc.eapprox g n) x * f x μ = ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:∫⁻ (a : X), (SimpleFunc.eapprox g n) a * f a i (SimpleFunc.eapprox g n).range, μ.restrict ((SimpleFunc.eapprox g n) ⁻¹' {i}) = ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: i (SimpleFunc.eapprox g n).range, μ.restrict ((SimpleFunc.eapprox g n) ⁻¹' {i}) = μX:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:(fun a => (SimpleFunc.eapprox g n) a * f a) = fun x => f x * (SimpleFunc.eapprox g n) x X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: i (SimpleFunc.eapprox g n).range, μ.restrict ((SimpleFunc.eapprox g n) ⁻¹' {i}) = μ X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A(∑ i (SimpleFunc.eapprox g n).range, μ.restrict ((SimpleFunc.eapprox g n) ⁻¹' {i})) A = μ A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A c (SimpleFunc.eapprox g n).range, (μ.restrict ((SimpleFunc.eapprox g n) ⁻¹' {c})) A = μ A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A x (SimpleFunc.eapprox g n).range, μ (A (SimpleFunc.eapprox g n) ⁻¹' {x}) = μ A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Aμ (⋃ b (SimpleFunc.eapprox g n).range, A (SimpleFunc.eapprox g n) ⁻¹' {b}) = μ AX:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A b (SimpleFunc.eapprox g n).range, MeasurableSet (A (SimpleFunc.eapprox g n) ⁻¹' {b}) X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Aμ (⋃ b (SimpleFunc.eapprox g n).range, A (SimpleFunc.eapprox g n) ⁻¹' {b}) = μ A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A b (SimpleFunc.eapprox g n).range, A (SimpleFunc.eapprox g n) ⁻¹' {b} = A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ax:Xx b (SimpleFunc.eapprox g n).range, A (SimpleFunc.eapprox g n) ⁻¹' {b} x A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ax:Xx A i (SimpleFunc.eapprox g n).range, (SimpleFunc.eapprox g n) ⁻¹' {i} x A X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ax:Xx A x i (SimpleFunc.eapprox g n).range, (SimpleFunc.eapprox g n) ⁻¹' {i} x A All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x} have hpair : ((SimpleFunc.eapprox g n).range : Set ℝ≥0∞).PairwiseDisjoint fun y (SimpleFunc.eapprox g n) ⁻¹' {y} := X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n: y (SimpleFunc.eapprox g n).range, ∫⁻ (x : X) in (SimpleFunc.eapprox g n) ⁻¹' {y}, (SimpleFunc.eapprox g n) x * f x μ = ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ All goals completed! 🐙 intro y X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).range y_1 : ℝ≥0∞⦄, y_1 (SimpleFunc.eapprox g n).range y y_1 Function.onFun Disjoint (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) y y_1 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞z (SimpleFunc.eapprox g n).range y z Function.onFun Disjoint (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) y z X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangey z Function.onFun Disjoint (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) y z X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangehyz:y zFunction.onFun Disjoint (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) y z X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangehyz:y zs:Set Xs (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) y s (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) z s X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangehyz:y zs:Set Xhy':s (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) ys (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) z s X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangehyz:y zs:Set Xhy':s (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) yhz':s (fun x => A (SimpleFunc.eapprox g n) ⁻¹' {x}) zs X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ahpair:(↑(SimpleFunc.eapprox g n).range).PairwiseDisjoint fun y => (SimpleFunc.eapprox g n) ⁻¹' {y} := pairwiseDisjoint_fiber (SimpleFunc.eapprox g n) (SimpleFunc.eapprox g n).rangey:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangez:ℝ≥0∞hz:z (SimpleFunc.eapprox g n).rangehyz:y zs:Set Xhy':s A s (SimpleFunc.eapprox g n) ⁻¹' {y}hz':s A s (SimpleFunc.eapprox g n) ⁻¹' {z}s All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet A b (SimpleFunc.eapprox g n).range, MeasurableSet (A (SimpleFunc.eapprox g n) ⁻¹' {b}) intro y X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:A:Set XhA:MeasurableSet Ay:ℝ≥0∞hy:y (SimpleFunc.eapprox g n).rangeMeasurableSet (A (SimpleFunc.eapprox g n) ⁻¹' {y}) All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:(fun a => (SimpleFunc.eapprox g n) a * f a) = fun x => f x * (SimpleFunc.eapprox g n) x X:Type u_1inst✝:MeasurableSpace Xμ:Measure Xf:X ℝ≥0∞g:X ℝ≥0∞hf:Measurable fhg:Measurable glhs:∫⁻ (x : X), g x Measure.withDensity μ f = n, ∫⁻ (x : X), (SimpleFunc.eapprox g n) x Measure.withDensity μ f := Trans.trans (lintegral_congr fun x => Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)) (lintegral_iSup (fun n => SimpleFunc.measurable (SimpleFunc.eapprox g n)) (SimpleFunc.monotone_eapprox g))rhs:∫⁻ (x : X), (f * g) x μ = n, ∫⁻ (x : X), f x * (SimpleFunc.eapprox g n) x μ := Trans.trans (lintegral_congr fun x => Eq.mpr (id (congrArg (Eq (f x * g x)) (lintegral_withDensity_eq_lintegral_mul._simp_1 (f x) fun i => (SimpleFunc.eapprox g i) x))) (congrArg (fun t => f x * t) (Eq.symm (SimpleFunc.iSup_eapprox_apply hg x)))) (lintegral_iSup (fun n => Measurable.mul hf (SimpleFunc.measurable (SimpleFunc.eapprox g n))) (monotone_lam fun x => Monotone.const_mul' (fun a b hab => SimpleFunc.monotone_eapprox g hab x) (f x)))n:x:X(SimpleFunc.eapprox g n) x * f x = f x * (SimpleFunc.eapprox g n) x All goals completed! 🐙