[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
let s := denseSeq E
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hs : DenseRange s := denseRange_denseSeq E
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
hs : DenseRange s
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hf' : ∀ᵐ x ∂μ, ∀ n : ℕ, inner (s n) (f x) = (0 : 𝕜) := ae_all_iff.mpr fun n => hf (s n)
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
hs : DenseRange s
hf' : ∀ᵐ (x : α) ∂μ, ∀ (n : ℕ), inner (s n) (f x) = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
refine' hf'.mono fun x hx => _
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
hs : DenseRange s
hf' : ∀ᵐ (x : α) ∂μ, ∀ (n : ℕ), inner (s n) (f x) = 0
x : α
hx : ∀ (n : ℕ), inner (s n) (f x) = 0
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
rw [Pi.zero_apply, ← @inner_self_eq_zero 𝕜]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
hs : DenseRange s
hf' : ∀ᵐ (x : α) ∂μ, ∀ (n : ℕ), inner (s n) (f x) = 0
x : α
hx : ∀ (n : ℕ), inner (s n) (f x) = 0
⊢ inner (f x) (f x) = 0
[PROOFSTEP]
have h_closed : IsClosed {c : E | inner c (f x) = (0 : 𝕜)} :=
  isClosed_eq (continuous_id.inner continuous_const) continuous_const
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : SecondCountableTopology E
f : α → E
hf : ∀ (c : E), (fun x => inner c (f x)) =ᵐ[μ] 0
s : ℕ → E := denseSeq E
hs : DenseRange s
hf' : ∀ᵐ (x : α) ∂μ, ∀ (n : ℕ), inner (s n) (f x) = 0
x : α
hx : ∀ (n : ℕ), inner (s n) (f x) = 0
h_closed : IsClosed {c | inner c (f x) = 0}
⊢ inner (f x) (f x) = 0
[PROOFSTEP]
exact @isClosed_property ℕ E _ s (fun c => inner c (f x) = (0 : 𝕜)) hs h_closed (fun n => hx n) _
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
ht : IsSeparable t
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rcases ht with ⟨d, d_count, hd⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
haveI : Encodable d := d_count.toEncodable
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have : ∀ x : d, ∃ g : E →L[𝕜] 𝕜, ‖g‖ ≤ 1 ∧ g x = ‖(x : E)‖ := fun x => exists_dual_vector'' 𝕜 (x : E)
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
this : ∀ (x : ↑d), ∃ g, ‖g‖ ≤ 1 ∧ ↑g ↑x = ↑‖↑x‖
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
choose s hs using this
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have A : ∀ a : E, a ∈ t → (∀ x, ⟪a, s x⟫ = (0 : 𝕜)) → a = 0 :=
  by
  intro a hat ha
  contrapose! ha
  have a_pos : 0 < ‖a‖ := by simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
  have a_mem : a ∈ closure d := hd hat
  obtain ⟨x, hx⟩ : ∃ x : d, dist a x < ‖a‖ / 2 :=
    by
    rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
    exact ⟨⟨x, h'x⟩, hx⟩
  use x
  have I : ‖a‖ / 2 < ‖(x : E)‖ :=
    by
    have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
    have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx 
    linarith
  intro h
  apply lt_irrefl ‖s x x‖
  calc
    ‖s x x‖ = ‖s x (x - a)‖ := by simp only [h, sub_zero, ContinuousLinearMap.map_sub]
    _ ≤ 1 * ‖(x : E) - a‖ := (ContinuousLinearMap.le_of_op_norm_le _ (hs x).1 _)
    _ < ‖a‖ / 2 := by rw [one_mul]; rwa [dist_eq_norm'] at hx 
    _ < ‖(x : E)‖ := I
    _ = ‖s x x‖ := by rw [(hs x).2, IsROrC.norm_coe_norm]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
⊢ ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
[PROOFSTEP]
intro a hat ha
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : ∀ (x : ↑d), ↑(s x) a = 0
⊢ a = 0
[PROOFSTEP]
contrapose! ha
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
⊢ ∃ x, ↑(s x) a ≠ 0
[PROOFSTEP]
have a_pos : 0 < ‖a‖ := by simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
⊢ 0 < ‖a‖
[PROOFSTEP]
simp only [ha, norm_pos_iff, Ne.def, not_false_iff]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
⊢ ∃ x, ↑(s x) a ≠ 0
[PROOFSTEP]
have a_mem : a ∈ closure d := hd hat
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
⊢ ∃ x, ↑(s x) a ≠ 0
[PROOFSTEP]
obtain ⟨x, hx⟩ : ∃ x : d, dist a x < ‖a‖ / 2 :=
  by
  rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
  exact ⟨⟨x, h'x⟩, hx⟩
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
⊢ ∃ x, dist a ↑x < ‖a‖ / 2
[PROOFSTEP]
rcases Metric.mem_closure_iff.1 a_mem (‖a‖ / 2) (half_pos a_pos) with ⟨x, h'x, hx⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : E
h'x : x ∈ d
hx : dist a x < ‖a‖ / 2
⊢ ∃ x, dist a ↑x < ‖a‖ / 2
[PROOFSTEP]
exact ⟨⟨x, h'x⟩, hx⟩
[GOAL]
case intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ∃ x, ↑(s x) a ≠ 0
[PROOFSTEP]
use x
[GOAL]
case h
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ↑(s x) a ≠ 0
[PROOFSTEP]
have I : ‖a‖ / 2 < ‖(x : E)‖ := by
  have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
  have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx 
  linarith
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
⊢ ‖a‖ / 2 < ‖↑x‖
[PROOFSTEP]
have : ‖a‖ ≤ ‖(x : E)‖ + ‖a - x‖ := norm_le_insert' _ _
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
⊢ ‖a‖ / 2 < ‖↑x‖
[PROOFSTEP]
have : ‖a - x‖ < ‖a‖ / 2 := by rwa [dist_eq_norm] at hx 
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
⊢ ‖a - ↑x‖ < ‖a‖ / 2
[PROOFSTEP]
rwa [dist_eq_norm] at hx 
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this✝¹ : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
this✝ : ‖a‖ ≤ ‖↑x‖ + ‖a - ↑x‖
this : ‖a - ↑x‖ < ‖a‖ / 2
⊢ ‖a‖ / 2 < ‖↑x‖
[PROOFSTEP]
linarith
[GOAL]
case h
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
⊢ ↑(s x) a ≠ 0
[PROOFSTEP]
intro h
[GOAL]
case h
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ False
[PROOFSTEP]
apply lt_irrefl ‖s x x‖
[GOAL]
case h
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑(s x) ↑x‖ < ‖↑(s x) ↑x‖
[PROOFSTEP]
calc
  ‖s x x‖ = ‖s x (x - a)‖ := by simp only [h, sub_zero, ContinuousLinearMap.map_sub]
  _ ≤ 1 * ‖(x : E) - a‖ := (ContinuousLinearMap.le_of_op_norm_le _ (hs x).1 _)
  _ < ‖a‖ / 2 := by rw [one_mul]; rwa [dist_eq_norm'] at hx 
  _ < ‖(x : E)‖ := I
  _ = ‖s x x‖ := by rw [(hs x).2, IsROrC.norm_coe_norm]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑(s x) ↑x‖ = ‖↑(s x) (↑x - a)‖
[PROOFSTEP]
simp only [h, sub_zero, ContinuousLinearMap.map_sub]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ 1 * ‖↑x - a‖ < ‖a‖ / 2
[PROOFSTEP]
rw [one_mul]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑x - a‖ < ‖a‖ / 2
[PROOFSTEP]
rwa [dist_eq_norm'] at hx 
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
a : E
hat : a ∈ t
ha : a ≠ 0
a_pos : 0 < ‖a‖
a_mem : a ∈ closure d
x : ↑d
hx : dist a ↑x < ‖a‖ / 2
I : ‖a‖ / 2 < ‖↑x‖
h : ↑(s x) a = 0
⊢ ‖↑x‖ = ‖↑(s x) ↑x‖
[PROOFSTEP]
rw [(hs x).2, IsROrC.norm_coe_norm]
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hfs : ∀ y : d, ∀ᵐ x ∂μ, ⟪f x, s y⟫ = (0 : 𝕜) := fun y => hf (s y)
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hf' : ∀ᵐ x ∂μ, ∀ y : d, ⟪f x, s y⟫ = (0 : 𝕜) := by rwa [ae_all_iff]
[GOAL]
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
⊢ ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0
[PROOFSTEP]
rwa [ae_all_iff]
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
hf' : ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
filter_upwards [hf', h't] with x hx h'x
[GOAL]
case h
α : Type u_1
E : Type u_2
𝕜 : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
t : Set E
f : α → E
hf : ∀ (c : Dual 𝕜 E), (fun x => ↑c (f x)) =ᵐ[μ] 0
h't : ∀ᵐ (x : α) ∂μ, f x ∈ t
d : Set E
d_count : Set.Countable d
hd : t ⊆ closure d
this : Encodable ↑d
s : ↑d → E →L[𝕜] 𝕜
hs : ∀ (x : ↑d), ‖s x‖ ≤ 1 ∧ ↑(s x) ↑x = ↑‖↑x‖
A : ∀ (a : E), a ∈ t → (∀ (x : ↑d), ↑(s x) a = 0) → a = 0
hfs : ∀ (y : ↑d), ∀ᵐ (x : α) ∂μ, ↑(s y) (f x) = 0
hf' : ∀ᵐ (x : α) ∂μ, ∀ (y : ↑d), ↑(s y) (f x) = 0
x : α
hx : ∀ (y : ↑d), ↑(s y) (f x) = 0
h'x : f x ∈ t
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
exact A (f x) h'x hx
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
⊢ (∀ᵐ (x : α) ∂μ, c ≤ f x) ↔ ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
rw [ae_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
⊢ ↑↑μ {a | ¬c ≤ f a} = 0 ↔ ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
push_neg
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
⊢ ↑↑μ {a | f a < c} = 0 ↔ ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
constructor
[GOAL]
case mp
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
⊢ ↑↑μ {a | f a < c} = 0 → ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
intro h b hb
[GOAL]
case mp
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
h : ↑↑μ {a | f a < c} = 0
b : β
hb : b < c
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
exact measure_mono_null (fun y hy => (lt_of_le_of_lt hy hb : _)) h
[GOAL]
case mpr
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
⊢ (∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0) → ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
intro hc
[GOAL]
case mpr
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
by_cases h : ∀ b, c ≤ b
[GOAL]
case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ∀ (b : β), c ≤ b
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
have : {a : α | f a < c} = ∅ := by
  apply Set.eq_empty_iff_forall_not_mem.2 fun x hx => ?_
  exact (lt_irrefl _ (lt_of_lt_of_le hx (h (f x)))).elim
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ∀ (b : β), c ≤ b
⊢ {a | f a < c} = ∅
[PROOFSTEP]
apply Set.eq_empty_iff_forall_not_mem.2 fun x hx => ?_
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ∀ (b : β), c ≤ b
x : α
hx : x ∈ {a | f a < c}
⊢ False
[PROOFSTEP]
exact (lt_irrefl _ (lt_of_lt_of_le hx (h (f x)))).elim
[GOAL]
case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ∀ (b : β), c ≤ b
this : {a | f a < c} = ∅
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
simp [this]
[GOAL]
case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
by_cases H : ¬IsLUB (Set.Iio c) c
[GOAL]
case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
H : ¬IsLUB (Set.Iio c) c
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
have : c ∈ upperBounds (Set.Iio c) := fun y hy => le_of_lt hy
[GOAL]
case pos
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
H : ¬IsLUB (Set.Iio c) c
this : c ∈ upperBounds (Set.Iio c)
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
obtain ⟨b, b_up, bc⟩ : ∃ b : β, b ∈ upperBounds (Set.Iio c) ∧ b < c := by
  simpa [IsLUB, IsLeast, this, lowerBounds] using H
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
H : ¬IsLUB (Set.Iio c) c
this : c ∈ upperBounds (Set.Iio c)
⊢ ∃ b, b ∈ upperBounds (Set.Iio c) ∧ b < c
[PROOFSTEP]
simpa [IsLUB, IsLeast, this, lowerBounds] using H
[GOAL]
case pos.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
H : ¬IsLUB (Set.Iio c) c
this : c ∈ upperBounds (Set.Iio c)
b : β
b_up : b ∈ upperBounds (Set.Iio c)
bc : b < c
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
exact measure_mono_null (fun x hx => b_up hx) (hc b bc)
[GOAL]
case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
h : ¬∀ (b : β), c ≤ b
H : ¬¬IsLUB (Set.Iio c) c
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
push_neg at H h 
[GOAL]
case neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
obtain ⟨u, _, u_lt, u_lim, -⟩ :
  ∃ u : ℕ → β, StrictMono u ∧ (∀ n : ℕ, u n < c) ∧ Tendsto u atTop (nhds c) ∧ ∀ n : ℕ, u n ∈ Set.Iio c :=
  H.exists_seq_strictMono_tendsto_of_not_mem (lt_irrefl c) h
[GOAL]
case neg.intro.intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
have h_Union : {x | f x < c} = ⋃ n : ℕ, {x | f x ≤ u n} :=
  by
  ext1 x
  simp_rw [Set.mem_iUnion, Set.mem_setOf_eq]
  constructor <;> intro h
  · obtain ⟨n, hn⟩ := ((tendsto_order.1 u_lim).1 _ h).exists; exact ⟨n, hn.le⟩
  · obtain ⟨n, hn⟩ := h; exact hn.trans_lt (u_lt _)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
⊢ {x | f x < c} = ⋃ (n : ℕ), {x | f x ≤ u n}
[PROOFSTEP]
ext1 x
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
⊢ x ∈ {x | f x < c} ↔ x ∈ ⋃ (n : ℕ), {x | f x ≤ u n}
[PROOFSTEP]
simp_rw [Set.mem_iUnion, Set.mem_setOf_eq]
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
⊢ f x < c ↔ ∃ i, f x ≤ u i
[PROOFSTEP]
constructor
[GOAL]
case h.mp
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
⊢ f x < c → ∃ i, f x ≤ u i
[PROOFSTEP]
intro h
[GOAL]
case h.mpr
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
⊢ (∃ i, f x ≤ u i) → f x < c
[PROOFSTEP]
intro h
[GOAL]
case h.mp
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h✝ : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
h : f x < c
⊢ ∃ i, f x ≤ u i
[PROOFSTEP]
obtain ⟨n, hn⟩ := ((tendsto_order.1 u_lim).1 _ h).exists
[GOAL]
case h.mp.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h✝ : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
h : f x < c
n : ℕ
hn : f x < u n
⊢ ∃ i, f x ≤ u i
[PROOFSTEP]
exact ⟨n, hn.le⟩
[GOAL]
case h.mpr
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h✝ : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
h : ∃ i, f x ≤ u i
⊢ f x < c
[PROOFSTEP]
obtain ⟨n, hn⟩ := h
[GOAL]
case h.mpr.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
x : α
n : ℕ
hn : f x ≤ u n
⊢ f x < c
[PROOFSTEP]
exact hn.trans_lt (u_lt _)
[GOAL]
case neg.intro.intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
h_Union : {x | f x < c} = ⋃ (n : ℕ), {x | f x ≤ u n}
⊢ ↑↑μ {a | f a < c} = 0
[PROOFSTEP]
rw [h_Union, measure_iUnion_null_iff]
[GOAL]
case neg.intro.intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
h_Union : {x | f x < c} = ⋃ (n : ℕ), {x | f x ≤ u n}
⊢ ∀ (i : ℕ), ↑↑μ {x | f x ≤ u i} = 0
[PROOFSTEP]
intro n
[GOAL]
case neg.intro.intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝³ : LinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderTopology β
inst✝ : FirstCountableTopology β
f : α → β
c : β
hc : ∀ (b : β), b < c → ↑↑μ {x | f x ≤ b} = 0
H : IsLUB (Set.Iio c) c
h : ∃ b, b < c
u : ℕ → β
left✝ : StrictMono u
u_lt : ∀ (n : ℕ), u n < c
u_lim : Tendsto u atTop (𝓝 c)
h_Union : {x | f x < c} = ⋃ (n : ℕ), {x | f x ≤ u n}
n : ℕ
⊢ ↑↑μ {x | f x ≤ u n} = 0
[PROOFSTEP]
exact hc _ (u_lt n)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
have A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → μ ({x | g x + ε ≤ f x ∧ g x ≤ N} ∩ spanningSets μ p) = 0 :=
  by
  intro ε N p εpos
  let s := {x | g x + ε ≤ f x ∧ g x ≤ N} ∩ spanningSets μ p
  have s_meas : MeasurableSet s :=
    by
    have A : MeasurableSet {x | g x + ε ≤ f x} := measurableSet_le (hg.add measurable_const) hf
    have B : MeasurableSet {x | g x ≤ N} := measurableSet_le hg measurable_const
    exact (A.inter B).inter (measurable_spanningSets μ p)
  have s_lt_top : μ s < ∞ := (measure_mono (Set.inter_subset_right _ _)).trans_lt (measure_spanningSets_lt_top μ p)
  have A : (∫⁻ x in s, g x ∂μ) + ε * μ s ≤ (∫⁻ x in s, g x ∂μ) + 0 :=
    calc
      (∫⁻ x in s, g x ∂μ) + ε * μ s = (∫⁻ x in s, g x ∂μ) + ∫⁻ _ in s, ε ∂μ := by
        simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
      _ = ∫⁻ x in s, g x + ε ∂μ := (lintegral_add_right _ measurable_const).symm
      _ ≤ ∫⁻ x in s, f x ∂μ := (set_lintegral_mono (hg.add measurable_const) hf fun x hx => hx.1.1)
      _ ≤ (∫⁻ x in s, g x ∂μ) + 0 := by rw [add_zero]; exact h s s_meas s_lt_top
  have B : (∫⁻ x in s, g x ∂μ) ≠ ∞ := by
    apply ne_of_lt
    calc
      (∫⁻ x in s, g x ∂μ) ≤ ∫⁻ _ in s, N ∂μ := set_lintegral_mono hg measurable_const fun x hx => hx.1.2
      _ = N * μ s := by simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
      _ < ∞ := by
        simp only [lt_top_iff_ne_top, s_lt_top.ne, and_false_iff, ENNReal.coe_ne_top, ENNReal.mul_eq_top, Ne.def,
          not_false_iff, false_and_iff, or_self_iff]
  have : (ε : ℝ≥0∞) * μ s ≤ 0 := ENNReal.le_of_add_le_add_left B A
  simpa only [ENNReal.coe_eq_zero, nonpos_iff_eq_zero, mul_eq_zero, εpos.ne', false_or_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
⊢ ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
intro ε N p εpos
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
let s := {x | g x + ε ≤ f x ∧ g x ≤ N} ∩ spanningSets μ p
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
have s_meas : MeasurableSet s :=
  by
  have A : MeasurableSet {x | g x + ε ≤ f x} := measurableSet_le (hg.add measurable_const) hf
  have B : MeasurableSet {x | g x ≤ N} := measurableSet_le hg measurable_const
  exact (A.inter B).inter (measurable_spanningSets μ p)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
⊢ MeasurableSet s
[PROOFSTEP]
have A : MeasurableSet {x | g x + ε ≤ f x} := measurableSet_le (hg.add measurable_const) hf
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
A : MeasurableSet {x | g x + ↑ε ≤ f x}
⊢ MeasurableSet s
[PROOFSTEP]
have B : MeasurableSet {x | g x ≤ N} := measurableSet_le hg measurable_const
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
A : MeasurableSet {x | g x + ↑ε ≤ f x}
B : MeasurableSet {x | g x ≤ ↑N}
⊢ MeasurableSet s
[PROOFSTEP]
exact (A.inter B).inter (measurable_spanningSets μ p)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
have s_lt_top : μ s < ∞ := (measure_mono (Set.inter_subset_right _ _)).trans_lt (measure_spanningSets_lt_top μ p)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
have A : (∫⁻ x in s, g x ∂μ) + ε * μ s ≤ (∫⁻ x in s, g x ∂μ) + 0 :=
  calc
    (∫⁻ x in s, g x ∂μ) + ε * μ s = (∫⁻ x in s, g x ∂μ) + ∫⁻ _ in s, ε ∂μ := by
      simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
    _ = ∫⁻ x in s, g x + ε ∂μ := (lintegral_add_right _ measurable_const).symm
    _ ≤ ∫⁻ x in s, f x ∂μ := (set_lintegral_mono (hg.add measurable_const) hf fun x hx => hx.1.1)
    _ ≤ (∫⁻ x in s, g x ∂μ) + 0 := by rw [add_zero]; exact h s s_meas s_lt_top
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
⊢ ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s = ∫⁻ (x : α) in s, g x ∂μ + ∫⁻ (x : α) in s, ↑ε ∂μ
[PROOFSTEP]
simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
⊢ ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
[PROOFSTEP]
rw [add_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
⊢ ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
[PROOFSTEP]
exact h s s_meas s_lt_top
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
have B : (∫⁻ x in s, g x ∂μ) ≠ ∞ := by
  apply ne_of_lt
  calc
    (∫⁻ x in s, g x ∂μ) ≤ ∫⁻ _ in s, N ∂μ := set_lintegral_mono hg measurable_const fun x hx => hx.1.2
    _ = N * μ s := by simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
    _ < ∞ := by
      simp only [lt_top_iff_ne_top, s_lt_top.ne, and_false_iff, ENNReal.coe_ne_top, ENNReal.mul_eq_top, Ne.def,
        not_false_iff, false_and_iff, or_self_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
⊢ ∫⁻ (x : α) in s, g x ∂μ ≠ ⊤
[PROOFSTEP]
apply ne_of_lt
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
⊢ ∫⁻ (x : α) in s, g x ∂μ < ⊤
[PROOFSTEP]
calc
  (∫⁻ x in s, g x ∂μ) ≤ ∫⁻ _ in s, N ∂μ := set_lintegral_mono hg measurable_const fun x hx => hx.1.2
  _ = N * μ s := by simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
  _ < ∞ := by
    simp only [lt_top_iff_ne_top, s_lt_top.ne, and_false_iff, ENNReal.coe_ne_top, ENNReal.mul_eq_top, Ne.def,
      not_false_iff, false_and_iff, or_self_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
⊢ ∫⁻ (x : α) in s, ↑N ∂μ = ↑N * ↑↑μ s
[PROOFSTEP]
simp only [lintegral_const, Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
⊢ ↑N * ↑↑μ s < ⊤
[PROOFSTEP]
simp only [lt_top_iff_ne_top, s_lt_top.ne, and_false_iff, ENNReal.coe_ne_top, ENNReal.mul_eq_top, Ne.def, not_false_iff,
  false_and_iff, or_self_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
B : ∫⁻ (x : α) in s, g x ∂μ ≠ ⊤
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
have : (ε : ℝ≥0∞) * μ s ≤ 0 := ENNReal.le_of_add_le_add_left B A
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p✝ : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
ε N : ℝ≥0
p : ℕ
εpos : 0 < ε
s : Set α := {x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p
s_meas : MeasurableSet s
s_lt_top : ↑↑μ s < ⊤
A : ∫⁻ (x : α) in s, g x ∂μ + ↑ε * ↑↑μ s ≤ ∫⁻ (x : α) in s, g x ∂μ + 0
B : ∫⁻ (x : α) in s, g x ∂μ ≠ ⊤
this : ↑ε * ↑↑μ s ≤ 0
⊢ ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
[PROOFSTEP]
simpa only [ENNReal.coe_eq_zero, nonpos_iff_eq_zero, mul_eq_zero, εpos.ne', false_or_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
obtain ⟨u, _, u_pos, u_lim⟩ : ∃ u : ℕ → ℝ≥0, StrictAnti u ∧ (∀ n, 0 < u n) ∧ Tendsto u atTop (nhds 0) :=
  exists_seq_strictAnti_tendsto (0 : ℝ≥0)
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
let s := fun n : ℕ => {x | g x + u n ≤ f x ∧ g x ≤ (n : ℝ≥0)} ∩ spanningSets μ n
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
have μs : ∀ n, μ (s n) = 0 := fun n => A _ _ _ (u_pos n)
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
have B : {x | f x ≤ g x}ᶜ ⊆ ⋃ n, s n := by
  intro x hx
  simp only [Set.mem_compl_iff, Set.mem_setOf, not_le] at hx 
  have L1 : ∀ᶠ n in atTop, g x + u n ≤ f x :=
    by
    have : Tendsto (fun n => g x + u n) atTop (𝓝 (g x + (0 : ℝ≥0))) :=
      tendsto_const_nhds.add (ENNReal.tendsto_coe.2 u_lim)
    simp only [ENNReal.coe_zero, add_zero] at this 
    exact eventually_le_of_tendsto_lt hx this
  have L2 : ∀ᶠ n : ℕ in (atTop : Filter ℕ), g x ≤ (n : ℝ≥0) :=
    haveI : Tendsto (fun n : ℕ => ((n : ℝ≥0) : ℝ≥0∞)) atTop (𝓝 ∞) :=
      by
      simp only [ENNReal.coe_nat]
      exact ENNReal.tendsto_nat_nhds_top
    eventually_ge_of_tendsto_gt (hx.trans_le le_top) this
  apply Set.mem_iUnion.2
  exact ((L1.and L2).and (eventually_mem_spanningSets μ x)).exists
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
⊢ {x | f x ≤ g x}ᶜ ⊆ ⋃ (n : ℕ), s n
[PROOFSTEP]
intro x hx
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : x ∈ {x | f x ≤ g x}ᶜ
⊢ x ∈ ⋃ (n : ℕ), s n
[PROOFSTEP]
simp only [Set.mem_compl_iff, Set.mem_setOf, not_le] at hx 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
⊢ x ∈ ⋃ (n : ℕ), s n
[PROOFSTEP]
have L1 : ∀ᶠ n in atTop, g x + u n ≤ f x :=
  by
  have : Tendsto (fun n => g x + u n) atTop (𝓝 (g x + (0 : ℝ≥0))) :=
    tendsto_const_nhds.add (ENNReal.tendsto_coe.2 u_lim)
  simp only [ENNReal.coe_zero, add_zero] at this 
  exact eventually_le_of_tendsto_lt hx this
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
⊢ ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
[PROOFSTEP]
have : Tendsto (fun n => g x + u n) atTop (𝓝 (g x + (0 : ℝ≥0))) := tendsto_const_nhds.add (ENNReal.tendsto_coe.2 u_lim)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
this : Tendsto (fun n => g x + ↑(u n)) atTop (𝓝 (g x + ↑0))
⊢ ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
[PROOFSTEP]
simp only [ENNReal.coe_zero, add_zero] at this 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
this : Tendsto (fun n => g x + ↑(u n)) atTop (𝓝 (g x))
⊢ ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
[PROOFSTEP]
exact eventually_le_of_tendsto_lt hx this
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
L1 : ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
⊢ x ∈ ⋃ (n : ℕ), s n
[PROOFSTEP]
have L2 : ∀ᶠ n : ℕ in (atTop : Filter ℕ), g x ≤ (n : ℝ≥0) :=
  haveI : Tendsto (fun n : ℕ => ((n : ℝ≥0) : ℝ≥0∞)) atTop (𝓝 ∞) :=
    by
    simp only [ENNReal.coe_nat]
    exact ENNReal.tendsto_nat_nhds_top
  eventually_ge_of_tendsto_gt (hx.trans_le le_top) this
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
L1 : ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
⊢ Tendsto (fun n => ↑↑n) atTop (𝓝 ⊤)
[PROOFSTEP]
simp only [ENNReal.coe_nat]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
L1 : ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
⊢ Tendsto (fun n => ↑n) atTop (𝓝 ⊤)
[PROOFSTEP]
exact ENNReal.tendsto_nat_nhds_top
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
L1 : ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
L2 : ∀ᶠ (n : ℕ) in atTop, g x ≤ ↑↑n
⊢ x ∈ ⋃ (n : ℕ), s n
[PROOFSTEP]
apply Set.mem_iUnion.2
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
x : α
hx : g x < f x
L1 : ∀ᶠ (n : ℕ) in atTop, g x + ↑(u n) ≤ f x
L2 : ∀ᶠ (n : ℕ) in atTop, g x ≤ ↑↑n
⊢ ∃ i, x ∈ s i
[PROOFSTEP]
exact ((L1.and L2).and (eventually_mem_spanningSets μ x)).exists
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
B : {x | f x ≤ g x}ᶜ ⊆ ⋃ (n : ℕ), s n
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
refine' le_antisymm _ bot_le
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
B : {x | f x ≤ g x}ᶜ ⊆ ⋃ (n : ℕ), s n
⊢ ↑↑μ {x | (fun x => f x ≤ g x) x}ᶜ ≤ 0
[PROOFSTEP]
calc
  μ {x : α | (fun x : α => f x ≤ g x) x}ᶜ ≤ μ (⋃ n, s n) := measure_mono B
  _ ≤ ∑' n, μ (s n) := (measure_iUnion_le _)
  _ = 0 := by simp only [μs, tsum_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α) in s, g x ∂μ
A : ∀ (ε N : ℝ≥0) (p : ℕ), 0 < ε → ↑↑μ ({x | g x + ↑ε ≤ f x ∧ g x ≤ ↑N} ∩ spanningSets μ p) = 0
u : ℕ → ℝ≥0
left✝ : StrictAnti u
u_pos : ∀ (n : ℕ), 0 < u n
u_lim : Tendsto u atTop (𝓝 0)
s : ℕ → Set α := fun n => {x | g x + ↑(u n) ≤ f x ∧ g x ≤ ↑↑n} ∩ spanningSets μ n
μs : ∀ (n : ℕ), ↑↑μ (s n) = 0
B : {x | f x ≤ g x}ᶜ ⊆ ⋃ (n : ℕ), s n
⊢ ∑' (n : ℕ), ↑↑μ (s n) = 0
[PROOFSTEP]
simp only [μs, tsum_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
⊢ f =ᵐ[μ] g
[PROOFSTEP]
have A : f ≤ᵐ[μ] g := ae_le_of_forall_set_lintegral_le_of_sigmaFinite hf hg fun s hs h's => le_of_eq (h s hs h's)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᵐ[μ] g
⊢ f =ᵐ[μ] g
[PROOFSTEP]
have B : g ≤ᵐ[μ] f := ae_le_of_forall_set_lintegral_le_of_sigmaFinite hg hf fun s hs h's => ge_of_eq (h s hs h's)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : Measurable f
hg : Measurable g
h : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᵐ[μ] g
B : g ≤ᵐ[μ] f
⊢ f =ᵐ[μ] g
[PROOFSTEP]
filter_upwards [A, B] with x using le_antisymm
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
simp_rw [EventuallyLE, Pi.zero_apply]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ ∀ᵐ (x : α) ∂μ, 0 ≤ f x
[PROOFSTEP]
rw [ae_const_le_iff_forall_lt_measure_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ ∀ (b : ℝ), b < 0 → ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
intro b hb_neg
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
let s := {x | f x ≤ b}
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
have hs : MeasurableSet s := hfm.measurableSet_le stronglyMeasurable_const
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
have mus : μ s < ∞ := by
  let c : ℝ≥0 := ⟨|b|, abs_nonneg _⟩
  have c_pos : (c : ℝ≥0∞) ≠ 0 := by simpa [← NNReal.coe_eq_zero] using hb_neg.ne
  calc
    μ s ≤ μ {x | (c : ℝ≥0∞) ≤ ‖f x‖₊} := by
      apply measure_mono
      intro x hx
      simp only [Set.mem_setOf_eq] at hx 
      simpa only [nnnorm, abs_of_neg hb_neg, abs_of_neg (hx.trans_lt hb_neg), Real.norm_eq_abs, Subtype.mk_le_mk,
        neg_le_neg_iff, Set.mem_setOf_eq, ENNReal.coe_le_coe, NNReal] using hx
    _ ≤ (∫⁻ x, ‖f x‖₊ ∂μ) / c := (meas_ge_le_lintegral_div hfm.aemeasurable.ennnorm c_pos ENNReal.coe_ne_top)
    _ < ∞ := ENNReal.div_lt_top (ne_of_lt hf.2) c_pos
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
⊢ ↑↑μ s < ⊤
[PROOFSTEP]
let c : ℝ≥0 := ⟨|b|, abs_nonneg _⟩
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
⊢ ↑↑μ s < ⊤
[PROOFSTEP]
have c_pos : (c : ℝ≥0∞) ≠ 0 := by simpa [← NNReal.coe_eq_zero] using hb_neg.ne
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
⊢ ↑c ≠ 0
[PROOFSTEP]
simpa [← NNReal.coe_eq_zero] using hb_neg.ne
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
c_pos : ↑c ≠ 0
⊢ ↑↑μ s < ⊤
[PROOFSTEP]
calc
  μ s ≤ μ {x | (c : ℝ≥0∞) ≤ ‖f x‖₊} := by
    apply measure_mono
    intro x hx
    simp only [Set.mem_setOf_eq] at hx 
    simpa only [nnnorm, abs_of_neg hb_neg, abs_of_neg (hx.trans_lt hb_neg), Real.norm_eq_abs, Subtype.mk_le_mk,
      neg_le_neg_iff, Set.mem_setOf_eq, ENNReal.coe_le_coe, NNReal] using hx
  _ ≤ (∫⁻ x, ‖f x‖₊ ∂μ) / c := (meas_ge_le_lintegral_div hfm.aemeasurable.ennnorm c_pos ENNReal.coe_ne_top)
  _ < ∞ := ENNReal.div_lt_top (ne_of_lt hf.2) c_pos
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
c_pos : ↑c ≠ 0
⊢ ↑↑μ s ≤ ↑↑μ {x | ↑c ≤ ↑‖f x‖₊}
[PROOFSTEP]
apply measure_mono
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
c_pos : ↑c ≠ 0
⊢ s ⊆ {x | ↑c ≤ ↑‖f x‖₊}
[PROOFSTEP]
intro x hx
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
c_pos : ↑c ≠ 0
x : α
hx : x ∈ s
⊢ x ∈ {x | ↑c ≤ ↑‖f x‖₊}
[PROOFSTEP]
simp only [Set.mem_setOf_eq] at hx 
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
c : ℝ≥0 := { val := |b|, property := (_ : 0 ≤ |b|) }
c_pos : ↑c ≠ 0
x : α
hx : f x ≤ b
⊢ x ∈ {x | ↑c ≤ ↑‖f x‖₊}
[PROOFSTEP]
simpa only [nnnorm, abs_of_neg hb_neg, abs_of_neg (hx.trans_lt hb_neg), Real.norm_eq_abs, Subtype.mk_le_mk,
  neg_le_neg_iff, Set.mem_setOf_eq, ENNReal.coe_le_coe, NNReal] using hx
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
have h_int_gt : (∫ x in s, f x ∂μ) ≤ b * (μ s).toReal :=
  by
  have h_const_le : (∫ x in s, f x ∂μ) ≤ ∫ _ in s, b ∂μ :=
    by
    refine' set_integral_mono_ae_restrict hf.integrableOn (integrableOn_const.mpr (Or.inr mus)) _
    rw [EventuallyLE, ae_restrict_iff hs]
    exact eventually_of_forall fun x hxs => hxs
  rwa [set_integral_const, smul_eq_mul, mul_comm] at h_const_le 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
[PROOFSTEP]
have h_const_le : (∫ x in s, f x ∂μ) ≤ ∫ _ in s, b ∂μ :=
  by
  refine' set_integral_mono_ae_restrict hf.integrableOn (integrableOn_const.mpr (Or.inr mus)) _
  rw [EventuallyLE, ae_restrict_iff hs]
  exact eventually_of_forall fun x hxs => hxs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, b ∂μ
[PROOFSTEP]
refine' set_integral_mono_ae_restrict hf.integrableOn (integrableOn_const.mpr (Or.inr mus)) _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
⊢ (fun x => f x) ≤ᵐ[Measure.restrict μ s] fun x => b
[PROOFSTEP]
rw [EventuallyLE, ae_restrict_iff hs]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
⊢ ∀ᵐ (x : α) ∂μ, x ∈ s → f x ≤ b
[PROOFSTEP]
exact eventually_of_forall fun x hxs => hxs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_const_le : ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, b ∂μ
⊢ ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
[PROOFSTEP]
rwa [set_integral_const, smul_eq_mul, mul_comm] at h_const_le 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
by_contra h
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ False
[PROOFSTEP]
refine' (lt_self_iff_false (∫ x in s, f x ∂μ)).mp (h_int_gt.trans_lt _)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ b * ENNReal.toReal (↑↑μ s) < ∫ (x : α) in s, f x ∂μ
[PROOFSTEP]
refine' (mul_neg_iff.mpr (Or.inr ⟨hb_neg, _⟩)).trans_le _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ 0 < ENNReal.toReal (↑↑μ s)
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ 0 ≤ ∫ (x : α) in s, f x ∂μ
[PROOFSTEP]
swap
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ 0 ≤ ∫ (x : α) in s, f x ∂μ
[PROOFSTEP]
exact hf_zero s hs mus
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
⊢ 0 < ENNReal.toReal (↑↑μ s)
[PROOFSTEP]
refine' ENNReal.toReal_nonneg.lt_of_ne fun h_eq => h _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
h_eq : 0 = ENNReal.toReal (↑↑μ s)
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
cases' (ENNReal.toReal_eq_zero_iff _).mp h_eq.symm with hμs_eq_zero hμs_eq_top
[GOAL]
case refine'_1.inl
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
h_eq : 0 = ENNReal.toReal (↑↑μ s)
hμs_eq_zero : ↑↑μ s = 0
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
exact hμs_eq_zero
[GOAL]
case refine'_1.inr
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hfm : StronglyMeasurable f
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
b : ℝ
hb_neg : b < 0
s : Set α := {x | f x ≤ b}
hs : MeasurableSet s
mus : ↑↑μ s < ⊤
h_int_gt : ∫ (x : α) in s, f x ∂μ ≤ b * ENNReal.toReal (↑↑μ s)
h : ¬↑↑μ {x | f x ≤ b} = 0
h_eq : 0 = ENNReal.toReal (↑↑μ s)
hμs_eq_top : ↑↑μ s = ⊤
⊢ ↑↑μ {x | f x ≤ b} = 0
[PROOFSTEP]
exact absurd hμs_eq_top mus.ne
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
rcases hf.1 with ⟨f', hf'_meas, hf_ae⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
have hf'_integrable : Integrable f' μ := Integrable.congr hf hf_ae
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
hf'_integrable : Integrable f'
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
have hf'_zero : ∀ s, MeasurableSet s → μ s < ∞ → 0 ≤ ∫ x in s, f' x ∂μ :=
  by
  intro s hs h's
  rw [set_integral_congr_ae hs (hf_ae.mono fun x hx _ => hx.symm)]
  exact hf_zero s hs h's
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
hf'_integrable : Integrable f'
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f' x ∂μ
[PROOFSTEP]
intro s hs h's
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
hf'_integrable : Integrable f'
s : Set α
hs : MeasurableSet s
h's : ↑↑μ s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f' x ∂μ
[PROOFSTEP]
rw [set_integral_congr_ae hs (hf_ae.mono fun x hx _ => hx.symm)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
hf'_integrable : Integrable f'
s : Set α
hs : MeasurableSet s
h's : ↑↑μ s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f x ∂μ
[PROOFSTEP]
exact hf_zero s hs h's
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → ℝ
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
f' : α → ℝ
hf'_meas : StronglyMeasurable f'
hf_ae : f =ᵐ[μ] f'
hf'_integrable : Integrable f'
hf'_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f' x ∂μ
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
exact
  (ae_nonneg_of_forall_set_integral_nonneg_of_stronglyMeasurable hf'_meas hf'_integrable hf'_zero).trans hf_ae.symm.le
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f g : α → ℝ
hf : Integrable f
hg : Integrable g
hf_le : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, g x ∂μ
⊢ f ≤ᵐ[μ] g
[PROOFSTEP]
rw [← eventually_sub_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f g : α → ℝ
hf : Integrable f
hg : Integrable g
hf_le : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, g x ∂μ
⊢ 0 ≤ᵐ[μ] g - f
[PROOFSTEP]
refine' ae_nonneg_of_forall_set_integral_nonneg (hg.sub hf) fun s hs => _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f g : α → ℝ
hf : Integrable f
hg : Integrable g
hf_le : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, (g - f) x ∂μ
[PROOFSTEP]
rw [integral_sub' hg.integrableOn hf.integrableOn, sub_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f g : α → ℝ
hf : Integrable f
hg : Integrable g
hf_le : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ ≤ ∫ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
⊢ ↑↑μ s < ⊤ → ∫ (a : α) in s, f a ∂μ ≤ ∫ (a : α) in s, g a ∂μ
[PROOFSTEP]
exact hf_le s hs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
⊢ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
refine' ae_nonneg_of_forall_set_integral_nonneg hf fun s hs h's => _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : ↑↑(Measure.restrict μ t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f x ∂Measure.restrict μ t
[PROOFSTEP]
simp_rw [Measure.restrict_restrict hs]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : ↑↑(Measure.restrict μ t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
apply hf_zero s hs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
t : Set α
hf : IntegrableOn f t
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
s : Set α
hs : MeasurableSet s
h's : ↑↑(Measure.restrict μ t) s < ⊤
⊢ ↑↑μ (s ∩ t) < ⊤
[PROOFSTEP]
rwa [Measure.restrict_apply hs] at h's 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
f✝ : α → ℝ
inst✝ : SigmaFinite μ
f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
apply ae_of_forall_measure_lt_top_ae_restrict
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
f✝ : α → ℝ
inst✝ : SigmaFinite μ
f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ᵐ (x : α) ∂Measure.restrict μ s, OfNat.ofNat 0 x ≤ f x
[PROOFSTEP]
intro t t_meas t_lt_top
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
f✝ : α → ℝ
inst✝ : SigmaFinite μ
f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
t_meas : MeasurableSet t
t_lt_top : ↑↑μ t < ⊤
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ t, OfNat.ofNat 0 x ≤ f x
[PROOFSTEP]
apply ae_nonneg_restrict_of_forall_set_integral_nonneg_inter (hf_int_finite t t_meas t_lt_top)
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
f✝ : α → ℝ
inst✝ : SigmaFinite μ
f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
t_meas : MeasurableSet t
t_lt_top : ↑↑μ t < ⊤
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ (s ∩ t) < ⊤ → 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
intro s s_meas _
[GOAL]
case h
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
f✝ : α → ℝ
inst✝ : SigmaFinite μ
f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
t_meas : MeasurableSet t
t_lt_top : ↑↑μ t < ⊤
s : Set α
s_meas : MeasurableSet s
a✝ : ↑↑μ (s ∩ t) < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
exact hf_zero _ (s_meas.inter t_meas) (lt_of_le_of_lt (measure_mono (Set.inter_subset_right _ _)) t_lt_top)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
let t := hf.sigmaFiniteSet
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
⊢ 0 ≤ᵐ[μ] f
[PROOFSTEP]
suffices 0 ≤ᵐ[μ.restrict t] f from ae_of_ae_restrict_of_ae_restrict_compl _ this hf.ae_eq_zero_compl.symm.le
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
⊢ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
haveI : SigmaFinite (μ.restrict t) := hf.sigmaFinite_restrict
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
⊢ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
refine' ae_nonneg_of_forall_set_integral_nonneg_of_sigmaFinite (fun s hs hμts => _) fun s hs hμts => _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑(Measure.restrict μ t) s < ⊤
⊢ IntegrableOn f s
[PROOFSTEP]
rw [IntegrableOn, Measure.restrict_restrict hs]
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑(Measure.restrict μ t) s < ⊤
⊢ Integrable f
[PROOFSTEP]
rw [Measure.restrict_apply hs] at hμts 
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑μ (s ∩ t) < ⊤
⊢ Integrable f
[PROOFSTEP]
exact hf_int_finite (s ∩ t) (hs.inter hf.measurableSet) hμts
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑(Measure.restrict μ t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, f x ∂Measure.restrict μ t
[PROOFSTEP]
rw [Measure.restrict_restrict hs]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑(Measure.restrict μ t) s < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
rw [Measure.restrict_apply hs] at hμts 
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf : AEFinStronglyMeasurable f μ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμts : ↑↑μ (s ∩ t) < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
exact hf_zero (s ∩ t) (hs.inter hf.measurableSet) hμts
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
refine'
  ae_nonneg_restrict_of_forall_set_integral_nonneg_inter (hf_int_finite t ht (lt_top_iff_ne_top.mpr hμt)) fun s hs _ =>
    _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
x✝ : ↑↑μ (s ∩ t) < ⊤
⊢ 0 ≤ ∫ (x : α) in s ∩ t, f x ∂μ
[PROOFSTEP]
refine' hf_zero (s ∩ t) (hs.inter ht) _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → 0 ≤ ∫ (x : α) in s, f x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
x✝ : ↑↑μ (s ∩ t) < ⊤
⊢ ↑↑μ (s ∩ t) < ⊤
[PROOFSTEP]
exact (measure_mono (Set.inter_subset_right s t)).trans_lt (lt_top_iff_ne_top.mpr hμt)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
suffices h_and : f ≤ᵐ[μ.restrict t] 0 ∧ 0 ≤ᵐ[μ.restrict t] f
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
h_and : f ≤ᵐ[Measure.restrict μ t] 0 ∧ 0 ≤ᵐ[Measure.restrict μ t] f
⊢ f =ᵐ[Measure.restrict μ t] 0
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f ≤ᵐ[Measure.restrict μ t] 0 ∧ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
exact h_and.1.mp (h_and.2.mono fun x hx1 hx2 => le_antisymm hx2 hx1)
[GOAL]
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f ≤ᵐ[Measure.restrict μ t] 0 ∧ 0 ≤ᵐ[Measure.restrict μ t] f
[PROOFSTEP]
refine'
  ⟨_,
    ae_nonneg_restrict_of_forall_set_integral_nonneg hf_int_finite (fun s hs hμs => (hf_zero s hs hμs).symm.le) ht hμt⟩
[GOAL]
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f ≤ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
suffices h_neg : 0 ≤ᵐ[μ.restrict t] -f
[GOAL]
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
h_neg : 0 ≤ᵐ[Measure.restrict μ t] -f
⊢ f ≤ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
refine' h_neg.mono fun x hx => _
[GOAL]
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
h_neg : 0 ≤ᵐ[Measure.restrict μ t] -f
x : α
hx : OfNat.ofNat 0 x ≤ (-f) x
⊢ f x ≤ OfNat.ofNat 0 x
[PROOFSTEP]
rw [Pi.neg_apply] at hx 
[GOAL]
case h_and
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
h_neg : 0 ≤ᵐ[Measure.restrict μ t] -f
x : α
hx : OfNat.ofNat 0 x ≤ -f x
⊢ f x ≤ OfNat.ofNat 0 x
[PROOFSTEP]
simpa using hx
[GOAL]
case h_neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ 0 ≤ᵐ[Measure.restrict μ t] -f
[PROOFSTEP]
refine'
  ae_nonneg_restrict_of_forall_set_integral_nonneg (fun s hs hμs => (hf_int_finite s hs hμs).neg) (fun s hs hμs => _) ht
    hμt
[GOAL]
case h_neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, (-f) x ∂μ
[PROOFSTEP]
simp_rw [Pi.neg_apply]
[GOAL]
case h_neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ 0 ≤ ∫ (x : α) in s, -f x ∂μ
[PROOFSTEP]
rw [integral_neg, neg_nonneg]
[GOAL]
case h_neg
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f✝ f : α → ℝ
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (a : α) in s, f a ∂μ ≤ 0
[PROOFSTEP]
exact (hf_zero s hs hμs).le
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
rcases(hf_int_finite t ht hμt.lt_top).aestronglyMeasurable.isSeparable_ae_range with ⟨u, u_sep, hu⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
refine' ae_eq_zero_of_forall_dual_of_isSeparable ℝ u_sep (fun c => _) hu
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
⊢ (fun x => ↑c (f x)) =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
refine' ae_eq_zero_restrict_of_forall_set_integral_eq_zero_real _ _ ht hμt
[GOAL]
case intro.intro.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn (fun x => ↑c (f x)) s
[PROOFSTEP]
intro s hs hμs
[GOAL]
case intro.intro.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ IntegrableOn (fun x => ↑c (f x)) s
[PROOFSTEP]
exact ContinuousLinearMap.integrable_comp c (hf_int_finite s hs hμs)
[GOAL]
case intro.intro.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, ↑c (f x) ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
case intro.intro.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, ↑c (f x) ∂μ = 0
[PROOFSTEP]
rw [ContinuousLinearMap.integral_comp_comm c (hf_int_finite s hs hμs), hf_zero s hs hμs]
[GOAL]
case intro.intro.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
u : Set E
u_sep : IsSeparable u
hu : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ u
c : Dual ℝ E
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ↑c 0 = 0
[PROOFSTEP]
exact ContinuousLinearMap.map_zero _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f =ᵐ[Measure.restrict μ t] g
[PROOFSTEP]
rw [← sub_ae_eq_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ f - g =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
have hfg' : ∀ s : Set α, MeasurableSet s → μ s < ∞ → (∫ x in s, (f - g) x ∂μ) = 0 :=
  by
  intro s hs hμs
  rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs)]
  exact sub_eq_zero.mpr (hfg_zero s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (a : α) in s, f a ∂μ - ∫ (a : α) in s, g a ∂μ = 0
[PROOFSTEP]
exact sub_eq_zero.mpr (hfg_zero s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
hfg' : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
⊢ f - g =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
have hfg_int : ∀ s, MeasurableSet s → μ s < ∞ → IntegrableOn (f - g) s μ := fun s hs hμs =>
  (hf_int_finite s hs hμs).sub (hg_int_finite s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
t : Set α
ht : MeasurableSet t
hμt : ↑↑μ t ≠ ⊤
hfg' : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
hfg_int : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn (f - g) s
⊢ f - g =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
exact ae_eq_zero_restrict_of_forall_set_integral_eq_zero hfg_int hfg' ht hμt
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
let S := spanningSets μ
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rw [← @Measure.restrict_univ _ _ μ, ← iUnion_spanningSets μ, EventuallyEq, ae_iff,
  Measure.restrict_apply' (MeasurableSet.iUnion (measurable_spanningSets μ))]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
⊢ ↑↑μ ({a | ¬f a = OfNat.ofNat 0 a} ∩ ⋃ (b : ℕ), spanningSets μ b) = 0
[PROOFSTEP]
rw [Set.inter_iUnion, measure_iUnion_null_iff]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
⊢ ∀ (i : ℕ), ↑↑μ ({a | ¬f a = OfNat.ofNat 0 a} ∩ spanningSets μ i) = 0
[PROOFSTEP]
intro n
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
n : ℕ
⊢ ↑↑μ ({a | ¬f a = OfNat.ofNat 0 a} ∩ spanningSets μ n) = 0
[PROOFSTEP]
have h_meas_n : MeasurableSet (S n) := measurable_spanningSets μ n
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
n : ℕ
h_meas_n : MeasurableSet (S n)
⊢ ↑↑μ ({a | ¬f a = OfNat.ofNat 0 a} ∩ spanningSets μ n) = 0
[PROOFSTEP]
have hμn : μ (S n) < ∞ := measure_spanningSets_lt_top μ n
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
n : ℕ
h_meas_n : MeasurableSet (S n)
hμn : ↑↑μ (S n) < ⊤
⊢ ↑↑μ ({a | ¬f a = OfNat.ofNat 0 a} ∩ spanningSets μ n) = 0
[PROOFSTEP]
rw [← Measure.restrict_apply' h_meas_n]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
S : ℕ → Set α := spanningSets μ
n : ℕ
h_meas_n : MeasurableSet (S n)
hμn : ↑↑μ (S n) < ⊤
⊢ ↑↑(Measure.restrict μ (S n)) {a | ¬f a = OfNat.ofNat 0 a} = 0
[PROOFSTEP]
exact ae_eq_zero_restrict_of_forall_set_integral_eq_zero hf_int_finite hf_zero h_meas_n hμn.ne
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ f =ᵐ[μ] g
[PROOFSTEP]
rw [← sub_ae_eq_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
have hfg : ∀ s : Set α, MeasurableSet s → μ s < ∞ → (∫ x in s, (f - g) x ∂μ) = 0 :=
  by
  intro s hs hμs
  rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs), sub_eq_zero.mpr (hfg_eq s hs hμs)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs), sub_eq_zero.mpr (hfg_eq s hs hμs)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
have hfg_int : ∀ s, MeasurableSet s → μ s < ∞ → IntegrableOn (f - g) s μ := fun s hs hμs =>
  (hf_int_finite s hs hμs).sub (hg_int_finite s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
hfg_int : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn (f - g) s
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
exact ae_eq_zero_of_forall_set_integral_eq_of_sigmaFinite hfg_int hfg
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
let t := hf.sigmaFiniteSet
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
suffices f =ᵐ[μ.restrict t] 0 from ae_of_ae_restrict_of_ae_restrict_compl _ this hf.ae_eq_zero_compl
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
haveI : SigmaFinite (μ.restrict t) := hf.sigmaFinite_restrict
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
refine' ae_eq_zero_of_forall_set_integral_eq_of_sigmaFinite _ _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑(Measure.restrict μ t) s < ⊤ → IntegrableOn f s
[PROOFSTEP]
intro s hs hμs
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.restrict μ t) s < ⊤
⊢ IntegrableOn f s
[PROOFSTEP]
rw [IntegrableOn, Measure.restrict_restrict hs]
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.restrict μ t) s < ⊤
⊢ Integrable f
[PROOFSTEP]
rw [Measure.restrict_apply hs] at hμs 
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ Integrable f
[PROOFSTEP]
exact hf_int_finite _ (hs.inter hf.measurableSet) hμs
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑(Measure.restrict μ t) s < ⊤ → ∫ (x : α) in s, f x ∂Measure.restrict μ t = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.restrict μ t) s < ⊤
⊢ ∫ (x : α) in s, f x ∂Measure.restrict μ t = 0
[PROOFSTEP]
rw [Measure.restrict_restrict hs]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.restrict μ t) s < ⊤
⊢ ∫ (x : α) in s ∩ t, f x ∂μ = 0
[PROOFSTEP]
rw [Measure.restrict_apply hs] at hμs 
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : AEFinStronglyMeasurable f μ
t : Set α := sigmaFiniteSet hf
this : SigmaFinite (Measure.restrict μ t)
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ ∫ (x : α) in s ∩ t, f x ∂μ = 0
[PROOFSTEP]
exact hf_zero _ (hs.inter hf.measurableSet) hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
⊢ f =ᵐ[μ] g
[PROOFSTEP]
rw [← sub_ae_eq_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
have hfg : ∀ s : Set α, MeasurableSet s → μ s < ∞ → (∫ x in s, (f - g) x ∂μ) = 0 :=
  by
  intro s hs hμs
  rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs), sub_eq_zero.mpr (hfg_eq s hs hμs)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
rw [integral_sub' (hf_int_finite s hs hμs) (hg_int_finite s hs hμs), sub_eq_zero.mpr (hfg_eq s hs hμs)]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
have hfg_int : ∀ s, MeasurableSet s → μ s < ∞ → IntegrableOn (f - g) s μ := fun s hs hμs =>
  (hf_int_finite s hs hμs).sub (hg_int_finite s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hg_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn g s
hfg_eq : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hf : AEFinStronglyMeasurable f μ
hg : AEFinStronglyMeasurable g μ
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
hfg_int : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn (f - g) s
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
exact (hf.sub hg).ae_eq_zero_of_forall_set_integral_eq_zero hfg_int hfg
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
obtain ⟨t, ht_meas, htf_zero, htμ⟩ := hf.exists_set_sigmaFinite
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
haveI : SigmaFinite ((μ.restrict t).trim hm) := by rwa [restrict_trim hm μ ht_meas] at htμ 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
⊢ SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
[PROOFSTEP]
rwa [restrict_trim hm μ ht_meas] at htμ 
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have htf_zero : f =ᵐ[μ.restrict tᶜ] 0 :=
  by
  rw [EventuallyEq, ae_restrict_iff' (MeasurableSet.compl (hm _ ht_meas))]
  exact eventually_of_forall htf_zero
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
⊢ f =ᵐ[Measure.restrict μ tᶜ] 0
[PROOFSTEP]
rw [EventuallyEq, ae_restrict_iff' (MeasurableSet.compl (hm _ ht_meas))]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
⊢ ∀ᵐ (x : α) ∂μ, x ∈ tᶜ → f x = OfNat.ofNat 0 x
[PROOFSTEP]
exact eventually_of_forall htf_zero
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hf_meas_m : StronglyMeasurable[m] f := hf.stronglyMeasurable
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
suffices : f =ᵐ[μ.restrict t] 0
[GOAL]
case intro.intro.intro
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this✝ : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
this : f =ᵐ[Measure.restrict μ t] 0
⊢ f =ᵐ[μ] 0
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
exact ae_of_ae_restrict_of_ae_restrict_compl _ this htf_zero
[GOAL]
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ f =ᵐ[Measure.restrict μ t] 0
[PROOFSTEP]
refine' measure_eq_zero_of_trim_eq_zero hm _
[GOAL]
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ ↑↑(Measure.trim (Measure.restrict μ t) hm) {x | (fun x => f x = OfNat.ofNat 0 x) x}ᶜ = 0
[PROOFSTEP]
refine' ae_eq_zero_of_forall_set_integral_eq_of_sigmaFinite _ _
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤ → IntegrableOn (fun x => f x) s
[PROOFSTEP]
intro s hs hμs
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤
⊢ IntegrableOn (fun x => f x) s
[PROOFSTEP]
unfold IntegrableOn
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤
⊢ Integrable fun x => f x
[PROOFSTEP]
rw [restrict_trim hm (μ.restrict t) hs, Measure.restrict_restrict (hm s hs)]
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤
⊢ Integrable fun x => f x
[PROOFSTEP]
rw [← restrict_trim hm μ ht_meas, Measure.restrict_apply hs, trim_measurableSet_eq hm (hs.inter ht_meas)] at hμs 
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ Integrable fun x => f x
[PROOFSTEP]
refine' Integrable.trim hm _ hf_meas_m
[GOAL]
case this.refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ Integrable fun x => f x
[PROOFSTEP]
exact hf_int_finite _ (hs.inter ht_meas) hμs
[GOAL]
case this.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
⊢ ∀ (s : Set α),
    MeasurableSet s →
      ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤ → ∫ (x : α) in s, f x ∂Measure.trim (Measure.restrict μ t) hm = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
case this.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤
⊢ ∫ (x : α) in s, f x ∂Measure.trim (Measure.restrict μ t) hm = 0
[PROOFSTEP]
rw [restrict_trim hm (μ.restrict t) hs, Measure.restrict_restrict (hm s hs)]
[GOAL]
case this.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑(Measure.trim (Measure.restrict μ t) hm) s < ⊤
⊢ ∫ (x : α), f x ∂Measure.trim (Measure.restrict μ (s ∩ t)) hm = 0
[PROOFSTEP]
rw [← restrict_trim hm μ ht_meas, Measure.restrict_apply hs, trim_measurableSet_eq hm (hs.inter ht_meas)] at hμs 
[GOAL]
case this.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ ∫ (x : α), f x ∂Measure.trim (Measure.restrict μ (s ∩ t)) hm = 0
[PROOFSTEP]
rw [← integral_trim hm hf_meas_m]
[GOAL]
case this.refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
hm : m ≤ m0
f : α → E
hf_int_finite : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn f s
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf : FinStronglyMeasurable f (Measure.trim μ hm)
t : Set α
ht_meas : MeasurableSet t
htf_zero✝ : ∀ (x : α), x ∈ tᶜ → f x = 0
htμ : SigmaFinite (Measure.restrict (Measure.trim μ hm) t)
this : SigmaFinite (Measure.trim (Measure.restrict μ t) hm)
htf_zero : f =ᵐ[Measure.restrict μ tᶜ] 0
hf_meas_m : StronglyMeasurable f
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ (s ∩ t) < ⊤
⊢ ∫ (x : α) in s ∩ t, f x ∂μ = 0
[PROOFSTEP]
exact hf_zero _ (hs.inter ht_meas) hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hf_Lp : Memℒp f 1 μ := memℒp_one_iff_integrable.mpr hf
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
let f_Lp := hf_Lp.toLp f
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
have hf_f_Lp : f =ᵐ[μ] f_Lp := (Memℒp.coeFn_toLp hf_Lp).symm
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
refine' hf_f_Lp.trans _
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
⊢ ↑↑f_Lp =ᵐ[μ] 0
[PROOFSTEP]
refine' Lp.ae_eq_zero_of_forall_set_integral_eq_zero f_Lp one_ne_zero ENNReal.coe_ne_top _ _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → IntegrableOn (↑↑f_Lp) s
[PROOFSTEP]
exact fun s _ _ => Integrable.integrableOn (L1.integrable_coeFn _)
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, ↑↑f_Lp x ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, ↑↑f_Lp x ∂μ = 0
[PROOFSTEP]
rw [integral_congr_ae (ae_restrict_of_ae hf_f_Lp.symm)]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f : α → E
hf : Integrable f
hf_zero : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = 0
hf_Lp : Memℒp f 1
f_Lp : { x // x ∈ Lp E 1 } := Memℒp.toLp f hf_Lp
hf_f_Lp : f =ᵐ[μ] ↑↑f_Lp
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (a : α) in s, f a ∂μ = 0
[PROOFSTEP]
exact hf_zero s hs hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ f =ᵐ[μ] g
[PROOFSTEP]
rw [← sub_ae_eq_zero]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
have hfg' : ∀ s : Set α, MeasurableSet s → μ s < ∞ → (∫ x in s, (f - g) x ∂μ) = 0 :=
  by
  intro s hs hμs
  rw [integral_sub' hf.integrableOn hg.integrableOn]
  exact sub_eq_zero.mpr (hfg s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
⊢ ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
intro s hs hμs
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, (f - g) x ∂μ = 0
[PROOFSTEP]
rw [integral_sub' hf.integrableOn hg.integrableOn]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ∫ (a : α) in s, f a ∂μ - ∫ (a : α) in s, g a ∂μ = 0
[PROOFSTEP]
exact sub_eq_zero.mpr (hfg s hs hμs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → E
hf : Integrable f
hg : Integrable g
hfg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, f x ∂μ = ∫ (x : α) in s, g x ∂μ
hfg' : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∫ (x : α) in s, (f - g) x ∂μ = 0
⊢ f - g =ᵐ[μ] 0
[PROOFSTEP]
exact Integrable.ae_eq_zero_of_forall_set_integral_eq_zero (hf.sub hg) hfg'
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
suffices : ∀ s, MeasurableSet s → ∫ x in s, f x ∂μ = 0
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
this : ∀ (s : Set β), MeasurableSet s → ∫ (x : β) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
exact hf.ae_eq_zero_of_forall_set_integral_eq_zero (fun s hs _ ↦ this s hs)
[GOAL]
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
⊢ ∀ (s : Set β), MeasurableSet s → ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
have A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0 :=
  by
  intro t t_meas ht
  have I : ∫ x, f x ∂μ = 0 := by rw [← integral_univ]; exact h'f _ isClosed_univ
  simpa [ht, I] using integral_add_compl t_meas hf
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
⊢ ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
[PROOFSTEP]
intro t t_meas ht
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t✝ : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
t : Set β
t_meas : MeasurableSet t
ht : ∫ (x : β) in t, f x ∂μ = 0
⊢ ∫ (x : β) in tᶜ, f x ∂μ = 0
[PROOFSTEP]
have I : ∫ x, f x ∂μ = 0 := by rw [← integral_univ]; exact h'f _ isClosed_univ
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t✝ : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
t : Set β
t_meas : MeasurableSet t
ht : ∫ (x : β) in t, f x ∂μ = 0
⊢ ∫ (x : β), f x ∂μ = 0
[PROOFSTEP]
rw [← integral_univ]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t✝ : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
t : Set β
t_meas : MeasurableSet t
ht : ∫ (x : β) in t, f x ∂μ = 0
⊢ ∫ (x : β) in Set.univ, f x ∂μ = 0
[PROOFSTEP]
exact h'f _ isClosed_univ
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t✝ : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
t : Set β
t_meas : MeasurableSet t
ht : ∫ (x : β) in t, f x ∂μ = 0
I : ∫ (x : β), f x ∂μ = 0
⊢ ∫ (x : β) in tᶜ, f x ∂μ = 0
[PROOFSTEP]
simpa [ht, I] using integral_add_compl t_meas hf
[GOAL]
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
⊢ ∀ (s : Set β), MeasurableSet s → ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
intro s hs
[GOAL]
case this
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
s : Set β
hs : MeasurableSet s
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
refine MeasurableSet.induction_on_open (fun U hU ↦ ?_) A (fun g g_disj g_meas hg ↦ ?_) hs
[GOAL]
case this.refine_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
s : Set β
hs : MeasurableSet s
U : Set β
hU : IsOpen U
⊢ ∫ (x : β) in U, f x ∂μ = 0
[PROOFSTEP]
rw [← compl_compl U]
[GOAL]
case this.refine_1
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
s : Set β
hs : MeasurableSet s
U : Set β
hU : IsOpen U
⊢ ∫ (x : β) in Uᶜᶜ, f x ∂μ = 0
[PROOFSTEP]
exact A _ hU.measurableSet.compl (h'f _ hU.isClosed_compl)
[GOAL]
case this.refine_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
s : Set β
hs : MeasurableSet s
g : ℕ → Set β
g_disj : Pairwise (Disjoint on g)
g_meas : ∀ (i : ℕ), MeasurableSet (g i)
hg : ∀ (i : ℕ), ∫ (x : β) in g i, f x ∂μ = 0
⊢ ∫ (x : β) in ⋃ (i : ℕ), g i, f x ∂μ = 0
[PROOFSTEP]
rw [integral_iUnion g_meas g_disj hf.integrableOn]
[GOAL]
case this.refine_2
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝² : TopologicalSpace β
inst✝¹ : MeasurableSpace β
inst✝ : BorelSpace β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsClosed s → ∫ (x : β) in s, f x ∂μ = 0
A : ∀ (t : Set β), MeasurableSet t → ∫ (x : β) in t, f x ∂μ = 0 → ∫ (x : β) in tᶜ, f x ∂μ = 0
s : Set β
hs : MeasurableSet s
g : ℕ → Set β
g_disj : Pairwise (Disjoint on g)
g_meas : ∀ (i : ℕ), MeasurableSet (g i)
hg : ∀ (i : ℕ), ∫ (x : β) in g i, f x ∂μ = 0
⊢ ∑' (n : ℕ), ∫ (a : β) in g n, f a ∂μ = 0
[PROOFSTEP]
simp [hg]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
apply ae_eq_zero_of_forall_set_integral_isClosed_eq_zero hf (fun s hs ↦ ?_)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
let t : ℕ → Set β := fun n ↦ compactCovering β n ∩ s
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
suffices H : Tendsto (fun n ↦ ∫ x in t n, f x ∂μ) atTop (𝓝 (∫ x in s, f x ∂μ))
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
H : Tendsto (fun n => ∫ (x : β) in t n, f x ∂μ) atTop (𝓝 (∫ (x : β) in s, f x ∂μ))
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
have A : ∀ n, ∫ x in t n, f x ∂μ = 0 := fun n ↦ h'f _ (IsCompact.inter_right (isCompact_compactCovering β n) hs)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
H : Tendsto (fun n => ∫ (x : β) in t n, f x ∂μ) atTop (𝓝 (∫ (x : β) in s, f x ∂μ))
A : ∀ (n : ℕ), ∫ (x : β) in t n, f x ∂μ = 0
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
simp_rw [A, tendsto_const_nhds_iff] at H 
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
A : ∀ (n : ℕ), ∫ (x : β) in t n, f x ∂μ = 0
H : 0 = ∫ (x : β) in s, f x ∂μ
⊢ ∫ (x : β) in s, f x ∂μ = 0
[PROOFSTEP]
exact H.symm
[GOAL]
case H
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
⊢ Tendsto (fun n => ∫ (x : β) in t n, f x ∂μ) atTop (𝓝 (∫ (x : β) in s, f x ∂μ))
[PROOFSTEP]
have B : s = ⋃ n, t n := by rw [← Set.iUnion_inter, iUnion_compactCovering, Set.univ_inter]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
⊢ s = ⋃ (n : ℕ), t n
[PROOFSTEP]
rw [← Set.iUnion_inter, iUnion_compactCovering, Set.univ_inter]
[GOAL]
case H
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
⊢ Tendsto (fun n => ∫ (x : β) in t n, f x ∂μ) atTop (𝓝 (∫ (x : β) in s, f x ∂μ))
[PROOFSTEP]
rw [B]
[GOAL]
case H
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
⊢ Tendsto (fun n => ∫ (x : β) in t n, f x ∂μ) atTop (𝓝 (∫ (x : β) in ⋃ (n : ℕ), t n, f x ∂μ))
[PROOFSTEP]
apply tendsto_set_integral_of_monotone
[GOAL]
case H.hsm
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
⊢ ∀ (i : ℕ), MeasurableSet (t i)
[PROOFSTEP]
intros n
[GOAL]
case H.hsm
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
n : ℕ
⊢ MeasurableSet (t n)
[PROOFSTEP]
exact ((isCompact_compactCovering β n).inter_right hs).isClosed.measurableSet
[GOAL]
case H.h_mono
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
⊢ Monotone fun i => t i
[PROOFSTEP]
intros m n hmn
[GOAL]
case H.h_mono
α : Type u_1
E : Type u_2
m✝ m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
m n : ℕ
hmn : m ≤ n
⊢ (fun i => t i) m ≤ (fun i => t i) n
[PROOFSTEP]
exact Set.inter_subset_inter_left _ (compactCovering_subset β hmn)
[GOAL]
case H.hfi
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t✝ : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : Integrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
s : Set β
hs : IsClosed s
t : ℕ → Set β := fun n => compactCovering β n ∩ s
B : s = ⋃ (n : ℕ), t n
⊢ IntegrableOn (fun a => f a) (⋃ (n : ℕ), t n)
[PROOFSTEP]
exact hf.integrableOn
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rw [← Measure.restrict_univ (μ := μ), ← iUnion_compactCovering]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
⊢ f =ᵐ[Measure.restrict μ (⋃ (n : ℕ), compactCovering β n)] 0
[PROOFSTEP]
apply (ae_restrict_iUnion_iff _ _).2 (fun n ↦ ?_)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
n : ℕ
⊢ ∀ᵐ (x : β) ∂Measure.restrict μ (compactCovering β n), f x = OfNat.ofNat 0 x
[PROOFSTEP]
apply ae_eq_zero_of_forall_set_integral_isCompact_eq_zero
[GOAL]
case hf
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
n : ℕ
⊢ Integrable fun x => f x
[PROOFSTEP]
exact hf.integrableOn_isCompact (isCompact_compactCovering β n)
[GOAL]
case h'f
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
n : ℕ
⊢ ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂Measure.restrict μ (compactCovering β n) = 0
[PROOFSTEP]
intro s hs
[GOAL]
case h'f
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
n : ℕ
s : Set β
hs : IsCompact s
⊢ ∫ (x : β) in s, f x ∂Measure.restrict μ (compactCovering β n) = 0
[PROOFSTEP]
rw [Measure.restrict_restrict hs.measurableSet]
[GOAL]
case h'f
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ✝ : Measure α
s✝ t : Set α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
p : ℝ≥0∞
β : Type u_3
inst✝⁴ : TopologicalSpace β
inst✝³ : MeasurableSpace β
inst✝² : BorelSpace β
inst✝¹ : SigmaCompactSpace β
inst✝ : T2Space β
μ : Measure β
f : β → E
hf : LocallyIntegrable f
h'f : ∀ (s : Set β), IsCompact s → ∫ (x : β) in s, f x ∂μ = 0
n : ℕ
s : Set β
hs : IsCompact s
⊢ ∫ (x : β) in s ∩ compactCovering β n, f x ∂μ = 0
[PROOFSTEP]
exact h'f _ (hs.inter (isCompact_compactCovering β n))
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
⊢ f =ᵐ[μ] g
[PROOFSTEP]
refine'
  ENNReal.eventuallyEq_of_toReal_eventuallyEq (ae_lt_top' hf hfi).ne_of_lt (ae_lt_top' hg hgi).ne_of_lt
    (Integrable.ae_eq_of_forall_set_integral_eq _ _ (integrable_toReal_of_lintegral_ne_top hf hfi)
      (integrable_toReal_of_lintegral_ne_top hg hgi) fun s hs hs' => _)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∫ (x : α) in s, ENNReal.toReal (f x) ∂μ = ∫ (x : α) in s, ENNReal.toReal (g x) ∂μ
[PROOFSTEP]
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ENNReal.toReal (∫⁻ (a : α) in s, ENNReal.ofReal (ENNReal.toReal (f a)) ∂μ) =
    ENNReal.toReal (∫⁻ (a : α) in s, ENNReal.ofReal (ENNReal.toReal (g a)) ∂μ)
[PROOFSTEP]
congr 1
[GOAL]
case e_a
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∫⁻ (a : α) in s, ENNReal.ofReal (ENNReal.toReal (f a)) ∂μ = ∫⁻ (a : α) in s, ENNReal.ofReal (ENNReal.toReal (g a)) ∂μ
[PROOFSTEP]
rw [lintegral_congr_ae (ofReal_toReal_ae_eq _), lintegral_congr_ae (ofReal_toReal_ae_eq _)]
[GOAL]
case e_a
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∫⁻ (a : α) in s, f a ∂μ = ∫⁻ (a : α) in s, g a ∂μ
[PROOFSTEP]
exact hfg hs hs'
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, g x < ⊤
[PROOFSTEP]
refine' ae_lt_top' hg.restrict (ne_of_lt (lt_of_le_of_lt _ hgi.lt_top))
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∫⁻ (x : α) in s, g x ∂μ ≤ ∫⁻ (x : α), g x ∂μ
[PROOFSTEP]
exact @set_lintegral_univ α _ μ g ▸ lintegral_mono_set (Set.subset_univ _)
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∀ᵐ (x : α) ∂Measure.restrict μ s, f x < ⊤
[PROOFSTEP]
refine' ae_lt_top' hf.restrict (ne_of_lt (lt_of_le_of_lt _ hfi.lt_top))
[GOAL]
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ ∫⁻ (x : α) in s, f x ∂μ ≤ ∫⁻ (x : α), f x ∂μ
[PROOFSTEP]
exact
  @set_lintegral_univ α _ μ f ▸
    lintegral_mono_set
      (Set.subset_univ _)
        -- putting the proofs where they are used is extremely slow
[GOAL]
case hf
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ 0 ≤ᵐ[Measure.restrict μ s] fun x => ENNReal.toReal (g x)
case hfm
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ AEStronglyMeasurable (fun x => ENNReal.toReal (g x)) (Measure.restrict μ s)
case hf
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ 0 ≤ᵐ[Measure.restrict μ s] fun x => ENNReal.toReal (f x)
case hfm
α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
p : ℝ≥0∞
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
hgi : ∫⁻ (x : α), g x ∂μ ≠ ⊤
hfg : ∀ ⦃s : Set α⦄, MeasurableSet s → ↑↑μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
s : Set α
hs : MeasurableSet s
hs' : ↑↑μ s < ⊤
⊢ AEStronglyMeasurable (fun x => ENNReal.toReal (f x)) (Measure.restrict μ s)
[PROOFSTEP]
exacts [ae_of_all _ fun x => ENNReal.toReal_nonneg, hg.ennreal_toReal.restrict.aestronglyMeasurable,
  ae_of_all _ fun x => ENNReal.toReal_nonneg, hf.ennreal_toReal.restrict.aestronglyMeasurable]
