# HG changeset patch # User huffman # Date 1313600350 25200 # Node ID 9133bc634d9cd16cc6b415fe0fcfb9aea0c4c09e # Parent 7943b69f0188b99760921090b9a09ca98fbb1802 simplify proofs of lemmas open_interval, closed_interval diff -r 7943b69f0188 -r 9133bc634d9c src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy --- a/src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy Wed Aug 17 18:05:31 2011 +0200 +++ b/src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy Wed Aug 17 09:59:10 2011 -0700 @@ -4882,56 +4882,28 @@ (* Moved interval_open_subset_closed a bit upwards *) -lemma open_interval_lemma: fixes x :: "real" shows - "a < x \ x < b ==> (\d>0. \x'. abs(x' - x) < d --> a < x' \ x' < b)" - by(rule_tac x="min (x - a) (b - x)" in exI, auto) - -lemma open_interval[intro]: fixes a :: "'a::ordered_euclidean_space" shows "open {a<..{a<..d>0. \x'. abs (x' - (x$$i)) < d \ a$$i < x' \ x' < b$$i" - using x[unfolded mem_interval, THEN spec[where x=i]] - using open_interval_lemma[of "a$$i" "x$$i" "b$$i"] by auto } - hence "\i\{..d>0. \x'. abs (x' - (x$$i)) < d \ a$$i < x' \ x' < b$$i" by auto - from bchoice[OF this] guess d .. note d=this - let ?d = "Min (d ` {.. {}" by auto - have "?d>0" using Min_gr_iff[OF **] using d by auto - moreover - { fix x' assume as:"dist x' x < ?d" - { fix i assume i:"ix'$$i - x $$ i\ < d i" - using norm_bound_component_lt[OF as[unfolded dist_norm], of i] - unfolding euclidean_simps Min_gr_iff[OF **] by auto - hence "a $$ i < x' $$ i" "x' $$ i < b $$ i" using i and d[THEN bspec[where x=i]] by auto } - hence "a < x' \ x' < b" apply(subst(2) eucl_less,subst(1) eucl_less) by auto } - ultimately have "\e>0. \x'. dist x' x < e \ x' \ {a<..ix. x$$i) -` {a$$i<..ix. x$$i) -` {a$$i<..e>0. \x'\{a..b}. x' \ x \ dist x' x < e"(* and xab:"a$$i > x$$i \ b$$i < x$$i"*) - { assume xa:"a$$i > x$$i" - with as obtain y where y:"y\{a..b}" "y \ x" "dist y x < a$$i - x$$i" by(erule_tac x="a$$i - x$$i" in allE)auto - hence False unfolding mem_interval and dist_norm - using component_le_norm[of "y-x" i, unfolded euclidean_simps] and xa using i - by(auto elim!: allE[where x=i]) - } hence "a$$i \ x$$i" by(rule ccontr)auto - moreover - { assume xb:"b$$i < x$$i" - with as obtain y where y:"y\{a..b}" "y \ x" "dist y x < x$$i - b$$i" - by(erule_tac x="x$$i - b$$i" in allE)auto - hence False unfolding mem_interval and dist_norm - using component_le_norm[of "y-x" i, unfolded euclidean_simps] and xb using i - by(auto elim!: allE[where x=i]) - } hence "x$$i \ b$$i" by(rule ccontr)auto - ultimately - have "a $$ i \ x $$ i \ x $$ i \ b $$ i" by auto } - thus ?thesis unfolding closed_limpt islimpt_approachable mem_interval by auto + have "closed (\ix. x$$i) -` {a$$i .. b$$i})" + by (intro closed_INT ballI continuous_closed_vimage allI + linear_continuous_at bounded_linear_euclidean_component + closed_real_atLeastAtMost) + also have "(\ix. x$$i) -` {a$$i .. b$$i}) = {a .. b}" + by (auto simp add: eucl_le [where 'a='a]) + finally show "closed {a .. b}" . qed lemma interior_closed_interval[intro]: fixes a :: "'a::ordered_euclidean_space" shows