Imports
import Mathlib.Tactic import Analysis.Section_9_9 import Analysis.Section_11_4

Analysis I, Section 11.5: Riemann integrability of continuous functions

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:

  • Riemann integrability of uniformly continuous functions.

  • Riemann integrability of bounded continuous functions.

namespace Chapter11open BoundedIntervalopen Chapter9

Theorem 11.5.1

theorem declaration uses `sorry`integ_of_uniform_cts {I: BoundedInterval} {f: } (hf: UniformContinuousOn f I) : IntegrableOn f I := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I -- This proof is written to follow the structure of the original text. have hfbound : BddOn f I := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hf:UniformContinuousOn f IBornology.IsBounded (f '' I); All goals completed! 🐙 I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ilower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ihsing:I.length = 0lower_integral f I = upper_integral f II:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ihsing:¬I.length = 0lower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ihsing:I.length = 0lower_integral f I = upper_integral f I All goals completed! 🐙 I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ihsing:I.a < I.blower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ahsing:a < I.blower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < blower_integral f I = upper_integral f I have hsing' : 0 < b-a := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I All goals completed! 🐙 have (ε:) (: ε > 0) : upper_integral f I - lower_integral f I ε * (b-a) := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hf: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0upper_integral f I - lower_integral f I ε * (b - a) I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)upper_integral f I - lower_integral f I ε * (b - a); I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εupper_integral f I - lower_integral f I ε * (b - a) I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < Nupper_integral f I - lower_integral f I ε * (b - a) have hNpos : 0 < N := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I have : 0 < (b-a)/δ := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I All goals completed! 🐙 I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < Nthis:0 < (b - a) / δ0 < N; All goals completed! 🐙 have hN' : (b-a)/N < δ := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I rwa [div_lt_comm₀I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < N(b - a) / δ < NI:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < N0 < NI:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < N0 < δ I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < N0 < NI:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < N0 < δ All goals completed! 🐙 have : P: Partition I, P.intervals.card = N J P.intervals, |J|ₗ = (b-a) / N := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I All goals completed! 🐙 I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / Nupper_integral f I - lower_integral f I ε * (b - a) calc _ J P.intervals, (sSup (f '' J) - sInf (f '' J)) * |J|ₗ := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / Nupper_integral f I - lower_integral f I J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / Nh1:upper_integral f I upper_riemann_sum f Pupper_integral f I - lower_integral f I J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / Nh1:upper_integral f I upper_riemann_sum f Ph2:lower_riemann_sum f P lower_integral f Iupper_integral f I - lower_integral f I J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length I:BoundedIntervalf: hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bε:δ:hf✝: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / Nh1:upper_integral f I J P.intervals, sSup (f '' J) * J.lengthh2: J P.intervals, sInf (f '' J) * J.length lower_integral f Ihf: (ε : ), 0 < ε δ, 0 < δ x₀ I, x I, dist x x₀ δ dist (f x) (f x₀) εhsing':a < b:0 < ε:0 < δupper_integral f I x P.intervals, sSup (f '' x) * x.length - x P.intervals, sInf (f '' x) * x.length + lower_integral f I All goals completed! 🐙 _ J P.intervals, ε * |J|ₗ := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N i P.intervals, (sSup (f '' i) - sInf (f '' i)) * i.length ε * i.length; intro J I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervals(sSup (f '' J) - sInf (f '' J)) * J.length ε * J.length; I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalssSup (f '' J) - sInf (f '' J) ε have {x y:} (hx: x J) (hy: y J) : f x f y + ε := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J If x f y + ε have : |f x - f y| ε := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J Iy II:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J Ix II:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J I|x - y| δ I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J Iy II:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J Ix II:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J I|x - y| δ try All goals completed! 🐙 I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsx:y:hx:x Jhy:y Jthis:J IJ.length δ; All goals completed! 🐙 All goals completed! 🐙 have hJnon : (f '' J).Nonempty := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsthis: {x y : }, x J y J f x f y + ε(↑J).Nonempty; I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsthis: {x y : }, x J y J f x f y + εh:J = False replace h : Subsingleton (J:Set ) := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length All goals completed! 🐙 I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsthis: {x y : }, x J y J f x f y + εh:(b - a) / N = 0False linarith [show 0 < (b-a) / N I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length All goals completed! 🐙] replace (y:) (hy:y J) : sSup (f '' J) f y + ε := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsthis: {x y : }, x J y J f x f y + εhJnon:(f '' J).Nonemptyy:hy:y J b f '' J, b f y + ε; I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalsthis: {x y : }, x J y J f x f y + εhJnon:(f '' J).Nonemptyy:hy:y Jz:hz:z Jf z f y + ε; All goals completed! 🐙 replace : sSup (f '' J) - ε sInf (f '' J) := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, (sSup (f '' J) - sInf (f '' J)) * J.length J P.intervals, ε * J.length I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NJ:BoundedIntervalhJ:J P.intervalshJnon:(f '' J).Nonemptythis: y J, sSup (f '' J) f y + ε b f '' J, sSup (f '' J) - ε b; All goals completed! 🐙 All goals completed! 🐙 _ = J P.intervals, ε * (b-a)/N := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, ε * J.length = J P.intervals, ε * (b - a) / N All goals completed! 🐙 _ = _ := I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / N J P.intervals, ε * (b - a) / N = ε * (b - a) I:BoundedIntervalf: hf✝: ε > 0, δ > 0, x₀ I, x I, δ.Close x x₀ ε.Close (f x) (f x₀)hfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - aε::ε > 0δ::δ > 0hf: x₀ I, x I, |x - x₀| δ |f x - f x₀| εN:hN:(b - a) / δ < NhNpos:0 < NhN':(b - a) / N < δP:Partition Ihcard:P.intervals.card = Nhlength: J P.intervals, J.length = (b - a) / NN * (ε * (b - a) / N) = ε * (b - a); All goals completed! 🐙 have lower_le_upper : 0 upper_integral f I - lower_integral f I := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I All goals completed! 🐙 I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - athis: ε > 0, upper_integral f I - lower_integral f I ε * (b - a)lower_le_upper:0 upper_integral f I - lower_integral f Ih:0 < upper_integral f I - lower_integral f Ilower_integral f I = upper_integral f II:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - athis: ε > 0, upper_integral f I - lower_integral f I ε * (b - a)lower_le_upper:0 upper_integral f I - lower_integral f Ih:0 = upper_integral f I - lower_integral f Ilower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - athis: ε > 0, upper_integral f I - lower_integral f I ε * (b - a)lower_le_upper:0 upper_integral f I - lower_integral f Ih:0 < upper_integral f I - lower_integral f Ilower_integral f I = upper_integral f I I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - athis: ε > 0, upper_integral f I - lower_integral f I ε * (b - a)lower_le_upper:0 upper_integral f I - lower_integral f Ih:0 < upper_integral f I - lower_integral f Iε: := (upper_integral f I - lower_integral f I) / (2 * (b - a))lower_integral f I = upper_integral f I replace : upper_integral f I - lower_integral f I (upper_integral f I - lower_integral f I)/2 := I:BoundedIntervalf: hf:UniformContinuousOn f IIntegrableOn f I convert this ε (I:BoundedIntervalf: hf:UniformContinuousOn f Ihfbound:BddOn f Ia: := I.ab: := I.bhsing:a < bhsing':0 < b - athis: ε > 0, upper_integral f I - lower_integral f I ε * (b - a)lower_le_upper:0 upper_integral f I - lower_integral f Ih:0 < upper_integral f I - lower_integral f Iε: := (upper_integral f I - lower_integral f I) / (2 * (b - a))ε > 0 All goals completed! 🐙) using 1; All goals completed! 🐙 All goals completed! 🐙 All goals completed! 🐙

Corollary 11.5.2

theorem integ_of_cts {a b:} {f: } (hf: ContinuousOn f (Icc a b)) : IntegrableOn f (Icc a b) := integ_of_uniform_cts (UniformContinuousOn.of_continuousOn hf)
declaration uses `sorry`example : ContinuousOn (fun x: 1/x) (Icc 0 1) := ContinuousOn (fun x 1 / x) (Icc 0 1) All goals completed! 🐙declaration uses `sorry`example : ¬ IntegrableOn (fun x: 1/x) (Icc 0 1) := ¬IntegrableOn (fun x 1 / x) (Icc 0 1) All goals completed! 🐙

Proposition 11.5.3

open PiecewiseConstantOn ConstantOn in set_option maxHeartbeats 300000 intheorem integ_of_bdd_cts {I: BoundedInterval} {f: } (hbound: BddOn f I) (hf: ContinuousOn f I) : IntegrableOn f I := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I -- This proof is written to follow the structure of the original text. I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f Ihsing:I.length = 0IntegrableOn f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f Ihsing:¬I.length = 0IntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f Ihsing:I.length = 0IntegrableOn f I All goals completed! 🐙 have hI : (I:Set ).Nonempty := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f Ihsing:¬I.length = 0this:I = False; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f Ihsing:¬Subsingleton Ithis:I = False; All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptyhsing:I.a < I.bIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ahsing:a < I.bIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < bIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 MIntegrableOn f I have (ε:) (: ε > 0) : upper_integral f I - lower_integral f I (4*M+2) * ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2upper_integral f I - lower_integral f I (4 * M + 2) * εI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2BddOn f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2ContinuousOn f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(↑I).NonemptyI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2I.a < I.bI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2lower_integral f I upper_integral f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 20 MI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(b - a) / 3 > 0I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(b - a) / 3 < (I.b - I.a) / 2I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2BddOn f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2ContinuousOn f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(↑I).NonemptyI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2I.a < I.bI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2lower_integral f I upper_integral f II:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 20 MI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(b - a) / 3 > 0I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0this: {I : BoundedInterval} {f : }, BddOn f I ContinuousOn f I (↑I).Nonempty let a := I.a; let b := I.b; a < b lower_integral f I upper_integral f I (M : ), (∀ x I, |f x| M) 0 M ε > 0, ε < (b - a) / 2 upper_integral f I - lower_integral f I (4 * M + 2) * εhε':¬ε < (b - a) / 2(b - a) / 3 < (I.b - I.a) / 2I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)upper_integral f I - lower_integral f I (4 * M + 2) * ε first | I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)upper_integral f I - lower_integral f I (4 * M + 2) * ε | I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)upper_integral f I - lower_integral f I (4 * M + 2) * ε | I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)(4 * M + 2) * ((b - a) / 3) (4 * M + 2) * ε; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':¬ε < (b - a) / 2this:upper_integral f I - lower_integral f I (4 * M + 2) * ((b - a) / 3)(b - a) / 3 ε; All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bupper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)upper_integral f I - lower_integral f I (4 * M + 2) * ε have Ileftlen : |Ileft|ₗ = ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileft.length = ε All goals completed! 🐙 have Irightlen : |Iright|ₗ = ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIright.length = ε All goals completed! 🐙 have hjoin1 : Ileft'.joins Ileft I' := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I'f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I'f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I'f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I' case Icc _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I' f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε All goals completed! 🐙 case Ico _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I' f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε All goals completed! 🐙 case Ioc _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I' f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa < a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa < a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε All goals completed! 🐙 case Ioo _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εIleft'.joins Ileft I' f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa < a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa < a + εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εa + ε b - ε All goals completed! 🐙 have hjoin2: I.joins Ileft' Iright := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ioo a✝ b✝).joins Ileft' Irightf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Icc a✝ b✝).joins Ileft' Irightf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ioc a✝ b✝).joins Ileft' Irightf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ico a✝ b✝).joins Ileft' Iright case Icc _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Icc a✝ b✝).joins Ileft' Iright f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε b✝ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Icc a✝ b✝)hf:ContinuousOn f (Icc a✝ b✝)hI:(↑(Icc a✝ b✝)).Nonemptya: := (Icc a✝ b✝).ab: := (Icc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Icc a✝ b✝) upper_integral f (Icc a✝ b✝)hM: x (Icc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Icc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε b✝ All goals completed! 🐙 case Ico _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ico a✝ b✝).joins Ileft' Iright f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε < b✝ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ico a✝ b✝)hf:ContinuousOn f (Ico a✝ b✝)hI:(↑(Ico a✝ b✝)).Nonemptya: := (Ico a✝ b✝).ab: := (Ico a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ico a✝ b✝) upper_integral f (Ico a✝ b✝)hM: x (Ico a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ico a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε < b✝ All goals completed! 🐙 case Ioc _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ioc a✝ b✝).joins Ileft' Iright f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε b✝ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioc a✝ b✝)hf:ContinuousOn f (Ioc a✝ b✝)hI:(↑(Ioc a✝ b✝)).Nonemptya: := (Ioc a✝ b✝).ab: := (Ioc a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioc a✝ b✝) upper_integral f (Ioc a✝ b✝)hM: x (Ioc a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioc a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε b✝ All goals completed! 🐙 case Ioo _ _ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'(Ioo a✝ b✝).joins Ileft' Iright f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε < b✝ f: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'a✝ b - εf: M:hMpos:0 Mε::ε > 0a✝:b✝:hbound:BddOn f (Ioo a✝ b✝)hf:ContinuousOn f (Ioo a✝ b✝)hI:(↑(Ioo a✝ b✝)).Nonemptya: := (Ioo a✝ b✝).ab: := (Ioo a✝ b✝).bhsing:a < blower_le_upper:lower_integral f (Ioo a✝ b✝) upper_integral f (Ioo a✝ b✝)hM: x (Ioo a✝ b✝), |f x| Mhε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match Ioo a✝ b✝, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'b - ε < b✝ All goals completed! 🐙 have hf' : IntegrableOn f I' := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Iright(Icc (a + ε) (b - ε)) (Ioo I.a I.b) I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighta✝:a✝ (Icc (a + ε) (b - ε)) a✝ (Ioo I.a I.b); I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighta✝:a + ε a✝ a✝ b - ε I.a < a✝ a✝ < I.b; All goals completed! 🐙 choose h hhmin hhconst hhint using lt_of_gt_upper_integral hf'.1 (show upper_integral f I' < integ f I' + ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙) classical I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mupper_integral f I - lower_integral f I (4 * M + 2) * ε have h'const_left (x:) (hx: x Ileft) : h' x = M := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mx:hx:x Ilefthjoin1:x Ileft I'h' x = M All goals completed! 🐙 have h'const_right (x:) (hx: x Iright) : h' x = M := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mx:hx:x Irighthjoin2:x Ileft' Irighth' x = M I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mx:hx:x Irighthjoin2:x Ileft' Irighthjoin1:(fun x_1 x x_1) Ileft' = (fun x_1 x x_1) (Ileft I')h' x = M All goals completed! 🐙 have h'const : PiecewiseConstantOn h' I := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = M(PiecewiseConstantOn h' Ileft PiecewiseConstantOn h' I') PiecewiseConstantOn h' Iright; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = MPiecewiseConstantOn h' IleftI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = MPiecewiseConstantOn h' I'I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = MPiecewiseConstantOn h' Iright I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = MPiecewiseConstantOn h' Ileft All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = MPiecewiseConstantOn h' I' I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = M x I', h x = h' x; All goals completed! 🐙 All goals completed! 🐙 have h'maj : MajorizesOn h' f I := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I intro x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x If x h' x; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x h' xI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x h' x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x h' xI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x h' x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x M; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ix:a✝:x IhxI':x I'f x M; All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'upper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irightupper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'upper_integral f I - lower_integral f I (4 * M + 2) * ε have h'integ3 : PiecewiseConstantOn.integ h' Ileft = M * ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙 have h'integ4 : PiecewiseConstantOn.integ h' Iright = M * ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙 have h'integ5 : PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I' := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * ε x I', h' x = h x; All goals completed! 🐙 choose g hgmin hgconst hgint using gt_of_lt_lower_integral hf'.1 (show integ f I' - ε < lower_integral f I' I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙) I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mupper_integral f I - lower_integral f I (4 * M + 2) * ε have g'const_left (x:) (hx: x Ileft) : g' x = -M := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mx:hx:x Ilefthjoin1:x Ileft I'g' x = -M All goals completed! 🐙 have g'const_right (x:) (hx: x Iright) : g' x = -M := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mx:hx:x Irighthjoin2:x Ileft' Irightg' x = -M I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mx:hx:x Irighthjoin2:x Ileft' Irighthjoin1:(fun x_1 x x_1) Ileft' = (fun x_1 x x_1) (Ileft I')g' x = -M All goals completed! 🐙 have g'const : PiecewiseConstantOn g' I := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -M(PiecewiseConstantOn g' Ileft PiecewiseConstantOn g' I') PiecewiseConstantOn g' Iright; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -MPiecewiseConstantOn g' IleftI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -MPiecewiseConstantOn g' I'I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -MPiecewiseConstantOn g' Iright I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -MPiecewiseConstantOn g' Ileft All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -MPiecewiseConstantOn g' I' I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -M x I', g x = g' x; All goals completed! 🐙 All goals completed! 🐙 have g'maj : MinorizesOn g' f I := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I intro x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x Ig' x f x; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'g' x f xI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'g' x f x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'g' x f xI:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'g' x f x I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'-M f x; I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ix:a✝:x IhxI':x I'-M f x; All goals completed! 🐙 I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ig'maj✝:MinorizesOn g' f Ig'maj:g'const.integ' lower_integral f Iupper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ig'maj✝:MinorizesOn g' f Ig'maj:g'const.integ' lower_integral f Ig'integ1:PiecewiseConstantOn.integ g' I = PiecewiseConstantOn.integ g' Ileft' + PiecewiseConstantOn.integ g' Irightupper_integral f I - lower_integral f I (4 * M + 2) * ε I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ig'maj✝:MinorizesOn g' f Ig'maj:g'const.integ' lower_integral f Ig'integ1:PiecewiseConstantOn.integ g' I = PiecewiseConstantOn.integ g' Ileft' + PiecewiseConstantOn.integ g' Irightg'integ2:PiecewiseConstantOn.integ g' Ileft' = PiecewiseConstantOn.integ g' Ileft + PiecewiseConstantOn.integ g' I'upper_integral f I - lower_integral f I (4 * M + 2) * ε have g'integ3 : PiecewiseConstantOn.integ g' Ileft = -M * ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙 have g'integ4 : PiecewiseConstantOn.integ g' Iright = -M * ε := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I All goals completed! 🐙 have g'integ5 : PiecewiseConstantOn.integ g' I' = PiecewiseConstantOn.integ g I' := I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IIntegrableOn f I I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mε::ε > 0hε':ε < (b - a) / 2I':BoundedInterval := Icc (a + ε) (b - ε)Ileft:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ico a_1 b, hbound, hf, hI, lower_le_upper, hM => Ico a (a + ε) | Ioc a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε) | Ioo a_1 b, hbound, hf, hI, lower_le_upper, hM => Ioo a (a + ε)Iright:BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ico a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) b | Ioc a b_1, hbound, hf, hI, lower_le_upper, hM => Ioc (b - ε) b | Ioo a b_1, hbound, hf, hI, lower_le_upper, hM => Ioo (b - ε) bIleft':BoundedInterval := match I, hbound, hf, hI, lower_le_upper, hM with | Icc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ico a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Icc a (b - ε) | Ioc a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε) | Ioo a_1 b_1, hbound, hf, hI, lower_le_upper, hM => Ioc a (b - ε)Ileftlen:Ileft.length = εIrightlen:Iright.length = εhjoin1:Ileft'.joins Ileft I'hjoin2:I.joins Ileft' Irighthf':IntegrableOn f I'h: hhmin:MajorizesOn h f I'hhconst:PiecewiseConstantOn h I'hhint:PiecewiseConstantOn.integ h I' < integ f I' + εh': := fun x if x I' then h x else Mh'const_left: x Ileft, h' x = Mh'const_right: x Iright, h' x = Mh'const:PiecewiseConstantOn h' Ih'maj✝:MajorizesOn h' f Ih'maj:upper_integral f I h'const.integ'h'integ1:PiecewiseConstantOn.integ h' I = PiecewiseConstantOn.integ h' Ileft' + PiecewiseConstantOn.integ h' Irighth'integ2:PiecewiseConstantOn.integ h' Ileft' = PiecewiseConstantOn.integ h' Ileft + PiecewiseConstantOn.integ h' I'h'integ3:PiecewiseConstantOn.integ h' Ileft = M * εh'integ4:PiecewiseConstantOn.integ h' Iright = M * εh'integ5:PiecewiseConstantOn.integ h' I' = PiecewiseConstantOn.integ h I'g: hgmin:MinorizesOn g f I'hgconst:PiecewiseConstantOn g I'hgint:integ f I' - ε < PiecewiseConstantOn.integ g I'g': := fun x if x I' then g x else -Mg'const_left: x Ileft, g' x = -Mg'const_right: x Iright, g' x = -Mg'const:PiecewiseConstantOn g' Ig'maj✝:MinorizesOn g' f Ig'maj:g'const.integ' lower_integral f Ig'integ1:PiecewiseConstantOn.integ g' I = PiecewiseConstantOn.integ g' Ileft' + PiecewiseConstantOn.integ g' Irightg'integ2:PiecewiseConstantOn.integ g' Ileft' = PiecewiseConstantOn.integ g' Ileft + PiecewiseConstantOn.integ g' I'g'integ3:PiecewiseConstantOn.integ g' Ileft = -M * εg'integ4:PiecewiseConstantOn.integ g' Iright = -M * ε x I', g' x = g x; All goals completed! 🐙 All goals completed! 🐙 exact hbound, I:BoundedIntervalf: hbound:BddOn f Ihf:ContinuousOn f IhI:(↑I).Nonemptya: := I.ab: := I.bhsing:a < blower_le_upper:lower_integral f I upper_integral f IM:hM: x I, |f x| MhMpos:0 Mthis: ε > 0, upper_integral f I - lower_integral f I (4 * M + 2) * εlower_integral f I = upper_integral f I All goals completed! 🐙

