Imports
import Mathlib.Tactic
import Analysis.Section_9_3
import Analysis.Section_9_4Analysis I, Section 9.7: The intermediate value theorem
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 intermediate value theorem.
namespace Chapter9Theorem 9.7.1 (Intermediate value theorem)
theorem intermediate_value {a b:ℝ} (hab: a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b)) {y:ℝ} (hy: y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)) :
∃ c ∈ Set.Icc a b, f c = y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
-- This proof is written to follow the structure of the original text.
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = ya:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_right:y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:y = f a⊢ ∃ c ∈ Set.Icc a b, f c = ya:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f a⊢ ∃ c ∈ Set.Icc a b, f c = y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:y = f a⊢ a ∈ Set.Icc a b ∧ f a = ya:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f a⊢ ∃ c ∈ Set.Icc a b, f c = y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f a⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f ahyb:y = f b⊢ ∃ c ∈ Set.Icc a b, f c = ya:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f ahyb:¬y = f b⊢ ∃ c ∈ Set.Icc a b, f c = y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f ahyb:y = f b⊢ b ∈ Set.Icc a b ∧ f b = ya:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f ahyb:¬y = f b⊢ ∃ c ∈ Set.Icc a b, f c = y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:y ∈ Set.Icc (f a) (f b)hya:¬y = f ahyb:¬y = f b⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhya:¬y = f ahyb:¬y = f bhy_left:f a ≤ y ∧ y ≤ f b⊢ ∃ c ∈ Set.Icc a b, f c = y
replace hya : f a < y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
replace hyb : y < f b := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a b⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove E⊢ ∃ c ∈ Set.Icc a b, f c = y
have hEa : a ∈ E := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
have hE_nonempty : E.Nonempty := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ ∃ c ∈ Set.Icc a b, f c = y
have hc : c ∈ Set.Icc a b := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ a ≤ c ∧ c ≤ b; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ a ≤ ca:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ c ≤ b
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ a ≤ c All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup E⊢ b = sSup (Set.Icc a b)
All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a b⊢ f c = y
have hfc_upper : f c ≤ y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
have hxe (n:ℕ) : ∃ x ∈ E, c - 1/(n+1:ℝ) < x := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
have : 1/(n+1:ℝ) > 0 := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
replace : c - 1/(n+1:ℝ) < sSup E := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choose⊢ f c ≤ y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ E⊢ f c ≤ y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ f c ≤ y
have : Filter.atTop.Tendsto x (nhds c) := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ Filter.Tendsto (fun j ↦ c - 1 / (↑j + 1)) Filter.atTop (nhds c)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ Filter.Tendsto (fun j ↦ c) Filter.atTop (nhds c)a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ (fun j ↦ c - 1 / (↑j + 1)) ≤ xa:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ x ≤ fun j ↦ c
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ Filter.Tendsto (fun j ↦ c - 1 / (↑j + 1)) Filter.atTop (nhds c) a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ c = c - 0;All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ Filter.Tendsto (fun j ↦ c) Filter.atTop (nhds c) All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x n⊢ (fun j ↦ c - 1 / (↑j + 1)) ≤ x All goals completed! 🐙
All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx1:∀ (n : ℕ), x n ∈ Ehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x nthis:Filter.Tendsto (fun n ↦ f (x n)) Filter.atTop (nhds (f c))⊢ f c ≤ y
have hfxny (n:ℕ) : f (x n) ≤ y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x nthis:Filter.Tendsto (fun n ↦ f (x n)) Filter.atTop (nhds (f c))n:ℕhx1:x n ∈ E⊢ f (x n) ≤ y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhxe:∀ (n : ℕ), ∃ x ∈ E, c - 1 / (↑n + 1) < xx:ℕ → ℝ := fun n ↦ ⋯.choosehx2:∀ (n : ℕ), c - 1 / (↑n + 1) < x nthis:Filter.Tendsto (fun n ↦ f (x n)) Filter.atTop (nhds (f c))n:ℕhx1:(a ≤ x n ∧ x n ≤ b) ∧ f (x n) < y⊢ f (x n) ≤ y; All goals completed! 🐙
All goals completed! 🐙
have hne : c < b := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
have hfc_lower : y ≤ f c := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
have : ∃ N:ℕ, ∀ n ≥ N, (c+1/(n+1:ℝ)) < b := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑N⊢ ∃ N, ∀ n ≥ N, c + 1 / (↑n + 1) < b
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑N⊢ ∀ n ≥ N, c + 1 / (↑n + 1) < b; intro n a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ N⊢ c + 1 / (↑n + 1) < b
have hpos : 0 < b-c := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
have : 1/(n+1:ℝ) < b-c := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 1 / (b - c) < ↑n + 1a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 0 < ↑n + 1a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 0 < b - c a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 1 / (b - c) < ↑n + 1a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 0 < ↑n + 1a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ 0 < b - c (try All goals completed! 🐙); a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ ↑N < ↑n + 1; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:1 / (b - c) < ↑Nn:ℕhn:n ≥ Nhpos:0 < b - c⊢ N < n + 1; All goals completed! 🐙
All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < b⊢ y ≤ f c
have hmem : ∀ n ≥ N, (c + 1/(n+1:ℝ)) ∈ Set.Icc a b := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
intro n a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bn:ℕhn:n ≥ N⊢ c + 1 / (↑n + 1) ∈ Set.Icc a b
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bn:ℕhn:n ≥ N⊢ a ≤ c + 1 / (↑n + 1)
have : 1/(n+1:ℝ) > 0 := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
replace : c + 1/(n+1:ℝ) > c := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
All goals completed! 🐙
have : ∀ n ≥ N, c + 1/(n+1:ℝ) ∉ E := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
intro n a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bn:ℕa✝:n ≥ N⊢ c + 1 / (↑n + 1) ∉ E
have : 1/(n+1:ℝ) > 0 := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
replace : c + 1/(n+1:ℝ) > c := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y All goals completed! 🐙
All goals completed! 🐙
replace : ∀ n ≥ N, f (c + 1/(n+1:ℝ)) ≥ y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
intro n a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, c + 1 / (↑n + 1) ∉ En:ℕhn:n ≥ N⊢ f (c + 1 / (↑n + 1)) ≥ y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bn:ℕhn:n ≥ Nthis:c + 1 / (↑n + 1) ∉ E⊢ f (c + 1 / (↑n + 1)) ≥ y; a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bn:ℕhn:n ≥ Nthis:f (c + 1 / (↑n + 1)) < y⊢ c + 1 / (↑n + 1) ∈ E
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bn:ℕhn:n ≥ Nthis:f (c + 1 / (↑n + 1)) < y⊢ (a ≤ c + (↑n + 1)⁻¹ ∧ c + (↑n + 1)⁻¹ ≤ b) ∧ f (c + (↑n + 1)⁻¹) < y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bn:ℕhn:n ≥ Nthis✝:f (c + 1 / (↑n + 1)) < ythis:c + 1 / (↑n + 1) ∈ Set.Icc a b⊢ (a ≤ c + (↑n + 1)⁻¹ ∧ c + (↑n + 1)⁻¹ ≤ b) ∧ f (c + (↑n + 1)⁻¹) < y
All goals completed! 🐙
have hconv : Filter.atTop.Tendsto (fun n:ℕ ↦ c + 1/(n+1:ℝ)) (nhds c) := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ y⊢ c = c + 0; All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhdsWithin c (Set.Icc a b)) (nhds (f c))⊢ y ≤ f c
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhds c ⊓ Filter.principal (Set.Icc a b)) (nhds (f c))⊢ y ≤ f c
have hconv' : Filter.atTop.Tendsto (fun n:ℕ ↦ c + 1/(n+1:ℝ)) (.principal (.Icc a b)) := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:y ∈ Set.Icc (f a) (f b) ∨ y ∈ Set.Icc (f a) (f b)⊢ ∃ c ∈ Set.Icc a b, f c = y
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhds c ⊓ Filter.principal (Set.Icc a b)) (nhds (f c))⊢ ∃ a_1, ∀ (b_1 : ℕ), a_1 ≤ b_1 → c + 1 / (↑b_1 + 1) ∈ Set.Icc a b; All goals completed! 🐙
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhds c ⊓ Filter.principal (Set.Icc a b)) (nhds (f c))hconv':Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c ⊓ Filter.principal (Set.Icc a b))⊢ y ≤ f c
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhds c ⊓ Filter.principal (Set.Icc a b)) (nhds (f c))hconv':Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c ⊓ Filter.principal (Set.Icc a b))⊢ ∀ᶠ (c_1 : ℕ) in Filter.atTop, y ≤ (f ∘ fun n ↦ c + 1 / (↑n + 1)) c_1
a:ℝb:ℝhab:a < bf:ℝ → ℝy:ℝhy_left:f a ≤ y ∧ y ≤ f bhya:f a < yhyb:y < f bE:Set ℝ := {x | x ∈ Set.Icc a b ∧ f x < y}hE:E ⊆ Set.Icc a bhE_bdd:BddAbove EhEa:a ∈ EhE_nonempty:E.Nonemptyc:ℝ := sSup Ehc:c ∈ Set.Icc a bhfc_upper:f c ≤ yhne:c < bN:ℕhN:∀ n ≥ N, c + 1 / (↑n + 1) < bhmem:∀ n ≥ N, c + 1 / (↑n + 1) ∈ Set.Icc a bthis:∀ n ≥ N, f (c + 1 / (↑n + 1)) ≥ yhconv:Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c)hf:Filter.Tendsto f (nhds c ⊓ Filter.principal (Set.Icc a b)) (nhds (f c))hconv':Filter.Tendsto (fun n ↦ c + 1 / (↑n + 1)) Filter.atTop (nhds c ⊓ Filter.principal (Set.Icc a b))⊢ ∃ a, ∀ (b : ℕ), a ≤ b → y ≤ f (c + 1 / (↑b + 1)); All goals completed! 🐙
All goals completed! 🐙
All goals completed! 🐙open Classical in
noncomputable abbrev f_9_7_1 : ℝ → ℝ := fun x ↦ if x ≤ 0 then -1 else 1example : 0 ∈ Set.Icc (f_9_7_1 (-1)) (f_9_7_1 1) ∧ ¬ ∃ x ∈ Set.Icc (-1) 1, f_9_7_1 x = 0 := ⊢ 0 ∈ Set.Icc (f_9_7_1 (-1)) (f_9_7_1 1) ∧ ¬∃ x ∈ Set.Icc (-1) 1, f_9_7_1 x = 0
All goals completed! 🐙Remark 9.7.2
abbrev f_9_7_2 : ℝ → ℝ := fun x ↦ x^3 - xexample : f_9_7_2 (-2) = -6 := ⊢ f_9_7_2 (-2) = -6 All goals completed! 🐙example : f_9_7_2 2 = 6 := ⊢ f_9_7_2 2 = 6 All goals completed! 🐙example : f_9_7_2 (-1) = 0 := ⊢ f_9_7_2 (-1) = 0 All goals completed! 🐙example : f_9_7_2 0 = 0 := ⊢ f_9_7_2 0 = 0 All goals completed! 🐙example : f_9_7_2 1 = 0 := ⊢ f_9_7_2 1 = 0 All goals completed! 🐙/-- Remark 9.7.3 -/
example : ∃ x:ℝ, 0 ≤ x ∧ x ≤ 2 ∧ x^2 = 2 := ⊢ ∃ x, 0 ≤ x ∧ x ≤ 2 ∧ x ^ 2 = 2 All goals completed! 🐙Corollary 9.7.4 (Images of continuous functions) / Exercise 9.7.1
theorem continuous_image_Icc {a b:ℝ} (hab: a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b)) {y:ℝ} (hy: sInf (f '' .Icc a b) ≤ y ∧ y ≤ sSup (f '' .Icc a b)) : ∃ c ∈ Set.Icc a b, f c = y := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)y:ℝhy:sInf (f '' Set.Icc a b) ≤ y ∧ y ≤ sSup (f '' Set.Icc a b)⊢ ∃ c ∈ Set.Icc a b, f c = y
All goals completed! 🐙theorem continuous_image_Icc' {a b:ℝ} (hab: a < b) {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc a b)) : f '' .Icc a b = .Icc (sInf (f '' .Icc a b)) (sSup (f '' .Icc a b)) := a:ℝb:ℝhab:a < bf:ℝ → ℝhf:ContinuousOn f (Set.Icc a b)⊢ f '' Set.Icc a b = Set.Icc (sInf (f '' Set.Icc a b)) (sSup (f '' Set.Icc a b))
All goals completed! 🐙Exercise 9.7.2
theorem exists_fixed_pt {f:ℝ → ℝ} (hf: ContinuousOn f (.Icc 0 1)) (hmap: f '' .Icc 0 1 ⊆ .Icc 0 1) : ∃ x ∈ Set.Icc 0 1, f x = x := f:ℝ → ℝhf:ContinuousOn f (Set.Icc 0 1)hmap:f '' Set.Icc 0 1 ⊆ Set.Icc 0 1⊢ ∃ x ∈ Set.Icc 0 1, f x = x
All goals completed! 🐙end Chapter9