Theorem: MeasureTheory.condexp_bot'
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean

Proof steps:
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ

case neg
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : ¬IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: by_cases hμ_finite : IsFiniteMeasure μ
state_before: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ

case neg
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : ¬IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case neg
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : ¬IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ

case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: swap
state_before: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: have h_meas : StronglyMeasurable[⊥] (μ[f|⊥]) := stronglyMeasurable_condexp
state_before: case pos
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: obtain ⟨c, h_eq⟩ := stronglyMeasurable_bot_iff.mp h_meas
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
⊢ μ[f|⊥] = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: rw [h_eq]
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : ∫ (x : α), (μ[f|⊥]) x ∂μ = ∫ (x : α), f x ∂μ
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: have h_integral : ∫ x, (μ[f|⊥]) x ∂μ = ∫ x, f x ∂μ := integral_condexp bot_le
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : ∫ (x : α), (μ[f|⊥]) x ∂μ = ∫ (x : α), f x ∂μ
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
tactic: simp_rw [h_eq, integral_const] at h_integral
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ (fun x => c) = fun x => (μ Set.univ).toReal⁻¹ • ∫ (x : α), f x ∂μ
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ (μ Set.univ).toReal ≠ 0
tactic: rw [← h_integral, ← smul_assoc, smul_eq_mul, inv_mul_cancel, one_smul]
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ (μ Set.univ).toReal ≠ 0
state_after: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ ¬μ Set.univ = 0 ∧ ¬μ Set.univ = ⊤
tactic: rw [Ne, ENNReal.toReal_eq_zero_iff, not_or]
state_before: case pos.intro
α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f✝ g : α → F'
s : Set α
hμ : NeZero μ
f : α → F'
hμ_finite : IsFiniteMeasure μ
h_meas : StronglyMeasurable (μ[f|⊥])
c : F'
h_eq : μ[f|⊥] = fun x => c
h_integral : (μ Set.univ).toReal • c = ∫ (x : α), f x ∂μ
⊢ ¬μ Set.univ = 0 ∧ ¬μ Set.univ = ⊤
state_after: no goals
tactic: exact ⟨NeZero.ne _, measure_ne_top μ Set.univ⟩