equal
deleted
inserted
replaced
284 by auto |
284 by auto |
285 then show ?thesis |
285 then show ?thesis |
286 by (simp add: closed_Int) |
286 by (simp add: closed_Int) |
287 qed |
287 qed |
288 |
288 |
289 lemma (in linorder) less_separate: |
289 lemma (in order) less_separate: |
290 assumes "x < y" |
290 assumes "x < y" |
291 shows "\<exists>a b. x \<in> {..< a} \<and> y \<in> {b <..} \<and> {..< a} \<inter> {b <..} = {}" |
291 shows "\<exists>a b. x \<in> {..< a} \<and> y \<in> {b <..} \<and> {..< a} \<inter> {b <..} = {}" |
292 proof (cases "\<exists>z. x < z \<and> z < y") |
292 proof (cases "\<exists>z. x < z \<and> z < y") |
293 case True |
293 case True |
294 then obtain z where "x < z \<and> z < y" .. |
294 then obtain z where "x < z \<and> z < y" .. |
3671 shows "continuous_on (B\<times>A) (\<lambda>(x,y). d y x)" |
3671 shows "continuous_on (B\<times>A) (\<lambda>(x,y). d y x)" |
3672 proof - |
3672 proof - |
3673 have "(\<lambda>(x,y). d y x) = (\<lambda>(x,y). d x y) \<circ> prod.swap" |
3673 have "(\<lambda>(x,y). d y x) = (\<lambda>(x,y). d x y) \<circ> prod.swap" |
3674 by force |
3674 by force |
3675 then show ?thesis |
3675 then show ?thesis |
3676 apply (rule ssubst) |
3676 by (metis assms continuous_on_compose continuous_on_swap product_swap) |
3677 apply (rule continuous_on_compose) |
|
3678 apply (force intro: continuous_on_subset [OF continuous_on_swap]) |
|
3679 apply (force intro: continuous_on_subset [OF assms]) |
|
3680 done |
|
3681 qed |
3677 qed |
3682 |
3678 |
3683 lemma isCont_fst [simp]: "isCont f a \<Longrightarrow> isCont (\<lambda>x. fst (f x)) a" |
3679 lemma isCont_fst [simp]: "isCont f a \<Longrightarrow> isCont (\<lambda>x. fst (f x)) a" |
3684 by (fact continuous_fst) |
3680 by (fact continuous_fst) |
3685 |
3681 |