# HG changeset patch # User huffman # Date 1315863550 25200 # Node ID 1f5d6eb7354939f7c0959d169e2eb549fc0007f3 # Parent f05bff62f8a6e3f0d1e5f2642065335d50fbfaa6 shorten proof of frontier_straddle diff -r f05bff62f8a6 -r 1f5d6eb73549 src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy --- a/src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy Mon Sep 12 13:19:10 2011 -0700 +++ b/src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy Mon Sep 12 14:39:10 2011 -0700 @@ -763,50 +763,9 @@ lemma frontier_straddle: fixes a :: "'a::metric_space" - shows "a \ frontier S \ (\e>0. (\x\S. dist a x < e) \ (\x. x \ S \ dist a x < e))" (is "?lhs \ ?rhs") -proof - assume "?lhs" - { fix e::real - assume "e > 0" - let ?rhse = "(\x\S. dist a x < e) \ (\x. x \ S \ dist a x < e)" - { assume "a\S" - have "\x\S. dist a x < e" using `e>0` `a\S` by(rule_tac x=a in bexI) auto - moreover have "\x. x \ S \ dist a x < e" using `?lhs` `a\S` - unfolding frontier_closures closure_def islimpt_def using `e>0` - by (auto, erule_tac x="ball a e" in allE, auto) - ultimately have ?rhse by auto - } - moreover - { assume "a\S" - hence ?rhse using `?lhs` - unfolding frontier_closures closure_def islimpt_def - using open_ball[of a e] `e > 0` - by simp (metis centre_in_ball mem_ball open_ball) - } - ultimately have ?rhse by auto - } - thus ?rhs by auto -next - assume ?rhs - moreover - { fix T assume "a\S" and - as:"\e>0. (\x\S. dist a x < e) \ (\x. x \ S \ dist a x < e)" "a \ S" "a \ T" "open T" - from `open T` `a \ T` have "\e>0. ball a e \ T" unfolding open_contains_ball[of T] by auto - then obtain e where "e>0" "ball a e \ T" by auto - then obtain y where y:"y\S" "dist a y < e" using as(1) by auto - have "\y\S. y \ T \ y \ a" - using `dist a y < e` `ball a e \ T` unfolding ball_def using `y\S` `a\S` by auto - } - hence "a \ closure S" unfolding closure_def islimpt_def using `?rhs` by auto - moreover - { fix T assume "a \ T" "open T" "a\S" - then obtain e where "e>0" and balle: "ball a e \ T" unfolding open_contains_ball using `?rhs` by auto - obtain x where "x \ S" "dist a x < e" using `?rhs` using `e>0` by auto - hence "\y\- S. y \ T \ y \ a" using balle `a\S` unfolding ball_def by (rule_tac x=x in bexI)auto - } - hence "a islimpt (- S) \ a\S" unfolding islimpt_def by auto - ultimately show ?lhs unfolding frontier_closures using closure_def[of "- S"] by auto -qed + shows "a \ frontier S \ (\e>0. (\x\S. dist a x < e) \ (\x. x \ S \ dist a x < e))" + unfolding frontier_def closure_interior + by (auto simp add: mem_interior subset_eq ball_def) lemma frontier_subset_closed: "closed S \ frontier S \ S" by (metis frontier_def closure_closed Diff_subset)