Аналіз I, Глава 9.10

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:

namespace Chapter9

Визначення 9.10.1 (Infinite adherent point). We use ¬BddAbove sorry : Prop¬ BddAbove unknown identifier 'X'X as our notation for being an adherent point

theorem BddAbove.unbounded_iff (X:Set ) : ¬ BddAbove X M, x X, x > M := X:Set ¬BddAbove X (M : ), x X, x > M All goals completed! 🐙
theorem BddAbove.unbounded_iff' (X:Set ) : ¬ BddAbove X sSup ((fun x: (x:EReal)) '' X) = := X:Set ¬BddAbove X sSup ((fun x => x) '' X) = X:Set (∀ (M : ), x X, M < x) b < , a X, b < a X:Set (∀ (M : ), x X, M < x) b < , a X, b < aX:Set (∀ b < , a X, b < a) (M : ), x X, M < x X:Set (∀ (M : ), x X, M < x) b < , a X, b < a X:Set h: (M : ), x X, M < xM:ERealhM:M < a X, M < a X:Set M:ERealhM:M < h: x X, M.toReal < x a X, M < a X:Set M:ERealhM:M < x:hx:x XhxM:M.toReal < x a X, M < a X:Set M:ERealhM:M < x:hx:x XhxM:M.toReal < xM < x X:Set x:hx:x X M < , M.toReal < x M < x X:Set x:hx:x X( < .toReal < x < x) ( < .toReal < x < x) (r : ), r < (↑r).toReal < x r < x All goals completed! 🐙 X:Set h: b < , a X, b < aM: x X, M < x specialize h (M:EReal) (X:Set h: b < , a X, b < aM:M < All goals completed! 🐙) X:Set M:h: a X, M < a x X, M < x All goals completed! 🐙theorem BddBelow.unbounded_iff (X:Set ) : ¬ BddBelow X M, x X, x < M := X:Set ¬BddBelow X (M : ), x X, x < M All goals completed! 🐙theorem BddBelow.unbounded_iff' (X:Set ) : ¬ BddBelow X sInf ((fun x: (x:EReal)) '' X) = := X:Set ¬BddBelow X sInf ((fun x => x) '' X) = X:Set (∀ (M : ), x X, x < M) (b : EReal), < b a X, a < b X:Set (∀ (M : ), x X, x < M) (b : EReal), < b a X, a < bX:Set (∀ (b : EReal), < b a X, a < b) (M : ), x X, x < M X:Set (∀ (M : ), x X, x < M) (b : EReal), < b a X, a < b X:Set h: (M : ), x X, x < MM:ERealhM: < M a X, a < M X:Set M:ERealhM: < Mh: x X, x < M.toReal a X, a < M X:Set M:ERealhM: < Mx:hx:x XhxM:x < M.toReal a X, a < M X:Set M:ERealhM: < Mx:hx:x XhxM:x < M.toRealx < M X:Set x:hx:x X (M : EReal), < M x < M.toReal x < M X:Set x:hx:x X( < x < .toReal x < ) ( < x < .toReal x < ) (r : ), < r x < (↑r).toReal x < r All goals completed! 🐙 X:Set h: (b : EReal), < b a X, a < bM: x X, x < M specialize h (M:EReal) (X:Set h: (b : EReal), < b a X, a < bM: < M All goals completed! 🐙) X:Set M:h: a X, a < M x X, x < M All goals completed! 🐙

Визначення 9.10.13 (Limit at infinity)

theorem Filter.Tendsto.AtTop.iff {X: Set } (f: ) (L:) : Filter.Tendsto f (Filter.atTop Filter.principal X) (nhds L) ε > (0:), M, x X Set.Ici M, |f x - L| < ε := X:Set f: L:Filter.Tendsto f (Filter.atTop Filter.principal X) (nhds L) ε > 0, M, x X Set.Ici M, |f x - L| < ε X:Set f: L:(∀ ε > 0, ∀ᶠ (b : ) in Filter.atTop Filter.principal X, |f b - L| < ε) ε > 0, M, x X Set.Ici M, |f x - L| < ε X:Set f: L: (a : ), (a > 0 ∀ᶠ (b : ) in Filter.atTop Filter.principal X, |f b - L| < a) a > 0 M, x X Set.Ici M, |f x - L| < a; X:Set f: L:ε:(ε > 0 ∀ᶠ (b : ) in Filter.atTop Filter.principal X, |f b - L| < ε) ε > 0 M, x X Set.Ici M, |f x - L| < ε X:Set f: L:ε:ε > 0 ((∀ᶠ (b : ) in Filter.atTop Filter.principal X, |f b - L| < ε) M, x X Set.Ici M, |f x - L| < ε); X:Set f: L:ε::ε > 0(∀ᶠ (b : ) in Filter.atTop Filter.principal X, |f b - L| < ε) M, x X Set.Ici M, |f x - L| < ε X:Set f: L:ε::ε > 0(∃ a, (b : ), a b b X |f b - L| < ε) M, x X, M x |f x - L| < ε X:Set f: L:ε::ε > 0 (a : ), (∀ (b : ), a b b X |f b - L| < ε) x X, a x |f x - L| < ε; X:Set f: L:ε::ε > 0M:(∀ (b : ), M b b X |f b - L| < ε) x X, M x |f x - L| < ε X:Set f: L:ε::ε > 0M: (a : ), M a a X |f a - L| < ε a X M a |f a - L| < ε; X:Set f: L:ε::ε > 0M:x:M x x X |f x - L| < ε x X M x |f x - L| < ε All goals completed! 🐙

Вправа 9.10.4

declaration uses 'sorry'example : Filter.Tendsto (fun x: 1/x) (Filter.atTop Filter.principal (Set.Ioi 0)) (nhds 0) := Filter.Tendsto (fun x => 1 / x) (Filter.atTop Filter.principal (Set.Ioi 0)) (nhds 0) All goals completed! 🐙
open Classical in /-- Вправа 9.10.1 -/ declaration uses 'sorry'example (a: ) (L:) : Filter.Tendsto (fun x: (if h:( n:, x = n) then a h.choose else 0)) (Filter.atTop Filter.principal ((fun n: (n:)) '' Set.univ)) (nhds L) Filter.Tendsto a Filter.atTop (nhds L) := a: L:Filter.Tendsto (fun x => if h : n, x = n then a h.choose else 0) (Filter.atTop Filter.principal ((fun n => n) '' Set.univ)) (nhds L) Filter.Tendsto a Filter.atTop (nhds L) All goals completed! 🐙end Chapter9