Analysis I, Section 9.6: The maximum principle
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:
-
Continuous functions on closed and bounded intervals are bounded.
-
Continuous functions on closed and bounded intervals attain their maximum and minimum.
namespace Chapter9
abbrev BddBelowOn (f:ℝ → ℝ) (X:Set ℝ) : Prop := ∃ M, ∀ x ∈ X, -M ≤ f xabbrev BddOn (f:ℝ → ℝ) (X:Set ℝ) : Prop := ∃ M, ∀ x ∈ X, |f x| ≤ MRemark 9.6.2
theorem BddOn.iff (f:ℝ → ℝ) (X:Set ℝ) : BddOn f X ↔ BddAboveOn f X ∧ BddBelowOn f X := f:ℝ → ℝX:Set ℝ⊢ BddOn f X ↔ BddAboveOn f X ∧ BddBelowOn f X
All goals completed! 🐙theorem BddOn.iff' (f:ℝ → ℝ) (X:Set ℝ) : BddOn f X ↔ Bornology.IsBounded (f '' X) := f:ℝ → ℝX:Set ℝ⊢ BddOn f X ↔ Bornology.IsBounded (f '' X)
All goals completed! 🐙theorem BddOn.of_bounded {f :ℝ → ℝ} {X: Set ℝ} {M:ℝ} (h: ∀ x ∈ X, |f x| ≤ M) : BddOn f X := f:ℝ → ℝX:Set ℝM:ℝh:∀ x ∈ X, |f x| ≤ M⊢ BddOn f X All goals completed! 🐙example : Continuous (fun x:ℝ ↦ x) := ⊢ Continuous fun x => x All goals completed! 🐙example : ¬ BddOn (fun x:ℝ ↦ x) .univ := ⊢ ¬BddOn (fun x => x) Set.univ All goals completed! 🐙example : BddOn (fun x:ℝ ↦ x) (.Icc 1 2) := ⊢ BddOn (fun x => x) (Set.Icc 1 2) All goals completed! 🐙example : ContinuousOn (fun x:ℝ ↦ 1/x) (.Ioo 0 1) := ⊢ ContinuousOn (fun x => 1 / x) (Set.Ioo 0 1) All goals completed! 🐙example : ¬ BddOn (fun x:ℝ ↦ 1/x) (.Ioo 0 1) := ⊢ ¬BddOn (fun x => 1 / x) (Set.Ioo 0 1) All goals completed! 🐙theorem why_7_6_3 {n: ℕ → ℕ} (hn: StrictMono n) (j:ℕ) : n j ≥ j := n:ℕ → ℕhn:StrictMono nj:ℕ⊢ n j ≥ j All goals completed! 🐙Lemma 7.6.3
theorem BddOn.of_continuous_on_compact {a b:ℝ} (h:a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b) ) :
BddOn f (.Icc a b) := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ BddOn f (Set.Icc a b)
-- This proof is written to follow the structure of the original text.
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)hunbound:¬BddOn f (Set.Icc a b)⊢ False; a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)hunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)hunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)hunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f X⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)⊢ False
have haX (n:ℕ): x n ∈ X := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ BddOn f (Set.Icc a b) a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ⊢ a ≤ x n ∧ x n ≤ b; a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)n:ℕhx:a ≤ x n ∧ x n ≤ b ∧ ↑n < |f (x n)|⊢ a ≤ x n ∧ x n ≤ b; All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 j⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jhf:?_mvar.76307 := ContinuousOn.continuousWithinAt _fvar.19697 _fvar.76093⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jhf:Convergesto X f (f L) L⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jhf:?_mvar.76420 :=
Chapter9.Convergesto.comp (Chapter9.AdherentPt.of_mem _fvar.76093) _fvar.76409 (fun j => @_fvar.70684 (@_fvar.76090 j))
_fvar.76094⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jhf:Bornology.IsBounded (Set.range fun n_1 => f (x (n n_1)))⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jhf:∃ M > 0, (Set.range fun n_1 => f (x (n n_1))) ⊆ Set.Icc (-M) M⊢ False; a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jM:ℝhpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) ⊆ Set.Icc (-M) M⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)hx:∀ (n : ℕ), _fvar.1907 ≤ @_fvar.18463 n ∧ @_fvar.18463 n ≤ _fvar.1908 ∧ ↑n < |@_fvar.1910 (@_fvar.18463 n)| := fun n => Exists.choose_spec (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jM:ℝhpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) ⊆ Set.Icc (-M) Mj:ℕhj:M < ↑j⊢ False
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jM:ℝhpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) ⊆ Set.Icc (-M) Mj:ℕhj:M < ↑jhx:?_mvar.76605 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ False
replace hM : f (x (n j)) ∈ Set.Icc (-M) M := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ BddOn f (Set.Icc a b) All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhunbound:∀ (x : ℝ), ∃ x_1, a ≤ x_1 ∧ x_1 ≤ b ∧ x < |f x_1|x:ℕ → ℝ := fun n => Exists.choose (@_fvar.18408 ↑n)X:Set ℝ := Set.Icc _fvar.1907 _fvar.1908hXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX:∀ (n : ℕ), @_fvar.18463 n ∈ _fvar.19623 := fun n => @?_mvar.70683 nn:ℕ → ℕhn:StrictMono nL:ℝhLX:L ∈ Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why:∀ (j : ℕ), @_fvar.76090 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.76091 jM:ℝhpos:M > 0j:ℕhj:M < ↑jhx:?_mvar.76605 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hM:|f (x (n j))| ≤ M⊢ False
have : n j ≥ (j:ℝ) := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ BddOn f (Set.Icc a b) All goals completed! 🐙
All goals completed! 🐙Remark 9.6.6
theorem BddAboveOn.isMaxOn {f:ℝ → ℝ} {X:Set ℝ} {x₀:ℝ} (h: IsMaxOn f X x₀): BddAboveOn f X := f:ℝ → ℝX:Set ℝx₀:ℝh:IsMaxOn f X x₀⊢ BddAboveOn f X All goals completed! 🐙theorem BddBelowOn.isMinOn {f:ℝ → ℝ} {X:Set ℝ} {x₀:ℝ} (h: IsMinOn f X x₀): BddBelowOn f X := f:ℝ → ℝX:Set ℝx₀:ℝh:IsMinOn f X x₀⊢ BddBelowOn f X All goals completed! 🐙Proposition 9.6.7 (Maximum principle)
theorem IsMaxOn.of_continuous_on_compact {a b:ℝ} (h:a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b)) :
∃ xmax ∈ Set.Icc a b, IsMaxOn f (.Icc a b) xmax := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
-- This proof is written to follow the structure of the original text.
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ M⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
have hE : E ⊆ .Icc (-M) M := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574x:ℝhx:x ∈ Set.Icc a b⊢ f x ∈ Set.Icc (-M) M; All goals completed! 🐙
have hnon : E ≠ ∅ := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860⊢ ¬Set.Icc a b = ∅; a:ℝb:ℝf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860h:Set.Icc a b = ∅⊢ b ≤ a; All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hy⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
a:ℝb:ℝh✝:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyh:∃ xmax ∈ Set.Icc a b, f xmax = m⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmaxa:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hy⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh✝:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyh:∃ xmax ∈ Set.Icc a b, f xmax = m⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙
have claim2 (n:ℕ) : ∃ x ∈ Set.Icc a b, m - 1/(n+1:ℝ) < f x := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
have : 1/(n+1:ℝ) > 0 := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙
replace : m - 1/(n+1:ℝ) < sSup E := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:E.Nonemptym:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ E → y ≤ mn:ℕthis:m - 1 / (↑n + 1) < sSup E⊢ ∃ x ∈ Set.Icc a b, m - 1 / (↑n + 1) < f x
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:E.Nonemptym:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ E → y ≤ mn:ℕthis:∃ a ∈ E, m - 1 / (↑n + 1) < a⊢ ∃ x ∈ Set.Icc a b, m - 1 / (↑n + 1) < f x
All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).left⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).right⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)⊢ ∃ xmax ∈ Set.Icc a b, f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)⊢ f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 j⊢ f xmax = m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306⊢ f xmax = m
have hlower (j:ℕ) : m - 1/(j+1:ℝ) < f (x (n j)) := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306j:ℕ⊢ m - 1 / (↑j + 1) ≤ m - 1 / (↑(n j) + 1); a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306j:ℕ⊢ j ≤ n j; All goals completed! 🐙
have hupper (j:ℕ) : f (x (n j)) ≤ m := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jj:ℕ⊢ f (x (n j)) ∈ E; a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jj:ℕ⊢ ∃ x_1, (a ≤ x_1 ∧ x_1 ≤ b) ∧ f x_1 = f (x (n j)); All goals completed! 🐙
have hconvm : Filter.atTop.Tendsto (fun j ↦ f (x (n j))) (nhds m) := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ Filter.Tendsto (fun j => m - 1 / (↑j + 1)) Filter.atTop (nhds m)a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ Filter.Tendsto (fun x => m) Filter.atTop (nhds m)a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ (fun j => m - 1 / (↑j + 1)) ≤ fun j => f (x (n j))a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ (fun j => f (x (n j))) ≤ fun x => m
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ Filter.Tendsto (fun j => m - 1 / (↑j + 1)) Filter.atTop (nhds m) a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ m = m - 0; All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ Filter.Tendsto (fun x => m) Filter.atTop (nhds m) All goals completed! 🐙
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 j⊢ (fun j => m - 1 / (↑j + 1)) ≤ fun j => f (x (n j)) a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)M:ℝhM:∀ x ∈ Set.Icc a b, |f x| ≤ ME:Set ℝ := _fvar.87576 '' Set.Icc _fvar.87573 _fvar.87574hE:_fvar.87676 ⊆ Set.Icc (-_fvar.87599) _fvar.87599 := ?_mvar.87860hnon:_fvar.87676 ≠ ∅ := ?_mvar.91589m:ℝ := sSup _fvar.87676claim1:∀ {y : ℝ}, y ∈ _fvar.87676 → y ≤ _fvar.95138 := fun {y} hy => le_csSup (BddAbove.mono _fvar.87861 bddAbove_Icc) hyclaim2:∀ (n : ℕ), ∃ x ∈ Set.Icc _fvar.87573 _fvar.87574, _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 x := fun n => @?_mvar.96020 nx:ℕ → ℝ := fun n => Exists.choose (@_fvar.96021 n)hx:∀ (n : ℕ), @_fvar.105367 n ∈ Set.Icc _fvar.87573 _fvar.87574 := fun n => (Exists.choose_spec (@_fvar.96021 n)).lefthfx:∀ (n : ℕ), _fvar.95138 - 1 / (↑n + 1) < @_fvar.87576 (@_fvar.105367 n) := fun n => (Exists.choose_spec (@_fvar.96021 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n:ℕ → ℕhn:StrictMono nxmax:ℝhmax:xmax ∈ Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower:∀ (j : ℕ), @_fvar.107302 j ≥ j := fun j => Chapter9.why_7_6_3 _fvar.107303 jhconv':Filter.Tendsto (fun j => @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j))) Filter.atTop (nhds (@_fvar.87576 _fvar.107304)) :=
Filter.Tendsto.comp_of_continuous _fvar.107305 (ContinuousOn.continuousWithinAt _fvar.87577 _fvar.107305)
(fun j => @_fvar.105685 (@_fvar.107302 j)) _fvar.107306hlower:∀ (j : ℕ), _fvar.95138 - 1 / (↑j + 1) < @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) := fun j => @?_mvar.108136 jhupper:∀ (j : ℕ), @_fvar.87576 (@_fvar.105367 (@_fvar.107302 j)) ≤ _fvar.95138 := fun j => @?_mvar.134073 ji✝:ℕ⊢ (fun j => m - 1 / (↑j + 1)) i✝ ≤ (fun j => f (x (n j))) i✝; All goals completed! 🐙
All goals completed! 🐙
All goals completed! 🐙theorem IsMinOn.of_continuous_on_compact {a b:ℝ} (h:a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b)) :
∃ xmin ∈ Set.Icc a b, IsMinOn f (.Icc a b) xmin := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmin ∈ Set.Icc a b, IsMinOn f (Set.Icc a b) xmin
All goals completed! 🐙example : IsMaxOn (fun x ↦ x^2) (.Icc (-2) 2) 2 := ⊢ IsMaxOn (fun x => x ^ 2) (Set.Icc (-2) 2) 2 All goals completed! 🐙example : IsMaxOn (fun x ↦ x^2) (.Icc (-2) 2) (-2) := ⊢ IsMaxOn (fun x => x ^ 2) (Set.Icc (-2) 2) (-2) All goals completed! 🐙theorem sSup.of_isMaxOn {f:ℝ → ℝ} {X:Set ℝ} {x₀:ℝ} (hx₀: x₀ ∈ X) (h: IsMaxOn f X x₀) :
sSup (f '' X) = f x₀ := f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMaxOn f X x₀⊢ sSup (f '' X) = f x₀
f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMaxOn f X x₀⊢ IsGreatest (f '' X) (f x₀)
f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMaxOn f X x₀⊢ (∃ x ∈ X, f x = f x₀) ∧ ∀ a ∈ X, f a ≤ f x₀
All goals completed! 🐙theorem sInf.of_isMinOn {f:ℝ → ℝ} {X:Set ℝ} {x₀:ℝ} (hx₀: x₀ ∈ X) (h: IsMinOn f X x₀) :
sInf (f '' X) = f x₀ := f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMinOn f X x₀⊢ sInf (f '' X) = f x₀
f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMinOn f X x₀⊢ IsLeast (f '' X) (f x₀)
f:ℝ → ℝX:Set ℝx₀:ℝhx₀:x₀ ∈ Xh:IsMinOn f X x₀⊢ (∃ x ∈ X, f x = f x₀) ∧ ∀ a ∈ X, f x₀ ≤ f a
All goals completed! 🐙theorem sSup.of_continuous_on_compact {a b:ℝ} (h:a < b) (f:ℝ → ℝ) (hf: ContinuousOn f (.Icc a b)) : ∃ xmax ∈ Set.Icc a b, sSup (f '' .Icc a b) = f xmax := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmax ∈ Set.Icc a b, sSup (f '' Set.Icc a b) = f xmax
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)x:ℝhx:x ∈ Set.Icc a bh':IsMaxOn f (Set.Icc a b) x⊢ ∃ xmax ∈ Set.Icc a b, sSup (f '' Set.Icc a b) = f xmax
All goals completed! 🐙theorem sInf.of_continuous_on_compact {a b:ℝ} (h:a < b) (f:ℝ → ℝ) (hf: ContinuousOn f (.Icc a b)) : ∃ xmin ∈ Set.Icc a b, sInf (f '' .Icc a b) = f xmin := a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ ∃ xmin ∈ Set.Icc a b, sInf (f '' Set.Icc a b) = f xmin
a:ℝb:ℝh:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)x:ℝhx:x ∈ Set.Icc a bh':IsMinOn f (Set.Icc a b) x⊢ ∃ xmin ∈ Set.Icc a b, sInf (f '' Set.Icc a b) = f xmin
All goals completed! 🐙Exercise 9.6.1
example : ∃ f: ℝ → ℝ, ContinuousOn f (.Ioo 1 2) ∧ BddOn f (.Ioo 1 2) ∧
∃ x₀ ∈ Set.Ioo 1 2, IsMinOn f (.Ioo 1 2) x₀ ∧
¬ ∃ x₀ ∈ Set.Ioo 1 2, IsMaxOn f (.Ioo 1 2) x₀
:= ⊢ ∃ f,
ContinuousOn f (Set.Ioo 1 2) ∧
BddOn f (Set.Ioo 1 2) ∧
∃ x₀ ∈ Set.Ioo 1 2, IsMinOn f (Set.Ioo 1 2) x₀ ∧ ¬∃ x₀ ∈ Set.Ioo 1 2, IsMaxOn f (Set.Ioo 1 2) x₀ All goals completed! 🐙Exercise 9.6.1
example : ∃ f: ℝ → ℝ, ContinuousOn f (.Ioo 1 2) ∧ BddOn f (.Ioo 1 2) ∧
∃ x₀ ∈ Set.Ioo 1 2, IsMaxOn f (.Ioo 1 2) x₀ ∧
¬ ∃ x₀ ∈ Set.Ioo 1 2, IsMinOn f (.Ioo 1 2) x₀
:= ⊢ ∃ f,
ContinuousOn f (Set.Ioo 1 2) ∧
BddOn f (Set.Ioo 1 2) ∧
∃ x₀ ∈ Set.Ioo 1 2, IsMaxOn f (Set.Ioo 1 2) x₀ ∧ ¬∃ x₀ ∈ Set.Ioo 1 2, IsMinOn f (Set.Ioo 1 2) x₀ All goals completed! 🐙Exercise 9.6.1
example : ∃ f: ℝ → ℝ, BddOn f (.Icc (-1) 1) ∧
¬ ∃ x₀ ∈ Set.Icc (-1) 1, IsMinOn f (.Icc (-1) 1) x₀ ∧
¬ ∃ x₀ ∈ Set.Icc (-1) 1, IsMaxOn f (.Icc (-1) 1) x₀
:= ⊢ ∃ f,
BddOn f (Set.Icc (-1) 1) ∧
¬∃ x₀ ∈ Set.Icc (-1) 1, IsMinOn f (Set.Icc (-1) 1) x₀ ∧ ¬∃ x₀ ∈ Set.Icc (-1) 1, IsMaxOn f (Set.Icc (-1) 1) x₀ All goals completed! 🐙Exercise 9.6.1
example : ∃ f: ℝ → ℝ, ¬ BddAboveOn f (.Icc (-1) 1) ∧ ¬ BddBelowOn f (.Icc (-1) 1) := ⊢ ∃ f, ¬BddAboveOn f (Set.Icc (-1) 1) ∧ ¬BddBelowOn f (Set.Icc (-1) 1) All goals completed! 🐙end Chapter9