# HG changeset patch # User paulson # Date 1746556447 -3600 # Node ID a61f82ddede4225ab0da331b298d97869db55306 # Parent 5540532087fa9372066d79b883e34942ae2210d2 A new lemma diff -r 5540532087fa -r a61f82ddede4 src/HOL/Analysis/Elementary_Topology.thy --- a/src/HOL/Analysis/Elementary_Topology.thy Mon May 05 17:04:14 2025 +0100 +++ b/src/HOL/Analysis/Elementary_Topology.thy Tue May 06 19:34:07 2025 +0100 @@ -1303,6 +1303,41 @@ qed qed +lemma Lim_left_bound: + fixes f :: "'a :: {linorder_topology, conditionally_complete_linorder, no_bot} \ + 'b :: {linorder_topology, conditionally_complete_linorder}" + assumes mono: "\a b. a \ I \ b \ I \ b < x \ a \ b \ f a \ f b" + and bnd: "\b. b \ I \ b < x \ f b \ K" + shows "(f \ Sup (f ` ({.. I))) (at x within ({.. I))" +proof (cases "{.. I = {}") + case True + then show ?thesis by simp +next + case False + show ?thesis + proof (rule order_tendstoI) + fix b + assume b: "Sup (f ` ({.. I)) < b" + { + fix y + assume "y \ {.. I" + with False bnd have "f y \ Sup (f ` ({.. I))" by (auto intro!: cSup_upper bdd_aboveI2) + with b have "f y < b" by order + } + then show "eventually (\x. f x < b) (at x within ({.. I))" + by (auto simp: eventually_at_filter intro: exI[of _ 1] zero_less_one) + next + fix b + assume "b < Sup (f ` ({.. I))" + from less_cSupD[OF _ this] False obtain y where y: "y < x" "y \ I" "b < f y" by auto + then have "eventually (\x. x \ I \ b < f x) (at_left x)" + unfolding eventually_at_left[OF \y < x\] by (metis mono order_less_le order_less_le_trans) + then show "eventually (\x. b < f x) (at x within ({.. I))" + unfolding eventually_at_filter by eventually_elim simp + qed +qed + + text\These are special for limits out of the same topological space.\ lemma Lim_within_id: "(id \ a) (at a within s)" diff -r 5540532087fa -r a61f82ddede4 src/HOL/Topological_Spaces.thy --- a/src/HOL/Topological_Spaces.thy Mon May 05 17:04:14 2025 +0100 +++ b/src/HOL/Topological_Spaces.thy Tue May 06 19:34:07 2025 +0100 @@ -230,7 +230,7 @@ by (metis (no_types) open_UNIV not_open_singleton) -subsection \Generators for toplogies\ +subsection \Generators for topologies\ inductive generate_topology :: "'a set set \ 'a set \ bool" for S :: "'a set set" where