Theorem: intervalIntegral.integral_lt_integral_of_continuousOn_of_le_of_exists_lt
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

Proof steps:
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : ∃ c ∈ Icc a b, f c < g c
⊢ ∫ (x : ℝ) in a..b, f x < ∫ (x : ℝ) in a..b, g x
state_after: case hle
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : ∃ c ∈ Icc a b, f c < g c
⊢ f ≤ᶠ[ae (volume.restrict (Ioc a b))] g

case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : ∃ c ∈ Icc a b, f c < g c
⊢ (volume.restrict (Ioc a b)) {x | f x < g x} ≠ 0
tactic: apply integral_lt_integral_of_ae_le_of_measure_setOf_lt_ne_zero hab.le
    (hfc.intervalIntegrable_of_Icc hab.le) (hgc.intervalIntegrable_of_Icc hab.le)
state_before: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : ∃ c ∈ Icc a b, f c < g c
⊢ (volume.restrict (Ioc a b)) {x | f x < g x} ≠ 0
state_after: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
⊢ ∀ c ∈ Icc a b, g c ≤ f c
tactic: contrapose! hlt
state_before: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
⊢ ∀ c ∈ Icc a b, g c ≤ f c
state_after: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᶠ[ae (volume.restrict (Ioc a b))] g
⊢ ∀ c ∈ Icc a b, g c ≤ f c
tactic: have h_eq : f =ᵐ[volume.restrict (Ioc a b)] g := by
    simp only [← not_le, ← ae_iff] at hlt
    exact EventuallyLE.antisymm ((ae_restrict_iff' measurableSet_Ioc).2 <|
      eventually_of_forall hle) hlt
state_before: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᶠ[ae (volume.restrict (Ioc a b))] g
⊢ ∀ c ∈ Icc a b, g c ≤ f c
state_after: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᶠ[ae (volume.restrict (Icc a b))] g
⊢ ∀ c ∈ Icc a b, g c ≤ f c
tactic: rw [Measure.restrict_congr_set Ioc_ae_eq_Icc] at h_eq
state_before: case hlt
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ x ∈ Ioc a b, f x ≤ g x
hlt : (volume.restrict (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᶠ[ae (volume.restrict (Icc a b))] g
⊢ ∀ c ∈ Icc a b, g c ≤ f c
state_after: no goals
tactic: exact fun c hc ↦ (Measure.eqOn_Icc_of_ae_eq volume hab.ne h_eq hfc hgc hc).ge