Theorem: MeasureTheory.integrable_count_iff
File: Mathlib/MeasureTheory/Function/L1Space.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
⊢ Integrable f Measure.count ↔ Summable fun x => ‖f x‖
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
⊢ (Summable fun x => ‖f x‖) → AEStronglyMeasurable f Measure.count
tactic: rw [Integrable, hasFiniteIntegral_count_iff, and_iff_right_iff_imp]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
⊢ (Summable fun x => ‖f x‖) → AEStronglyMeasurable f Measure.count
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
⊢ AEStronglyMeasurable f Measure.count
tactic: intro hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
⊢ AEStronglyMeasurable f Measure.count
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
⊢ AEStronglyMeasurable f Measure.count
tactic: have hs' : (Function.support f).Countable := by
    simpa only [Ne, Pi.zero_apply, eq_comm, Function.support, norm_eq_zero]
      using hs.countable_support
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
⊢ AEStronglyMeasurable f Measure.count
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this : MeasurableSpace β := borel β
⊢ AEStronglyMeasurable f Measure.count
tactic: letI : MeasurableSpace β := borel β
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this : MeasurableSpace β := borel β
⊢ AEStronglyMeasurable f Measure.count
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this✝ : MeasurableSpace β := borel β
this : BorelSpace β
⊢ AEStronglyMeasurable f Measure.count
tactic: haveI : BorelSpace β := ⟨rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this✝ : MeasurableSpace β := borel β
this : BorelSpace β
⊢ AEStronglyMeasurable f Measure.count
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this✝ : MeasurableSpace β := borel β
this : BorelSpace β
⊢ AEMeasurable f Measure.count

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
inst✝ : MeasurableSingletonClass α
f : α → β
hs : Summable fun x => ‖f x‖
hs' : (Function.support f).Countable
this✝ : MeasurableSpace β := borel β
this : BorelSpace β
⊢ ∃ t, IsSeparable t ∧ ∀ᵐ (x : α) ∂Measure.count, f x ∈ t
tactic: refine aestronglyMeasurable_iff_aemeasurable_separable.mpr ⟨?_, ?_⟩