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

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: ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ∃ c, c ∈ Icc a b ∧ f c < g c
⊢ (∫ (x : ℝ) in a..b, f x) < ∫ (x : ℝ) in a..b, g x

tactic: contrapose! hlt
state_before: case hlt
ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ∃ c, c ∈ Icc a b ∧ f c < g c
⊢ ↑↑(Measure.restrict volume (Ioc a b)) {x | f x < g x} ≠ 0

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.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ↑↑(Measure.restrict volume (Ioc a b)) {x | f x < g x} = 0
⊢ ∀ (c : ℝ), 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.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ↑↑(Measure.restrict volume (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᵐ[Measure.restrict volume (Ioc a b)] g
⊢ ∀ (c : ℝ), c ∈ Icc a b → g c ≤ f c

tactic: exact fun c hc ↦ (Measure.eqOn_Icc_of_ae_eq volume hab.ne h_eq hfc hgc hc).ge
state_before: case hlt
ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ↑↑(Measure.restrict volume (Ioc a b)) {x | f x < g x} = 0
h_eq : f =ᵐ[Measure.restrict volume (Icc a b)] g
⊢ ∀ (c : ℝ), c ∈ Icc a b → g c ≤ f c

tactic: simpa only [gt_iff_lt, not_lt, ge_iff_le, measurableSet_Ioc, ae_restrict_eq, le_principal_iff]
  using (ae_restrict_mem measurableSet_Ioc).mono hle
state_before: case hle
ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ∃ c, c ∈ Icc a b ∧ f c < g c
⊢ f ≤ᵐ[Measure.restrict volume (Ioc a b)] g

tactic: simp only [← not_le, ← ae_iff] at hlt
state_before: ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ↑↑(Measure.restrict volume (Ioc a b)) {x | f x < g x} = 0
⊢ f =ᵐ[Measure.restrict volume (Ioc a b)] g

tactic: exact EventuallyLE.antisymm ((ae_restrict_iff' measurableSet_Ioc).2 <|
  eventually_of_forall hle) hlt
state_before: ι : Type ?u.20158965
𝕜 : Type ?u.20158968
E : Type ?u.20158971
F : Type ?u.20158974
A : Type ?u.20158977
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ g✝ : ℝ → ℝ
a✝ b✝ : ℝ
μ : MeasureTheory.Measure ℝ
f g : ℝ → ℝ
a b : ℝ
hab : a < b
hfc : ContinuousOn f (Icc a b)
hgc : ContinuousOn g (Icc a b)
hle : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x
hlt : ∀ᵐ (a : ℝ) ∂Measure.restrict volume (Ioc a b), g a ≤ f a
⊢ f =ᵐ[Measure.restrict volume (Ioc a b)] g