Theorem: MeasureTheory.integral_eq_lintegral_of_nonneg_ae
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: by_cases hfi : Integrable f μ
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
⊢ (∫ (a : α), f a ∂μ) = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: rw [integral_eq_lintegral_pos_part_sub_lintegral_neg_part hfi]
state_before: case pos
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ (∫ (a : α), f a ∂μ) = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: rw [h_min, zero_toReal, _root_.sub_zero]
state_before: case pos
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
h_min : (∫⁻ (a : α), ENNReal.ofReal (-f a) ∂μ) = 0
⊢ ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ) - ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (-f a) ∂μ) =
    ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: rw [lintegral_eq_zero_iff']
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ (∫⁻ (a : α), ENNReal.ofReal (-f a) ∂μ) = 0

tactic: refine' hf.mono _
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ (fun a => ENNReal.ofReal (-f a)) =ᵐ[μ] 0

tactic: simp only [Pi.zero_apply]
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ ∀ (x : α), OfNat.ofNat 0 x ≤ f x → (fun a => ENNReal.ofReal (-f a)) x = OfNat.ofNat 0 x

tactic: intro a h
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ ∀ (x : α), 0 ≤ f x → ENNReal.ofReal (-f x) = 0

tactic: simp only [h, neg_nonpos, ofReal_eq_zero]
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
a : α
h : 0 ≤ f a
⊢ ENNReal.ofReal (-f a) = 0

tactic: exact measurable_ofReal.comp_aemeasurable hfm.aemeasurable.neg
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : Integrable f
⊢ AEMeasurable fun a => ENNReal.ofReal (-f a)

tactic: rw [integral_undef hfi]
state_before: case neg
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : ¬Integrable f
⊢ (∫ (a : α), f a ∂μ) = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: simp_rw [Integrable, hfm, hasFiniteIntegral_iff_norm, lt_top_iff_ne_top, Ne.def, true_and_iff,
  Classical.not_not] at hfi
state_before: case neg
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : ¬Integrable f
⊢ 0 = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: have : (∫⁻ a : α, ENNReal.ofReal (f a) ∂μ) = ∫⁻ a, ENNReal.ofReal ‖f a‖ ∂μ := by
  refine' lintegral_congr_ae (hf.mono fun a h => _)
  dsimp only
  rw [Real.norm_eq_abs, abs_of_nonneg h]
state_before: case neg
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
⊢ 0 = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: rw [this, hfi]
state_before: case neg
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
this : (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ) = ∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ
⊢ 0 = ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ)

tactic: rfl
state_before: case neg
α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
this : (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ) = ∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ
⊢ 0 = ENNReal.toReal ⊤

tactic: refine' lintegral_congr_ae (hf.mono fun a h => _)
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
⊢ (∫⁻ (a : α), ENNReal.ofReal (f a) ∂μ) = ∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ

tactic: dsimp only
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
a : α
h : OfNat.ofNat 0 a ≤ f a
⊢ (fun a => ENNReal.ofReal (f a)) a = (fun a => ENNReal.ofReal ‖f a‖) a

tactic: rw [Real.norm_eq_abs, abs_of_nonneg h]
state_before: α : Type u_1
E : Type ?u.1043260
F : Type ?u.1043263
𝕜 : Type ?u.1043266
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1045957
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ
hf : 0 ≤ᵐ[μ] f
hfm : AEStronglyMeasurable f μ
hfi : (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ⊤
a : α
h : OfNat.ofNat 0 a ≤ f a
⊢ ENNReal.ofReal (f a) = ENNReal.ofReal ‖f a‖