equal
deleted
inserted
replaced
105 show thesis |
105 show thesis |
106 by (rule that [of 1]) (auto simp: True) |
106 by (rule that [of 1]) (auto simp: True) |
107 next |
107 next |
108 case False |
108 case False |
109 have "continuous_on s (norm \<circ> f)" |
109 have "continuous_on s (norm \<circ> f)" |
110 by (rule continuous_on_intros continuous_on_norm assms(2))+ |
110 by (rule continuous_intros continuous_on_norm assms(2))+ |
111 with False obtain x where x: "x \<in> s" "\<forall>y\<in>s. (norm \<circ> f) x \<le> (norm \<circ> f) y" |
111 with False obtain x where x: "x \<in> s" "\<forall>y\<in>s. (norm \<circ> f) x \<le> (norm \<circ> f) y" |
112 using continuous_attains_inf[OF assms(1), of "norm \<circ> f"] |
112 using continuous_attains_inf[OF assms(1), of "norm \<circ> f"] |
113 unfolding o_def |
113 unfolding o_def |
114 by auto |
114 by auto |
115 have "(norm \<circ> f) x > 0" |
115 have "(norm \<circ> f) x > 0" |
1458 then have *: "\<not> (\<exists>x\<in>unit_cube. f x - x = 0)" |
1458 then have *: "\<not> (\<exists>x\<in>unit_cube. f x - x = 0)" |
1459 by auto |
1459 by auto |
1460 obtain d where |
1460 obtain d where |
1461 d: "d > 0" "\<And>x. x \<in> unit_cube \<Longrightarrow> d \<le> norm (f x - x)" |
1461 d: "d > 0" "\<And>x. x \<in> unit_cube \<Longrightarrow> d \<le> norm (f x - x)" |
1462 apply (rule brouwer_compactness_lemma[OF compact_unit_cube _ *]) |
1462 apply (rule brouwer_compactness_lemma[OF compact_unit_cube _ *]) |
1463 apply (rule continuous_on_intros assms)+ |
1463 apply (rule continuous_intros assms)+ |
1464 apply blast |
1464 apply blast |
1465 done |
1465 done |
1466 have *: "\<forall>x. x \<in> unit_cube \<longrightarrow> f x \<in> unit_cube" |
1466 have *: "\<forall>x. x \<in> unit_cube \<longrightarrow> f x \<in> unit_cube" |
1467 "\<forall>x. x \<in> (unit_cube::'a set) \<longrightarrow> (\<forall>i\<in>Basis. True \<longrightarrow> 0 \<le> x \<bullet> i \<and> x \<bullet> i \<le> 1)" |
1467 "\<forall>x. x \<in> (unit_cube::'a set) \<longrightarrow> (\<forall>i\<in>Basis. True \<longrightarrow> 0 \<le> x \<bullet> i \<and> x \<bullet> i \<le> 1)" |
1468 using assms(2)[unfolded image_subset_iff Ball_def] |
1468 using assms(2)[unfolded image_subset_iff Ball_def] |
2021 apply (erule conjE) |
2021 apply (erule conjE) |
2022 apply (rule brouwer_ball[OF assms]) |
2022 apply (rule brouwer_ball[OF assms]) |
2023 apply assumption+ |
2023 apply assumption+ |
2024 apply (rule_tac x=x in bexI) |
2024 apply (rule_tac x=x in bexI) |
2025 apply assumption+ |
2025 apply assumption+ |
2026 apply (rule continuous_on_intros)+ |
2026 apply (rule continuous_intros)+ |
2027 unfolding frontier_cball subset_eq Ball_def image_iff |
2027 unfolding frontier_cball subset_eq Ball_def image_iff |
2028 apply rule |
2028 apply rule |
2029 apply rule |
2029 apply rule |
2030 apply (erule bexE) |
2030 apply (erule bexE) |
2031 unfolding dist_norm |
2031 unfolding dist_norm |