Imports
import Mathlib.Tactic
import Analysis.Section_9_6
import Analysis.Section_11_3Analysis I, Section 11.4: Basic properties of the Riemann integral
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
-
Basic properties of the Riemann integral.
namespace Chapter11open Chapter9Theorem 11.4.1(a) / Exercise 11.4.1
theorem IntegrableOn.add {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I) :
IntegrableOn (f + g) I ∧ integ (f + g) I = integ f I + integ g I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f + g) I ∧ integ (f + g) I = integ f I + integ g I
All goals completed! 🐙Theorem 11.4.1(b) / Exercise 11.4.1
theorem IntegrableOn.smul {I: BoundedInterval} (c:ℝ) {f:ℝ → ℝ} (hf: IntegrableOn f I) :
IntegrableOn (c • f) I ∧ integ (c • f) I = c * integ f I := I:BoundedIntervalc:ℝf:ℝ → ℝhf:IntegrableOn f I⊢ IntegrableOn (c • f) I ∧ integ (c • f) I = c * integ f I
All goals completed! 🐙theorem IntegrableOn.neg {I: BoundedInterval} {f:ℝ → ℝ} (hf: IntegrableOn f I) :
IntegrableOn (-f) I ∧ integ (-f) I = -integ f I := I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f I⊢ IntegrableOn (-f) I ∧ integ (-f) I = -integ f I I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (-1 • f) I ∧ integ (-1 • f) I = -1 * integ f I⊢ IntegrableOn (-f) I ∧ integ (-f) I = -integ f I; All goals completed! 🐙Theorem 11.4.1(c) / Exercise 11.4.1
theorem IntegrableOn.sub {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I) :
IntegrableOn (f - g) I ∧ integ (f - g) I = integ f I - integ g I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f - g) I ∧ integ (f - g) I = integ f I - integ g I
All goals completed! 🐙Theorem 11.4.1(d) / Exercise 11.4.1
theorem IntegrableOn.nonneg {I: BoundedInterval} {f:ℝ → ℝ} (hf: IntegrableOn f I) (hf_nonneg: ∀ x ∈ I, 0 ≤ f x) :
0 ≤ integ f I := I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ihf_nonneg:∀ x ∈ I, 0 ≤ f x⊢ 0 ≤ integ f I
All goals completed! 🐙Theorem 11.4.1(e) / Exercise 11.4.1
theorem IntegrableOn.mono {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I)
(h: MajorizesOn g f I) :
integ f I ≤ integ g I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ih:MajorizesOn g f I⊢ integ f I ≤ integ g I
All goals completed! 🐙Theorem 11.4.1(f) / Exercise 11.4.1
theorem IntegrableOn.const (c:ℝ) (I: BoundedInterval) :
IntegrableOn (fun _ ↦ c) I ∧ integ (fun _ ↦ c) I = c * |I|ₗ := c:ℝI:BoundedInterval⊢ IntegrableOn (fun x ↦ c) I ∧ integ (fun x ↦ c) I = c * I.length
All goals completed! 🐙Theorem 11.4.1(f) / Exercise 11.4.1
theorem IntegrableOn.const' {I: BoundedInterval} {f:ℝ → ℝ} (hf: ConstantOn f I) :
IntegrableOn f I ∧ integ f I = (constant_value_on f I) * |I|ₗ := I:BoundedIntervalf:ℝ → ℝhf:ConstantOn f ↑I⊢ IntegrableOn f I ∧ integ f I = constant_value_on f ↑I * I.length
All goals completed! 🐙Theorem 11.4.1 (g) / Exercise 11.4.1
open Classical intheorem IntegrableOn.of_extend {I J: BoundedInterval} (hIJ: I ⊆ J)
{f: ℝ → ℝ} (h: IntegrableOn f I) :
IntegrableOn (fun x ↦ if x ∈ I then f x else 0) J := I:BoundedIntervalJ:BoundedIntervalhIJ:I ⊆ Jf:ℝ → ℝh:IntegrableOn f I⊢ IntegrableOn (fun x ↦ if x ∈ I then f x else 0) J
All goals completed! 🐙Theorem 11.4.1 (g) / Exercise 11.4.1
open Classical intheorem IntegrableOn.of_extend' {I J: BoundedInterval} (hIJ: I ⊆ J)
{f: ℝ → ℝ} (h: IntegrableOn f I) :
integ (fun x ↦ if x ∈ I then f x else 0) J = integ f I := I:BoundedIntervalJ:BoundedIntervalhIJ:I ⊆ Jf:ℝ → ℝh:IntegrableOn f I⊢ integ (fun x ↦ if x ∈ I then f x else 0) J = integ f I
All goals completed! 🐙Theorem 11.4.1 (h) (Laws of integration) / Exercise 11.4.1
theorem IntegrableOn.join {I J K: BoundedInterval} (hIJK: K.joins I J)
{f: ℝ → ℝ} (h: IntegrableOn f K) :
IntegrableOn f I ∧ IntegrableOn f J ∧ integ f K = integ f I + integ f J := I:BoundedIntervalJ:BoundedIntervalK:BoundedIntervalhIJK:K.joins I Jf:ℝ → ℝh:IntegrableOn f K⊢ IntegrableOn f I ∧ IntegrableOn f J ∧ integ f K = integ f I + integ f J
All goals completed! 🐙A variant of Theorem 11.4.1(h) that will be useful in later sections.
theorem IntegrableOn.mono' {I J: BoundedInterval} (hIJ: J ⊆ I)
{f: ℝ → ℝ} (h: IntegrableOn f I) : IntegrableOn f J := I:BoundedIntervalJ:BoundedIntervalhIJ:J ⊆ If:ℝ → ℝh:IntegrableOn f I⊢ IntegrableOn f J
All goals completed! 🐙A further variant of Theorem 11.4.1(h) that will be useful in later sections.
theorem IntegrableOn.eq {I J: BoundedInterval} (hIJ: J ⊆ I)
(ha: J.a = I.a) (hb: J.b = I.b)
{f: ℝ → ℝ} (h: IntegrableOn f I) : integ f J = integ f I := I:BoundedIntervalJ:BoundedIntervalhIJ:J ⊆ Iha:J.a = I.ahb:J.b = I.bf:ℝ → ℝh:IntegrableOn f I⊢ integ f J = integ f I
All goals completed! 🐙A handy little lemma for "epsilon of room" type arguments
lemma nonneg_of_le_const_mul_eps {x C:ℝ} (h: ∀ ε>0, x ≤ C * ε) : x ≤ 0 := x:ℝC:ℝh:∀ ε > 0, x ≤ C * ε⊢ x ≤ 0
x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:C > 0⊢ x ≤ 0x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:¬C > 0⊢ x ≤ 0
x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:C > 0⊢ x ≤ 0 x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:C > 0this:0 < x⊢ False
specialize h (x/(2*C)) (x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:C > 0this:0 < x⊢ x / (2 * C) > 0 All goals completed! 🐙); x:ℝC:ℝhC:C > 0this:0 < xh:x ≤ C * (x / (2 * C))⊢ C * (x / (2 * C)) = x / 2x:ℝC:ℝhC:C > 0this:0 < xh:x ≤ x / 2⊢ False; x:ℝC:ℝhC:C > 0this:0 < xh:x ≤ x / 2⊢ False
All goals completed! 🐙
x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:¬C > 0⊢ 1 > 0x:ℝC:ℝhC:¬C > 0h:x ≤ C * 1⊢ x ≤ 0 x:ℝC:ℝh:∀ ε > 0, x ≤ C * εhC:¬C > 0⊢ 1 > 0x:ℝC:ℝhC:¬C > 0h:x ≤ C * 1⊢ x ≤ 0 All goals completed! 🐙Theorem 11.4.3 (Max and min preserve integrability)
theorem IntegrableOn.max {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I) :
IntegrableOn (f ⊔ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
-- This proof is written to follow the structure of the original text.
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g I⊢ IntegrableOn (f ⊔ g) I
have hmax_bound : BddOn (f ⊔ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM:∀ x ∈ ↑I, |f x| ≤ M⊢ BddOn (f ⊔ g) ↑I; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM:∀ x ∈ ↑I, |f x| ≤ MM':ℝhM':∀ x ∈ ↑I, |g x| ≤ M'⊢ BddOn (f ⊔ g) ↑I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM:∀ x ∈ ↑I, |f x| ≤ MM':ℝhM':∀ x ∈ ↑I, |g x| ≤ M'⊢ ∀ x ∈ ↑I, |(f ⊔ g) x| ≤ Max.max M M'; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM✝:∀ x ∈ ↑I, |f x| ≤ MM':ℝhM':∀ x ∈ ↑I, |g x| ≤ M'x:ℝhx:x ∈ ↑IhM:|f x| ≤ M⊢ |(f ⊔ g) x| ≤ Max.max M M'; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM✝:∀ x ∈ ↑I, |f x| ≤ MM':ℝx:ℝhx:x ∈ ↑IhM:|f x| ≤ MhM':|g x| ≤ M'⊢ |(f ⊔ g) x| ≤ Max.max M M'
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IM:ℝhM✝:∀ x ∈ ↑I, |f x| ≤ MM':ℝx:ℝhx:x ∈ ↑IhM:|f x| ≤ MhM':|g x| ≤ M'⊢ |Max.max (f x) (g x)| ≤ Max.max M M'
All goals completed! 🐙
have lower_le_upper : 0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙
have (ε:ℝ) (hε: 0 < ε) : upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4*ε := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
choose f' hf'min hf'const hf'int using gt_of_lt_lower_integral hf.1 (show integ f I - ε < lower_integral f I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙)
choose g' hg'min hg'const hg'int using gt_of_lt_lower_integral hg.1 (show integ g I - ε < lower_integral g I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙)
choose f'' hf''max hf''const hf''int using lt_of_gt_upper_integral hf.1 (show upper_integral f I < integ f I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙)
choose g'' hg''max hg''const hg''int using lt_of_gt_upper_integral hg.1 (show upper_integral g I < integ g I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙)
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
have hinteg_le : integ h I ≤ 4 * ε := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
have hf''g''_maj : MajorizesOn (f'' ⊔ g'') (f ⊔ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
have hf'g'_maj : MinorizesOn (f' ⊔ g') (f ⊔ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
have : MinorizesOn (f'' ⊔ g'') (f' ⊔ g' + h) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊔ g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f x⊢ (f'' ⊔ g'') x ≤ (f' ⊔ g' + h) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g x⊢ (f'' ⊔ g'') x ≤ (f' ⊔ g' + h) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' x⊢ (f'' ⊔ g'') x ≤ (f' ⊔ g' + h) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ (f'' ⊔ g'') x ≤ (f' ⊔ g' + h) x
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ f'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x)) ∧
g'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x)); I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ f'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x))I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ g'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x)) I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ f'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x))I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf''max:f x ≤ f'' xhg''max:g x ≤ g'' x⊢ g'' x ≤ Max.max (f' x) (g' x) + (f'' x - f' x + (g'' x - g' x)) All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ithis:MinorizesOn (f'' ⊔ g'') (f' ⊔ g' + h) Ihf'g'_integ:IntegrableOn (f' ⊔ g') I ∧ integ (f' ⊔ g') I = hf'g'_const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ithis:MinorizesOn (f'' ⊔ g'') (f' ⊔ g' + h) Ihf'g'_integ:IntegrableOn (f' ⊔ g') I ∧ integ (f' ⊔ g') I = hf'g'_const.integ'hf''g''_integ:IntegrableOn (f'' ⊔ g'') I ∧ integ (f'' ⊔ g'') I = hf''g''_const.integ'⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ithis:MinorizesOn (f'' ⊔ g'') (f' ⊔ g' + h) Ihf'g'_integ:IntegrableOn (f' ⊔ g') I ∧ integ (f' ⊔ g') I = hf'g'_const.integ'hf''g''_integ:IntegrableOn (f'' ⊔ g'') I ∧ integ (f'' ⊔ g'') I = hf''g''_const.integ'hf'g'h_integ:IntegrableOn (f' ⊔ g' + (f'' - f' + (g'' - g'))) I ∧
integ (f' ⊔ g' + (f'' - f' + (g'' - g'))) I = integ (f' ⊔ g') I + integ (f'' - f' + (g'' - g')) I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''max:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εg'':ℝ → ℝhg''max:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εh:ℝ → ℝ := f'' - f' + (g'' - g')hf'_integ:IntegrableOn f' I ∧ integ f' I = hf'const.integ'hg'_integ:IntegrableOn g' I ∧ integ g' I = hg'const.integ'hf''_integ:IntegrableOn f'' I ∧ integ f'' I = hf''const.integ'hg''_integ:IntegrableOn g'' I ∧ integ g'' I = hg''const.integ'hf''f'_integ:IntegrableOn (f'' - f') I ∧ integ (f'' - f') I = integ f'' I - integ f' Ihg''g'_integ:IntegrableOn (g'' - g') I ∧ integ (g'' - g') I = integ g'' I - integ g' Ihh_IntegrableOn.eq:IntegrableOn (f'' - f' + (g'' - g')) I ∧ integ (f'' - f' + (g'' - g')) I = integ (f'' - f') I + integ (g'' - g') Ihinteg_le:integ h I ≤ 4 * εhf''g''_const:PiecewiseConstantOn (f'' ⊔ g'') Ihf''g''_maj:MajorizesOn (f'' ⊔ g'') (f ⊔ g) Ihf'g'_const:PiecewiseConstantOn (f' ⊔ g') Ihf'g'_maj:MinorizesOn (f' ⊔ g') (f ⊔ g) Ihff'g''_ge:upper_integral (f ⊔ g) I ≤ hf''g''_const.integ'hf'g'_le:hf'g'_const.integ' ≤ lower_integral (f ⊔ g) Ithis:MajorizesOn (f' ⊔ g' + h) (f'' ⊔ g'') Ihf'g'_integ:IntegrableOn (f' ⊔ g') I ∧ integ (f' ⊔ g') I = hf'g'_const.integ'hf''g''_integ:IntegrableOn (f'' ⊔ g'') I ∧ integ (f'' ⊔ g'') I = hf''g''_const.integ'hf'g'h_integ:IntegrableOn (f' ⊔ g' + (f'' - f' + (g'' - g'))) I ∧
integ (f' ⊔ g' + (f'' - f' + (g'' - g'))) I = integ (f' ⊔ g') I + integ (f'' - f' + (g'' - g')) I⊢ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε
All goals completed! 🐙
exact ⟨ hmax_bound, I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihmax_bound:BddOn (f ⊔ g) ↑Ilower_le_upper:0 ≤ upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) Ithis:∀ (ε : ℝ), 0 < ε → upper_integral (f ⊔ g) I - lower_integral (f ⊔ g) I ≤ 4 * ε⊢ lower_integral (f ⊔ g) I = upper_integral (f ⊔ g) I All goals completed! 🐙 ⟩Theorem 11.4.5 / Exercise 11.4.3. The objective here is to create a shorter proof than the one above.
theorem IntegrableOn.min {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I) :
IntegrableOn (f ⊓ g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f ⊓ g) I
All goals completed! 🐙Corollary 11.4.4
theorem IntegrableOn.abs {I: BoundedInterval} {f:ℝ → ℝ} (hf: IntegrableOn f I) :
IntegrableOn (abs f) I := I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f I⊢ IntegrableOn |f| I
I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (fun x ↦ 0) I⊢ IntegrableOn |f| I
I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (fun x ↦ 0) I⊢ |f| = (f ⊔ fun x ↦ 0) - f ⊓ fun x ↦ 0
I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (fun x ↦ 0) Ix:ℝ⊢ |f| x = ((f ⊔ fun x ↦ 0) - f ⊓ fun x ↦ 0) x; obtain h | h := (show f x ≤ 0 ∨ f x ≥ 0 I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f I⊢ IntegrableOn |f| I All goals completed! 🐙) I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (fun x ↦ 0) Ix:ℝh:f x ≤ 0⊢ |f| x = ((f ⊔ fun x ↦ 0) - f ⊓ fun x ↦ 0) xI:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f Ithis:IntegrableOn (fun x ↦ 0) Ix:ℝh:f x ≥ 0⊢ |f| x = ((f ⊔ fun x ↦ 0) - f ⊓ fun x ↦ 0) x All goals completed! 🐙Theorem 11.4.5 (Products preserve Riemann integrability). It is convenient to first establish the non-negative case.
theorem integ_of_mul_nonneg {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I)
(hf_nonneg: MajorizesOn f 0 I) (hg_nonneg: MajorizesOn g 0 I) :
IntegrableOn (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
-- This proof is written to follow the structure of the original text.
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).Nonempty⊢ IntegrableOn (f * g) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:¬(↑I).Nonempty⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:¬(↑I).Nonempty⊢ IntegrableOn (f * g) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).Nonempty⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:¬(↑I).Nonempty⊢ IntegrableOn (f * g) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:¬(↑I).Nonempty⊢ I.length = 0
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:¬(↑I).Nonempty⊢ Subsingleton ↑↑I
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).Nonempty⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂⊢ IntegrableOn (f * g) I
have hmul_bound : BddOn (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂⊢ ∀ x ∈ ↑I, |(f * g) x| ≤ M₁ * M₂; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁⊢ |(f * g) x| ≤ M₁ * M₂; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ |(f * g) x| ≤ M₁ * M₂
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ |f x| * |g x| ≤ M₁ * M₂; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ 0 ≤ |g x|I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ 0 ≤ M₁ I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ 0 ≤ |g x|I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂x:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁hM₂:|g x| ≤ M₂⊢ 0 ≤ M₁ All goals completed! 🐙
have lower_le_upper : 0 ≤ upper_integral (f * g) I - lower_integral (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
All goals completed! 🐙
have (ε:ℝ) (hε: 0 < ε) : upper_integral (f * g) I - lower_integral (f * g) I ≤ 2*(M₁+M₂)*ε := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
have : ∃ f', MinorizesOn f' f I ∧ PiecewiseConstantOn f' I ∧ integ f I - ε < PiecewiseConstantOn.integ f' I ∧ MajorizesOn f' 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
choose f' hf'min hf'const hf'int using gt_of_lt_lower_integral hf.1 (show integ f I - ε < lower_integral f I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I All goals completed! 🐙)
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' I⊢ MinorizesOn (f' ⊔ 0) f I ∧
PiecewiseConstantOn (f' ⊔ 0) I ∧ integ f I - ε < PiecewiseConstantOn.integ (f' ⊔ 0) I ∧ MajorizesOn (f' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (f' ⊔ 0) f I ∧
PiecewiseConstantOn (f' ⊔ 0) I ∧ integ f I - ε < PiecewiseConstantOn.integ (f' ⊔ 0) I ∧ MajorizesOn (f' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (f' ⊔ 0) f II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ PiecewiseConstantOn (f' ⊔ 0) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ integ f I - ε < PiecewiseConstantOn.integ (f' ⊔ 0) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MajorizesOn (f' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (f' ⊔ 0) f I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix:ℝhx:x ∈ ↑Ithis:0 x ≤ f x⊢ (f' ⊔ 0) x ≤ f x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix:ℝhx:x ∈ ↑Ithis:0 x ≤ f xhf'min:f' x ≤ f x⊢ (f' ⊔ 0) x ≤ f x; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ PiecewiseConstantOn (f' ⊔ 0) I All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ integ f I - ε < PiecewiseConstantOn.integ (f' ⊔ 0) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ ∀ x ∈ I, f' x ≤ (f' ⊔ fun x ↦ 0) x; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ (f' ⊔ 0) x✝; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have : ∃ g', MinorizesOn g' g I ∧ PiecewiseConstantOn g' I ∧ integ g I - ε < PiecewiseConstantOn.integ g' I ∧ MajorizesOn g' 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
obtain ⟨ g', hg'min, hg'const, hg'int ⟩ := gt_of_lt_lower_integral hg.1 (show integ g I - ε < lower_integral g I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I All goals completed! 🐙)
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' I⊢ MinorizesOn (g' ⊔ 0) g I ∧
PiecewiseConstantOn (g' ⊔ 0) I ∧ integ g I - ε < PiecewiseConstantOn.integ (g' ⊔ 0) I ∧ MajorizesOn (g' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (g' ⊔ 0) g I ∧
PiecewiseConstantOn (g' ⊔ 0) I ∧ integ g I - ε < PiecewiseConstantOn.integ (g' ⊔ 0) I ∧ MajorizesOn (g' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (g' ⊔ 0) g II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ PiecewiseConstantOn (g' ⊔ 0) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ integ g I - ε < PiecewiseConstantOn.integ (g' ⊔ 0) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MajorizesOn (g' ⊔ 0) 0 I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ MinorizesOn (g' ⊔ 0) g I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix:ℝhx:x ∈ ↑Ithis:0 x ≤ g x⊢ (g' ⊔ 0) x ≤ g x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix:ℝhx:x ∈ ↑Ithis:0 x ≤ g xhg'min:g' x ≤ g x⊢ (g' ⊔ 0) x ≤ g x; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ PiecewiseConstantOn (g' ⊔ 0) I All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ integ g I - ε < PiecewiseConstantOn.integ (g' ⊔ 0) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) I⊢ ∀ x ∈ I, g' x ≤ (g' ⊔ fun x ↦ 0) x; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihzero:PiecewiseConstantOn (fun x ↦ 0) Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ (g' ⊔ 0) x✝; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have : ∃ f'', MajorizesOn f'' f I ∧ PiecewiseConstantOn f'' I ∧ PiecewiseConstantOn.integ f'' I < integ f I + ε ∧ MinorizesOn f'' (fun _ ↦ M₁) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
obtain ⟨ f'', hf''maj, hf''const, hf''int ⟩ := lt_of_gt_upper_integral hf.1 (show upper_integral f I < integ f I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I All goals completed! 🐙)
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + ε⊢ MajorizesOn (f'' ⊓ fun x ↦ M₁) f I ∧
PiecewiseConstantOn (f'' ⊓ fun x ↦ M₁) I ∧
PiecewiseConstantOn.integ (f'' ⊓ fun x ↦ M₁) I < integ f I + ε ∧ MinorizesOn (f'' ⊓ fun x ↦ M₁) (fun x ↦ M₁) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ MajorizesOn (f'' ⊓ fun x ↦ M₁) f I ∧
PiecewiseConstantOn (f'' ⊓ fun x ↦ M₁) I ∧
PiecewiseConstantOn.integ (f'' ⊓ fun x ↦ M₁) I < integ f I + ε ∧ MinorizesOn (f'' ⊓ fun x ↦ M₁) (fun x ↦ M₁) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ MajorizesOn (f'' ⊓ fun x ↦ M₁) f II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ PiecewiseConstantOn (f'' ⊓ fun x ↦ M₁) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ PiecewiseConstantOn.integ (f'' ⊓ fun x ↦ M₁) I < integ f I + εI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ MinorizesOn (f'' ⊓ fun x ↦ M₁) (fun x ↦ M₁) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ MajorizesOn (f'' ⊓ fun x ↦ M₁) f I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) Ix:ℝhx:x ∈ ↑IhM₁:|f x| ≤ M₁⊢ f x ≤ (f'' ⊓ fun x ↦ M₁) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁✝:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) Ix:ℝhx:x ∈ ↑IhM₁:f x ≤ M₁ ∧ -f x ≤ M₁⊢ f x ≤ (f'' ⊓ fun x ↦ M₁) x
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ PiecewiseConstantOn (f'' ⊓ fun x ↦ M₁) I All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ PiecewiseConstantOn.integ (f'' ⊓ fun x ↦ M₁) I < integ f I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) I⊢ ∀ x ∈ I, (f'' ⊓ fun x ↦ M₁) x ≤ f'' x
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhM₁_piece:PiecewiseConstantOn (fun x ↦ M₁) Ix✝:ℝ⊢ x✝ ∈ ↑I → (f'' ⊓ fun x ↦ M₁) x✝ ≤ (fun x ↦ M₁) x✝; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have : ∃ g'', MajorizesOn g'' g I ∧ PiecewiseConstantOn g'' I ∧ PiecewiseConstantOn.integ g'' I < integ g I + ε ∧ MinorizesOn g'' (fun _ ↦ M₂) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
obtain ⟨ g'', hg''maj, hg''const, hg''int ⟩ := lt_of_gt_upper_integral hg.1 (show upper_integral g I < integ g I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I All goals completed! 🐙)
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + ε⊢ MajorizesOn (g'' ⊓ fun x ↦ M₂) g I ∧
PiecewiseConstantOn (g'' ⊓ fun x ↦ M₂) I ∧
PiecewiseConstantOn.integ (g'' ⊓ fun x ↦ M₂) I < integ g I + ε ∧ MinorizesOn (g'' ⊓ fun x ↦ M₂) (fun x ↦ M₂) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ MajorizesOn (g'' ⊓ fun x ↦ M₂) g I ∧
PiecewiseConstantOn (g'' ⊓ fun x ↦ M₂) I ∧
PiecewiseConstantOn.integ (g'' ⊓ fun x ↦ M₂) I < integ g I + ε ∧ MinorizesOn (g'' ⊓ fun x ↦ M₂) (fun x ↦ M₂) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ MajorizesOn (g'' ⊓ fun x ↦ M₂) g II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ PiecewiseConstantOn (g'' ⊓ fun x ↦ M₂) II:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ PiecewiseConstantOn.integ (g'' ⊓ fun x ↦ M₂) I < integ g I + εI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ MinorizesOn (g'' ⊓ fun x ↦ M₂) (fun x ↦ M₂) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ MajorizesOn (g'' ⊓ fun x ↦ M₂) g I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂✝:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) Ix:ℝhx:x ∈ ↑IhM₂:|g x| ≤ M₂⊢ g x ≤ (g'' ⊓ fun x ↦ M₂) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂✝:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) Ix:ℝhx:x ∈ ↑IhM₂:g x ≤ M₂ ∧ -g x ≤ M₂⊢ g x ≤ (g'' ⊓ fun x ↦ M₂) x
All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ PiecewiseConstantOn (g'' ⊓ fun x ↦ M₂) I All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ PiecewiseConstantOn.integ (g'' ⊓ fun x ↦ M₂) I < integ g I + ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) I⊢ ∀ x ∈ I, (g'' ⊓ fun x ↦ M₂) x ≤ g'' x
All goals completed! 🐙
intro _ I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhM₂_piece:PiecewiseConstantOn (fun x ↦ M₂) Ix✝:ℝa✝:x✝ ∈ ↑I⊢ (g'' ⊓ fun x ↦ M₂) x✝ ≤ (fun x ↦ M₂) x✝; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have hf'g'_maj : MinorizesOn (f' * g') (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f x⊢ (f' * g') x ≤ (f * g) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g x⊢ (f' * g') x ≤ (f * g) x;
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 x ≤ f' x⊢ (f' * g') x ≤ (f * g) x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 x ≤ f' xhg'_nonneg:0 x ≤ g' x⊢ (f' * g') x ≤ (f * g) x
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 ≤ f' xhg'_nonneg:0 ≤ g' xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ f' x * g' x ≤ f x * g x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 ≤ f' xhg'_nonneg:0 ≤ g' xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ g' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 ≤ f' xhg'_nonneg:0 ≤ g' xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ f x I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 ≤ f' xhg'_nonneg:0 ≤ g' xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ g' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min✝:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ig':ℝ → ℝhg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ix:ℝhx:x ∈ ↑Ihf'min:f' x ≤ f xhg'min:g' x ≤ g xhf'_nonneg:0 ≤ f' xhg'_nonneg:0 ≤ g' xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ f x All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have hf''g''_maj : MajorizesOn (f'' * g'') (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' x⊢ (f * g) x ≤ (f'' * g'') x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' x⊢ (f * g) x ≤ (f'' * g'') x
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 x ≤ g x⊢ (f * g) x ≤ (f'' * g'') x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 x ≤ g xhf_nonneg:0 x ≤ f x⊢ (f * g) x ≤ (f'' * g'') x
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 ≤ g xhf_nonneg:0 ≤ f xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ f x * g x ≤ f'' x * g'' x; I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 ≤ g xhf_nonneg:0 ≤ f xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ g xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 ≤ g xhf_nonneg:0 ≤ f xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ f'' x I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 ≤ g xhf_nonneg:0 ≤ f xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ g xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj✝:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ix:ℝhx:x ∈ ↑Ihf''maj:f x ≤ f'' xhg''maj:g x ≤ g'' xhg_nonneg:0 ≤ g xhf_nonneg:0 ≤ f xlower_le_upper:lower_integral (f * g) I ≤ upper_integral (f * g) I⊢ 0 ≤ f'' x All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
have hhmin : MinorizesOn (f'' * g'' - f' * g') (M₁ • (g''-g') + M₂ • (f''-f')) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 I⊢ IntegrableOn (f * g) I
intro x I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ (f'' * g'' - f' * g') x ≤ (M₁ • (g'' - g') + M₂ • (f'' - f')) x
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ f'' x * g'' x - f' x * g' x ≤ M₁ * (g'' x - g' x) + M₂ * (f'' x - f' x)
calc
_ = (f'' x) * (g'' x - g' x) + (g' x) * (f'' x - f' x) := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ f'' x * g'' x - f' x * g' x = f'' x * (g'' x - g' x) + g' x * (f'' x - f' x) All goals completed! 🐙
_ ≤ _ := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ f'' x * (g'' x - g' x) + g' x * (f'' x - f' x) ≤ M₁ * (g'' x - g' x) + M₂ * (f'' x - f' x) I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ 0 ≤ g'' x - g' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ f'' x ≤ M₁I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ 0 ≤ f'' x - f' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ g' x ≤ M₂ I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ 0 ≤ g'' x - g' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ f'' x ≤ M₁I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ 0 ≤ f'' x - f' xI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ix:ℝhx:x ∈ ↑I⊢ g' x ≤ M₂ All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε
calc
_ ≤ M₁ * PiecewiseConstantOn.integ (g'' - g') I + M₂ * PiecewiseConstantOn.integ (f'' - f') I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ upper_integral (f * g) I - lower_integral (f * g) I ≤
M₁ * PiecewiseConstantOn.integ (g'' - g') I + M₂ * PiecewiseConstantOn.integ (f'' - f') I All goals completed! 🐙
_ ≤ M₁ * (2*ε) + M₂ * (2*ε) := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ M₁ * PiecewiseConstantOn.integ (g'' - g') I + M₂ * PiecewiseConstantOn.integ (f'' - f') I ≤ M₁ * (2 * ε) + M₂ * (2 * ε) I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ PiecewiseConstantOn.integ (g'' - g') I ≤ 2 * εI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ PiecewiseConstantOn.integ (f'' - f') I ≤ 2 * ε I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ PiecewiseConstantOn.integ (g'' - g') I ≤ 2 * εI:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ PiecewiseConstantOn.integ (f'' - f') I ≤ 2 * ε All goals completed! 🐙
_ = _ := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Iε:ℝhε:0 < εf':ℝ → ℝhf'min:MinorizesOn f' f Ihf'const:PiecewiseConstantOn f' Ihf'int:integ f I - ε < PiecewiseConstantOn.integ f' Ihf'_nonneg:MajorizesOn f' 0 Ig':ℝ → ℝhg'min:MinorizesOn g' g Ihg'const:PiecewiseConstantOn g' Ihg'int:integ g I - ε < PiecewiseConstantOn.integ g' Ihg'_nonneg:MajorizesOn g' 0 If'':ℝ → ℝhf''maj:MajorizesOn f'' f Ihf''const:PiecewiseConstantOn f'' Ihf''int:PiecewiseConstantOn.integ f'' I < integ f I + εhf''bound:MinorizesOn f'' (fun x ↦ M₁) Ig'':ℝ → ℝhg''maj:MajorizesOn g'' g Ihg''const:PiecewiseConstantOn g'' Ihg''int:PiecewiseConstantOn.integ g'' I < integ g I + εhg''bound:MinorizesOn g'' (fun x ↦ M₂) Ihf'g'_const:PiecewiseConstantOn (f' * g') Ihf'g'_maj:MinorizesOn (f' * g') (f * g) Ihf''g''_const:PiecewiseConstantOn (f'' * g'') Ihf''g''_maj:MajorizesOn (f'' * g'') (f * g) Ihupper_le:upper_integral (f * g) I ≤ hf''g''_const.integ'hlower_ge:hf'g'_const.integ' ≤ lower_integral (f * g) Ihh_const:PiecewiseConstantOn (f'' * g'' - f' * g') Ihh_integ:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I =
PiecewiseConstantOn.integ (f'' * g'') I - PiecewiseConstantOn.integ (f' * g') Ihhmin:MinorizesOn (f'' * g'' - f' * g') (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihg''g'_const:PiecewiseConstantOn (g'' - g') Ihg''g'_integ:PiecewiseConstantOn.integ (g'' - g') I = PiecewiseConstantOn.integ g'' I - PiecewiseConstantOn.integ g' IhM₁g''g'_const:PiecewiseConstantOn (M₁ • (g'' - g')) IhM₁g''g_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g')) I = M₁ * PiecewiseConstantOn.integ (g'' - g') Ihf''f'_const:PiecewiseConstantOn (f'' - f') Ihf''f_integ:PiecewiseConstantOn.integ (f'' - f') I = PiecewiseConstantOn.integ f'' I - PiecewiseConstantOn.integ f' IhM₂f''f'_const:PiecewiseConstantOn (M₂ • (f'' - f')) IhM₂f''f_integ:PiecewiseConstantOn.integ (M₂ • (f'' - f')) I = M₂ * PiecewiseConstantOn.integ (f'' - f') Ihsum_const:PiecewiseConstantOn (M₁ • (g'' - g') + M₂ • (f'' - f')) Ihsum_integ:PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I =
PiecewiseConstantOn.integ (M₁ • (g'' - g')) I + PiecewiseConstantOn.integ (M₂ • (f'' - f')) Ihsum_bound:PiecewiseConstantOn.integ (f'' * g'' - f' * g') I ≤ PiecewiseConstantOn.integ (M₁ • (g'' - g') + M₂ • (f'' - f')) I⊢ M₁ * (2 * ε) + M₂ * (2 * ε) = 2 * (M₁ + M₂) * ε All goals completed! 🐙
exact ⟨ hmul_bound, I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:BddOn f ↑I ∧ lower_integral f I = upper_integral f Ihg:BddOn g ↑I ∧ lower_integral g I = upper_integral g Ihf_nonneg:MajorizesOn f 0 Ihg_nonneg:MajorizesOn g 0 IhI:(↑I).NonemptyM₁:ℝhM₁:∀ x ∈ ↑I, |f x| ≤ M₁M₂:ℝhM₂:∀ x ∈ ↑I, |g x| ≤ M₂hM₁pos:0 ≤ M₁hM₂pos:0 ≤ M₂hmul_bound:BddOn (f * g) ↑Ilower_le_upper:0 ≤ upper_integral (f * g) I - lower_integral (f * g) Ithis:∀ (ε : ℝ), 0 < ε → upper_integral (f * g) I - lower_integral (f * g) I ≤ 2 * (M₁ + M₂) * ε⊢ lower_integral (f * g) I = upper_integral (f * g) I All goals completed! 🐙 ⟩theorem integ_of_mul {I: BoundedInterval} {f g:ℝ → ℝ} (hf: IntegrableOn f I) (hg: IntegrableOn g I) :
IntegrableOn (f * g) I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f * g) I
-- This proof is written to follow the structure of the original text.
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus I⊢ IntegrableOn (f * g) I
have hfplus_nonneg : MajorizesOn fplus 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f * g) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ fplus x✝; All goals completed! 🐙
have hfminus_nonneg : MajorizesOn fminus 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f * g) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ fminus x✝; All goals completed! 🐙
have hgplus_nonneg : MajorizesOn gplus 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f * g) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ gplus x✝; All goals completed! 🐙
have hgminus_nonneg : MajorizesOn gminus 0 I := I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g I⊢ IntegrableOn (f * g) I I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ix✝:ℝ⊢ x✝ ∈ ↑I → 0 x✝ ≤ gminus x✝; All goals completed! 🐙
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) Ihfplusgminus:IntegrableOn ((f ⊔ fun x ↦ 0) * gminus) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) Ihfplusgminus:IntegrableOn ((f ⊔ fun x ↦ 0) * gminus) Ihfminusgplus:IntegrableOn (fminus * (g ⊔ fun x ↦ 0)) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) Ihfplusgminus:IntegrableOn ((f ⊔ fun x ↦ 0) * gminus) Ihfminusgplus:IntegrableOn (fminus * (g ⊔ fun x ↦ 0)) Ihfminusgminus:IntegrableOn (fminus * gminus) I⊢ IntegrableOn (f * g) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) Ihfplusgminus:IntegrableOn ((f ⊔ fun x ↦ 0) * gminus) Ihfminusgplus:IntegrableOn (fminus * (g ⊔ fun x ↦ 0)) Ihfminusgminus:IntegrableOn (fminus * gminus) I⊢ IntegrableOn ((fplus - fminus) * (gplus - gminus)) I
I:BoundedIntervalf:ℝ → ℝg:ℝ → ℝhf:IntegrableOn f Ihg:IntegrableOn g Ifplus:ℝ → ℝ := f ⊔ fun x ↦ 0fminus:ℝ → ℝ := -(f ⊓ fun x ↦ 0)gplus:ℝ → ℝ := g ⊔ fun x ↦ 0gminus:ℝ → ℝ := -(g ⊓ fun x ↦ 0)this:IntegrableOn (fun x ↦ 0) Ihfplus_integ:IntegrableOn (f ⊔ fun x ↦ 0) Ihgplus_integ:IntegrableOn (g ⊔ fun x ↦ 0) Ihfminus_integ:IntegrableOn fminus Ihgminus_integ:IntegrableOn gminus Ihfplus_nonneg:MajorizesOn fplus 0 Ihfminus_nonneg:MajorizesOn fminus 0 Ihgplus_nonneg:MajorizesOn gplus 0 Ihgminus_nonneg:MajorizesOn gminus 0 Ihfplusgplus:IntegrableOn ((f ⊔ fun x ↦ 0) * (g ⊔ fun x ↦ 0)) Ihfplusgminus:IntegrableOn ((f ⊔ fun x ↦ 0) * gminus) Ihfminusgplus:IntegrableOn (fminus * (g ⊔ fun x ↦ 0)) Ihfminusgminus:IntegrableOn (fminus * gminus) I⊢ IntegrableOn (fplus * gplus + (-(fplus * gminus) - fminus * gplus) + fminus * gminus) I
All goals completed! 🐙open BoundedIntervalExercise 11.4.2
theorem IntegrableOn.split {I: BoundedInterval} {f: ℝ → ℝ} (hf: IntegrableOn f I) (P: Partition I) :
integ f I = ∑ J ∈ P.intervals, integ f J := I:BoundedIntervalf:ℝ → ℝhf:IntegrableOn f IP:Partition I⊢ integ f I = ∑ J ∈ P.intervals, integ f J
All goals completed! 🐙end Chapter11