Analysis I, Section 11.9: The two fundamental theorems of calculus
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:
-
The fundamental theorems of calculus.
namespace Chapter11open Chapter9 Chapter10 BoundedIntervalTheorem 11.9.1 (First Fundamental Theorem of Calculus)
theorem cts_of_integ {a b:ℝ} {f:ℝ → ℝ} (hf: IntegrableOn f (Icc a b)) :
ContinuousOn (fun x => integ f (Icc a x)) (.Icc a b) := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)⊢ ContinuousOn (fun x => integ f (Icc a x)) (Set.Icc a b)
-- This proof is written to follow the structure of the original text.
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)⊢ ContinuousOn F (Set.Icc a b)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ M⊢ ContinuousOn F (Set.Icc a b)
have {x y:ℝ} (hxy: x < y) (hx: x ∈ Set.Icc a b) (hy: y ∈ Set.Icc a b) : |F y - F x| ≤ M * (y - x) := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)⊢ ContinuousOn (fun x => integ f (Icc a x)) (Set.Icc a b)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ b⊢ |F y - F x| ≤ M * (y - x)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ |F y - F x| ≤ M * (y - x)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x y) ≤ M * (y - x) ∧ -integ f (Ioc x y) ≤ M * (y - x)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x y) ≤ M * (y - x)a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ -integ f (Ioc x y) ≤ M * (y - x)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x y) ≤ M * (y - x) a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ M * (y - x) = integ (fun x => M) (Ioc x y)a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ MajorizesOn (fun x => M) f (Ioc x y)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ M * (y - x) = integ (fun x => M) (Ioc x y) All goals completed! 🐙
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ f z ≤ (fun x => M) z
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ z ∈ ↑(Icc a b)a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)hM:|f z| ≤ M⊢ f z ≤ (fun x => M) z
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ z ∈ ↑(Icc a b) a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:Chapter11.IntegrableOn _fvar.269 (Chapter11.BoundedInterval.Ioc _fvar.369 _fvar.371) ∧
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 _fvar.371) =
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 _fvar.369) +
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Ioc _fvar.369 _fvar.371) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhM:∀ (x : ℝ), a ≤ x → x ≤ b → |f x| ≤ Mhz:x < z ∧ z ≤ y⊢ a ≤ z ∧ z ≤ b; All goals completed! 🐙
All goals completed! 🐙
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ -(M * (y - x)) ≤ integ f (Ioc x y)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ -(M * (y - x)) = integ (fun x => -M) (Ioc x y)a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ MajorizesOn f (fun x => -M) (Ioc x y)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ -(M * (y - x)) = integ (fun x => -M) (Ioc x y) All goals completed! 🐙
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ (fun x => -M) z ≤ f z
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ z ∈ ↑(Icc a b)a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)hM:|f z| ≤ M⊢ (fun x => -M) z ≤ f z
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:?_mvar.4814 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x y)⊢ z ∈ ↑(Icc a b) a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝx:ℝy:ℝhxy:x < yhx:a ≤ x ∧ x ≤ bhy:a ≤ y ∧ y ≤ bthis:Chapter11.IntegrableOn _fvar.269 (Chapter11.BoundedInterval.Ioc _fvar.369 _fvar.371) ∧
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 _fvar.371) =
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 _fvar.369) +
Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Ioc _fvar.369 _fvar.371) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhM:∀ (x : ℝ), a ≤ x → x ≤ b → |f x| ≤ Mhz:x < z ∧ z ≤ y⊢ a ≤ z ∧ z ≤ b; All goals completed! 🐙
All goals completed! 🐙
replace {x y:ℝ} (hx: x ∈ Set.Icc a b) (hy: y ∈ Set.Icc a b) :
|F y - F x| ≤ M * |x-y| := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)⊢ ContinuousOn (fun x => integ f (Icc a x)) (Set.Icc a b)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝy:ℝhx:x ∈ Set.Icc a bhy:y ∈ Set.Icc a bh:x < y⊢ |F y - F x| ≤ M * |x - y|a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝhx:x ∈ Set.Icc a bhy:x ∈ Set.Icc a b⊢ |F x - F x| ≤ M * |x - x|a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝy:ℝhx:x ∈ Set.Icc a bhy:y ∈ Set.Icc a bh:y < x⊢ |F y - F x| ≤ M * |x - y|
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝy:ℝhx:x ∈ Set.Icc a bhy:y ∈ Set.Icc a bh:x < y⊢ |F y - F x| ≤ M * |x - y| All goals completed! 🐙
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝhx:x ∈ Set.Icc a bhy:x ∈ Set.Icc a b⊢ |F x - F x| ≤ M * |x - x| All goals completed! 🐙
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x < y →
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * (y - x) :=
fun {x y} hxy hx hy => @?_mvar.783 x y hxy hx hyx:ℝy:ℝhx:x ∈ Set.Icc a bhy:y ∈ Set.Icc a bh:y < x⊢ |F y - F x| ≤ M * |x - y| All goals completed! 🐙
replace : UniformContinuousOn F (.Icc a b) := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)⊢ ContinuousOn (fun x => integ f (Icc a x)) (Set.Icc a b)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy => @?_mvar.113520 x y hx hy⊢ ∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ x ∈ Set.Icc a b, ∀ y ∈ Set.Icc a b, |x - y| < δ → |F x - F y| < ε
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy => @?_mvar.113520 x y hx hyε:ℝhε:0 < ε⊢ ∃ δ, 0 < δ ∧ ∀ x ∈ Set.Icc a b, ∀ y ∈ Set.Icc a b, |x - y| < δ → |F x - F y| < ε
use (ε/(max M 1)), (a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < ε⊢ 0 < ε / max M 1 All goals completed! 🐙)
a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy => @?_mvar.113520 x y hx hyε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ |F x - F y| < ε
calc
_ = |F y - F x| := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ |F x - F y| = |F y - F x| All goals completed! 🐙
_ ≤ M * |x-y| := this hx hy
_ ≤ (max M 1) * |x-y| := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ M * |x - y| ≤ max M 1 * |x - y| a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ M ≤ max M 1; All goals completed! 🐙
_ < (max M 1) * (ε / (max M 1)) := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ max M 1 * |x - y| < max M 1 * (ε / max M 1) All goals completed! 🐙
_ = _ := a:ℝb:ℝf:ℝ → ℝhf:IntegrableOn f (Icc a b)F:ℝ → ℝ := fun x => Chapter11.integ _fvar.269 (Chapter11.BoundedInterval.Icc _fvar.267 x)M:ℝhM:∀ x ∈ ↑(Icc a b), |f x| ≤ Mthis:∀ {x y : ℝ},
x ∈ Set.Icc _fvar.267 _fvar.268 →
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y| :=
fun {x y} hx hy =>
Or.casesOn (lt_trichotomy x y)
(fun h =>
of_eq_true
(Eq.trans
(congrArg (fun x_1 => |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * x_1)
(Eq.trans
(abs_of_neg
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (x ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Eq.refl (Int.ofNat 1)))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(y ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))
(neg_sub x y)))
(eq_true (@_fvar.784 x y h hx hy))))
fun h =>
Or.casesOn h
(fun h =>
Eq.ndrec (motive := fun {y} =>
y ∈ Set.Icc _fvar.267 _fvar.268 → |@_fvar.281 y - @_fvar.281 x| ≤ _fvar.360 * |x - y|)
(fun hy =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (Eq.trans (congrArg abs (sub_self (@_fvar.281 x))) abs_zero))
(Eq.trans (congrArg (HMul.hMul _fvar.360) (Eq.trans (congrArg abs (sub_self x)) abs_zero))
(mul_zero _fvar.360)))
(le_refl._simp_1 0)))
h hy)
fun h =>
of_eq_true
(Eq.trans
(congr (congrArg LE.le (abs_sub_comm (@_fvar.281 y) (@_fvar.281 x)))
(congrArg (HMul.hMul _fvar.360)
(abs_of_pos
(have this :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul x (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (y ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(x ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf x)
(Mathlib.Tactic.Ring.atom_pf y)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul y (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero (x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(y ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast +
(x ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero y (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero x (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt h)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)));
this))))
(eq_true (@_fvar.784 y x h hy hx)))ε:ℝhε:0 < εx:ℝhx:x ∈ Set.Icc a by:ℝhy:y ∈ Set.Icc a bhxy:|x - y| < ε / max M 1⊢ max M 1 * (ε / max M 1) = ε All goals completed! 🐙
All goals completed! 🐙theorem deriv_of_integ {a b:ℝ} (hab: a < b) {f:ℝ → ℝ} (hf: IntegrableOn f (Icc a b))
{x₀:ℝ} (hx₀ : x₀ ∈ Set.Icc a b) (hcts: ContinuousWithinAt f (Icc a b) x₀) :
HasDerivWithinAt (fun x => integ f (Icc a x)) (f x₀) (.Icc a b) x₀ := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:ContinuousWithinAt f (↑(Icc a b)) x₀⊢ HasDerivWithinAt (fun x => integ f (Icc a x)) (f x₀) (Set.Icc a b) x₀
-- This proof is written to follow the structure of the original text.
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:ContinuousWithinAt f (↑(Icc a b)) x₀⊢ ∀ ε > 0,
∃ δ > 0, ∀ x ∈ Set.Icc a b, |x - x₀| < δ → |integ f (Icc a x) - integ f (Icc a x₀) - f x₀ * (x - x₀)| ≤ ε * |x - x₀|
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < ε⊢ ∀ ε > 0,
∃ δ > 0, ∀ x ∈ Set.Icc a b, |x - x₀| < δ → |integ f (Icc a x) - integ f (Icc a x₀) - f x₀ * (x - x₀)| ≤ ε * |x - x₀|
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < ε⊢ ∀ x ∈ Set.Icc a b, |x - x₀| < δ → |integ f (Icc a x) - integ f (Icc a x₀) - f x₀ * (x - x₀)| ≤ ε * |x - x₀|; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δ⊢ |integ f (Icc a y) - integ f (Icc a x₀) - f x₀ * (y - x₀)| ≤ ε * |y - x₀|
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < y⊢ |integ f (Icc a y) - integ f (Icc a x₀) - f x₀ * (y - x₀)| ≤ ε * |y - x₀|a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εhy:x₀ ∈ Set.Icc a bhyδ:|x₀ - x₀| < δ⊢ |integ f (Icc a x₀) - integ f (Icc a x₀) - f x₀ * (x₀ - x₀)| ≤ ε * |x₀ - x₀|a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:y < x₀⊢ |integ f (Icc a y) - integ f (Icc a x₀) - f x₀ * (y - x₀)| ≤ ε * |y - x₀|
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < y⊢ |integ f (Icc a y) - integ f (Icc a x₀) - f x₀ * (y - x₀)| ≤ ε * |y - x₀| a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ |integ f (Icc a y) - integ f (Icc a x₀) - f x₀ * (y - x₀)| ≤ ε * |y - x₀|
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) ∧ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y)
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:?_mvar.193198 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) ∧ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ MajorizesOn (fun x => f x₀ + ε) f (Ioc x₀ y)
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:?_mvar.193198 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h2:?_mvar.193278 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) ∧ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:?_mvar.193198 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ MajorizesOn f (fun x => f x₀ - ε) (Ioc x₀ y)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ MajorizesOn (fun x => f x₀ + ε) f (Ioc x₀ y)
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:?_mvar.193198 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h2:?_mvar.193278 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) ∧ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y) a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) ∧ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y)
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y)
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ integ f (Ioc x₀ y) ≤ ε * (y - x₀) + f x₀ * (y - x₀) a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ ε * (y - x₀) + f x₀ * (y - x₀) = (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a); All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h1:integ f (Ioc x₀ y) ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a)h2:(f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) ≤ integ f (Ioc x₀ y)⊢ f x₀ * (y - x₀) ≤ ε * (y - x₀) + integ f (Ioc x₀ y) a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhyδ:|y - x₀| < δhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hx₀:0 ≤ x₀ - a - 0 ∧ 0 ≤ b - x₀ - 0hcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), 0 ≤ x - a - 0 → 0 ≤ b - x - 0 → |x - x₀| < δ → |f x - f x₀| < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), 0 ≤ x - a - 0 → 0 ≤ b - x - 0 → |x - x₀| < δ → |f x - f x₀| < εhy:0 ≤ y - a - 0 ∧ 0 ≤ b - y - 0h1:0 ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) - integ f (Ioc x₀ y) - 0h2:0 ≤ integ f (Ioc x₀ y) - (f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) - 0⊢ 0 ≤ ε * (y - x₀) + integ f (Ioc x₀ y) - f x₀ * (y - x₀) - 0; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhyδ:|y - x₀| < δhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hx₀:0 ≤ x₀ - a - 0 ∧ 0 ≤ b - x₀ - 0hcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), 0 ≤ x - a - 0 → 0 ≤ b - x - 0 → |x - x₀| < δ → |f x - f x₀| < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), 0 ≤ x - a - 0 → 0 ≤ b - x - 0 → |x - x₀| < δ → |f x - f x₀| < εhy:0 ≤ y - a - 0 ∧ 0 ≤ b - y - 0h1:0 ≤ (f x₀ + ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) - integ f (Ioc x₀ y) - 0h2:0 ≤ integ f (Ioc x₀ y) - (f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) - 0⊢ ε * (y - x₀) + integ f (Ioc x₀ y) - f x₀ * (y - x₀) - 0 =
integ f (Ioc x₀ y) - (f x₀ - ε) * ((Ioc x₀ y).b - (Ioc x₀ y).a) - 0; All goals completed! 🐙
all_goals a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝhx₀:x₀ ∈ Set.Icc a bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εε:ℝhε:ε > 0δ:ℝhδ:δ > 0hconv:∀ (x : ℝ), a ≤ x → x ≤ b → |x - x₀| < δ → |f x - f x₀| < εy:ℝhy:y ∈ Set.Icc a bhyδ:|y - x₀| < δhx₀y:x₀ < ythis:?_mvar.180784 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhz:z ∈ ↑(Ioc x₀ y)⊢ f z ≤ (fun x => f x₀ + ε) z; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ f z ≤ f x₀ + ε; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ a ≤ za:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ z ≤ ba:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ x₀ < δ + za:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ z - x₀ < δa:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ yhconv:f x₀ < ε + f z ∧ f z - f x₀ < ε⊢ f z ≤ f x₀ + ε a:ℝb:ℝhab:a < bf:ℝ → ℝhf:IntegrableOn f (Icc a b)x₀:ℝε:ℝδ:ℝy:ℝhx₀y:x₀ < ythis:Chapter11.IntegrableOn _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) ∧
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.180693) =
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Icc _fvar.162051 _fvar.162056) +
Chapter11.integ _fvar.162054 (Chapter11.BoundedInterval.Ioc _fvar.162056 _fvar.180693) :=
failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)z:ℝhx₀:a ≤ x₀ ∧ x₀ ≤ bhcts:∀ (ε : ℝ), 0 < ε → ∃ δ, 0 < δ ∧ ∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhε:0 < εhδ:0 < δhconv:∀ (x : ℝ), a ≤ x → x ≤ b → x₀ < δ + x → x - x₀ < δ → f x₀ < ε + f x ∧ f x - f x₀ < εhy:a ≤ y ∧ y ≤ bhyδ:x₀ < δ + y ∧ y - x₀ < δhz:x₀ < z ∧ z ≤ y⊢ a ≤ za:ℝb:ℝhab:a < b