Definition 11.5.4

abbrev PiecewiseContinuousOn (f: ) (I:BoundedInterval) : Prop := P: Partition I, J P.intervals, ContinuousOn f J

Example 11.5.5

noncomputable abbrev f_11_5_5 : := fun x if x < 2 then x^2 else if x = 2 then 7 else x^3
declaration uses `sorry`example : ¬ ContinuousOn f_11_5_5 (Icc 1 3) := ¬ContinuousOn f_11_5_5 (Icc 1 3) All goals completed! 🐙declaration uses `sorry`example : ContinuousOn f_11_5_5 (Ico 1 2) := ContinuousOn f_11_5_5 (Ico 1 2) All goals completed! 🐙declaration uses `sorry`example : ContinuousOn f_11_5_5 (Icc 2 2) := ContinuousOn f_11_5_5 (Icc 2 2) All goals completed! 🐙declaration uses `sorry`example : ContinuousOn f_11_5_5 (Ioc 2 3) := ContinuousOn f_11_5_5 (Ioc 2 3) All goals completed! 🐙declaration uses `sorry`example : PiecewiseContinuousOn f_11_5_5 (Icc 1 3) := PiecewiseContinuousOn f_11_5_5 (Icc 1 3) All goals completed! 🐙

Proposition 11.5.6 / Exercise 11.5.1

theorem declaration uses `sorry`integ_of_bdd_piecewise_cts {I: BoundedInterval} {f: } (hbound: BddOn f I) (hf: PiecewiseContinuousOn f I) : IntegrableOn f I := I:BoundedIntervalf: hbound:BddOn f Ihf:PiecewiseContinuousOn f IIntegrableOn f I All goals completed! 🐙

Exercise 11.5.2

theorem declaration uses `sorry`integ_zero {a b:} (hab: a b) (f: ) (hf: ContinuousOn f (Icc a b)) (hnonneg: MajorizesOn f (fun _ 0) (Icc a b)) (hinteg : integ f (Icc a b) = 0) : x Icc a b, f x = 0 := a:b:hab:a bf: hf:ContinuousOn f (Icc a b)hnonneg:MajorizesOn f (fun x 0) (Icc a b)hinteg:integ f (Icc a b) = 0 x Icc a b, f x = 0 All goals completed! 🐙
end Chapter11