author | nipkow |
Sun, 21 Jan 2018 11:04:18 +0100 | |
changeset 67481 | df252c3d48f2 |
parent 67399 | eab6ce8368fa |
child 67968 | a5ad4c015d1c |
permissions | -rw-r--r-- |
64122 | 1 |
section \<open>Extending Continous Maps, Invariance of Domain, etc..\<close> |
64006
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3 |
text\<open>Ported from HOL Light (moretop.ml) by L C Paulson\<close> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
4 |
|
64289
42f28160bad9
HOL-Analysis: move Function Topology from AFP/Ergodict_Theory; HOL-Probability: move Essential Supremum from AFP/Lp
hoelzl
parents:
64287
diff
changeset
|
5 |
theory Further_Topology |
64291 | 6 |
imports Equivalence_Lebesgue_Henstock_Integration Weierstrass_Theorems Polytope Complex_Transcendental |
64006
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
7 |
begin |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
8 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
9 |
subsection\<open>A map from a sphere to a higher dimensional sphere is nullhomotopic\<close> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
10 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
11 |
lemma spheremap_lemma1: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
12 |
fixes f :: "'a::euclidean_space \<Rightarrow> 'a::euclidean_space" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
13 |
assumes "subspace S" "subspace T" and dimST: "dim S < dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
14 |
and "S \<subseteq> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
15 |
and diff_f: "f differentiable_on sphere 0 1 \<inter> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
16 |
shows "f ` (sphere 0 1 \<inter> S) \<noteq> sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
17 |
proof |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
18 |
assume fim: "f ` (sphere 0 1 \<inter> S) = sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
19 |
have inS: "\<And>x. \<lbrakk>x \<in> S; x \<noteq> 0\<rbrakk> \<Longrightarrow> (x /\<^sub>R norm x) \<in> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
20 |
using subspace_mul \<open>subspace S\<close> by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
21 |
have subS01: "(\<lambda>x. x /\<^sub>R norm x) ` (S - {0}) \<subseteq> sphere 0 1 \<inter> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
22 |
using \<open>subspace S\<close> subspace_mul by fastforce |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
23 |
then have diff_f': "f differentiable_on (\<lambda>x. x /\<^sub>R norm x) ` (S - {0})" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
24 |
by (rule differentiable_on_subset [OF diff_f]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
25 |
define g where "g \<equiv> \<lambda>x. norm x *\<^sub>R f(inverse(norm x) *\<^sub>R x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
26 |
have gdiff: "g differentiable_on S - {0}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
27 |
unfolding g_def |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
28 |
by (rule diff_f' derivative_intros differentiable_on_compose [where f=f] | force)+ |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
29 |
have geq: "g ` (S - {0}) = T - {0}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
30 |
proof |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
31 |
have "g ` (S - {0}) \<subseteq> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
32 |
apply (auto simp: g_def subspace_mul [OF \<open>subspace T\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
33 |
apply (metis (mono_tags, lifting) DiffI subS01 subspace_mul [OF \<open>subspace T\<close>] fim image_subset_iff inf_le2 singletonD) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
34 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
35 |
moreover have "g ` (S - {0}) \<subseteq> UNIV - {0}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
36 |
proof (clarsimp simp: g_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
37 |
fix y |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
38 |
assume "y \<in> S" and f0: "f (y /\<^sub>R norm y) = 0" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
39 |
then have "y \<noteq> 0 \<Longrightarrow> y /\<^sub>R norm y \<in> sphere 0 1 \<inter> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
40 |
by (auto simp: subspace_mul [OF \<open>subspace S\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
41 |
then show "y = 0" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
42 |
by (metis fim f0 Int_iff image_iff mem_sphere_0 norm_eq_zero zero_neq_one) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
43 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
44 |
ultimately show "g ` (S - {0}) \<subseteq> T - {0}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
45 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
46 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
47 |
have *: "sphere 0 1 \<inter> T \<subseteq> f ` (sphere 0 1 \<inter> S)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
48 |
using fim by (simp add: image_subset_iff) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
49 |
have "x \<in> (\<lambda>x. norm x *\<^sub>R f (x /\<^sub>R norm x)) ` (S - {0})" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
50 |
if "x \<in> T" "x \<noteq> 0" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
51 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
52 |
have "x /\<^sub>R norm x \<in> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
53 |
using \<open>subspace T\<close> subspace_mul that by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
54 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
55 |
using * [THEN subsetD, of "x /\<^sub>R norm x"] that apply clarsimp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
56 |
apply (rule_tac x="norm x *\<^sub>R xa" in image_eqI, simp) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
57 |
apply (metis norm_eq_zero right_inverse scaleR_one scaleR_scaleR) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
58 |
using \<open>subspace S\<close> subspace_mul apply force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
59 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
60 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
61 |
then have "T - {0} \<subseteq> (\<lambda>x. norm x *\<^sub>R f (x /\<^sub>R norm x)) ` (S - {0})" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
62 |
by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
63 |
then show "T - {0} \<subseteq> g ` (S - {0})" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
64 |
by (simp add: g_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
65 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
66 |
define T' where "T' \<equiv> {y. \<forall>x \<in> T. orthogonal x y}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
67 |
have "subspace T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
68 |
by (simp add: subspace_orthogonal_to_vectors T'_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
69 |
have dim_eq: "dim T' + dim T = DIM('a)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
70 |
using dim_subspace_orthogonal_to_vectors [of T UNIV] \<open>subspace T\<close> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
71 |
by (simp add: dim_UNIV T'_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
72 |
have "\<exists>v1 v2. v1 \<in> span T \<and> (\<forall>w \<in> span T. orthogonal v2 w) \<and> x = v1 + v2" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
73 |
by (force intro: orthogonal_subspace_decomp_exists [of T x]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
74 |
then obtain p1 p2 where p1span: "p1 x \<in> span T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
75 |
and "\<And>w. w \<in> span T \<Longrightarrow> orthogonal (p2 x) w" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
76 |
and eq: "p1 x + p2 x = x" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
77 |
by metis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
78 |
then have p1: "\<And>z. p1 z \<in> T" and ortho: "\<And>w. w \<in> T \<Longrightarrow> orthogonal (p2 x) w" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
79 |
using span_eq \<open>subspace T\<close> by blast+ |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
80 |
then have p2: "\<And>z. p2 z \<in> T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
81 |
by (simp add: T'_def orthogonal_commute) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
82 |
have p12_eq: "\<And>x y. \<lbrakk>x \<in> T; y \<in> T'\<rbrakk> \<Longrightarrow> p1(x + y) = x \<and> p2(x + y) = y" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
83 |
proof (rule orthogonal_subspace_decomp_unique [OF eq p1span, where T=T']) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
84 |
show "\<And>x y. \<lbrakk>x \<in> T; y \<in> T'\<rbrakk> \<Longrightarrow> p2 (x + y) \<in> span T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
85 |
using span_eq p2 \<open>subspace T'\<close> by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
86 |
show "\<And>a b. \<lbrakk>a \<in> T; b \<in> T'\<rbrakk> \<Longrightarrow> orthogonal a b" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
87 |
using T'_def by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
88 |
qed (auto simp: span_superset) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
89 |
then have "\<And>c x. p1 (c *\<^sub>R x) = c *\<^sub>R p1 x \<and> p2 (c *\<^sub>R x) = c *\<^sub>R p2 x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
90 |
by (metis eq \<open>subspace T\<close> \<open>subspace T'\<close> p1 p2 scaleR_add_right subspace_mul) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
91 |
moreover have lin_add: "\<And>x y. p1 (x + y) = p1 x + p1 y \<and> p2 (x + y) = p2 x + p2 y" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
92 |
proof (rule orthogonal_subspace_decomp_unique [OF _ p1span, where T=T']) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
93 |
show "\<And>x y. p1 (x + y) + p2 (x + y) = p1 x + p1 y + (p2 x + p2 y)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
94 |
by (simp add: add.assoc add.left_commute eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
95 |
show "\<And>a b. \<lbrakk>a \<in> T; b \<in> T'\<rbrakk> \<Longrightarrow> orthogonal a b" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
96 |
using T'_def by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
97 |
qed (auto simp: p1span p2 span_superset subspace_add) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
98 |
ultimately have "linear p1" "linear p2" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
99 |
by unfold_locales auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
100 |
have "(\<lambda>z. g (p1 z)) differentiable_on {x + y |x y. x \<in> S - {0} \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
101 |
apply (rule differentiable_on_compose [where f=g]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
102 |
apply (rule linear_imp_differentiable_on [OF \<open>linear p1\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
103 |
apply (rule differentiable_on_subset [OF gdiff]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
104 |
using p12_eq \<open>S \<subseteq> T\<close> apply auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
105 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
106 |
then have diff: "(\<lambda>x. g (p1 x) + p2 x) differentiable_on {x + y |x y. x \<in> S - {0} \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
107 |
by (intro derivative_intros linear_imp_differentiable_on [OF \<open>linear p2\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
108 |
have "dim {x + y |x y. x \<in> S - {0} \<and> y \<in> T'} \<le> dim {x + y |x y. x \<in> S \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
109 |
by (blast intro: dim_subset) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
110 |
also have "... = dim S + dim T' - dim (S \<inter> T')" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
111 |
using dim_sums_Int [OF \<open>subspace S\<close> \<open>subspace T'\<close>] |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
112 |
by (simp add: algebra_simps) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
113 |
also have "... < DIM('a)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
114 |
using dimST dim_eq by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
115 |
finally have neg: "negligible {x + y |x y. x \<in> S - {0} \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
116 |
by (rule negligible_lowdim) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
117 |
have "negligible ((\<lambda>x. g (p1 x) + p2 x) ` {x + y |x y. x \<in> S - {0} \<and> y \<in> T'})" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
118 |
by (rule negligible_differentiable_image_negligible [OF order_refl neg diff]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
119 |
then have "negligible {x + y |x y. x \<in> g ` (S - {0}) \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
120 |
proof (rule negligible_subset) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
121 |
have "\<lbrakk>t' \<in> T'; s \<in> S; s \<noteq> 0\<rbrakk> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
122 |
\<Longrightarrow> g s + t' \<in> (\<lambda>x. g (p1 x) + p2 x) ` |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
123 |
{x + t' |x t'. x \<in> S \<and> x \<noteq> 0 \<and> t' \<in> T'}" for t' s |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
124 |
apply (rule_tac x="s + t'" in image_eqI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
125 |
using \<open>S \<subseteq> T\<close> p12_eq by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
126 |
then show "{x + y |x y. x \<in> g ` (S - {0}) \<and> y \<in> T'} |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
127 |
\<subseteq> (\<lambda>x. g (p1 x) + p2 x) ` {x + y |x y. x \<in> S - {0} \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
128 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
129 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
130 |
moreover have "- T' \<subseteq> {x + y |x y. x \<in> g ` (S - {0}) \<and> y \<in> T'}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
131 |
proof clarsimp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
132 |
fix z assume "z \<notin> T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
133 |
show "\<exists>x y. z = x + y \<and> x \<in> g ` (S - {0}) \<and> y \<in> T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
134 |
apply (rule_tac x="p1 z" in exI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
135 |
apply (rule_tac x="p2 z" in exI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
136 |
apply (simp add: p1 eq p2 geq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
137 |
by (metis \<open>z \<notin> T'\<close> add.left_neutral eq p2) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
138 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
139 |
ultimately have "negligible (-T')" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
140 |
using negligible_subset by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
141 |
moreover have "negligible T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
142 |
using negligible_lowdim |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
143 |
by (metis add.commute assms(3) diff_add_inverse2 diff_self_eq_0 dim_eq le_add1 le_antisym linordered_semidom_class.add_diff_inverse not_less0) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
144 |
ultimately have "negligible (-T' \<union> T')" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
145 |
by (metis negligible_Un_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
146 |
then show False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
147 |
using negligible_Un_eq non_negligible_UNIV by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
148 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
149 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
150 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
151 |
lemma spheremap_lemma2: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
152 |
fixes f :: "'a::euclidean_space \<Rightarrow> 'a::euclidean_space" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
153 |
assumes ST: "subspace S" "subspace T" "dim S < dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
154 |
and "S \<subseteq> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
155 |
and contf: "continuous_on (sphere 0 1 \<inter> S) f" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
156 |
and fim: "f ` (sphere 0 1 \<inter> S) \<subseteq> sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
157 |
shows "\<exists>c. homotopic_with (\<lambda>x. True) (sphere 0 1 \<inter> S) (sphere 0 1 \<inter> T) f (\<lambda>x. c)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
158 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
159 |
have [simp]: "\<And>x. \<lbrakk>norm x = 1; x \<in> S\<rbrakk> \<Longrightarrow> norm (f x) = 1" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
160 |
using fim by (simp add: image_subset_iff) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
161 |
have "compact (sphere 0 1 \<inter> S)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
162 |
by (simp add: \<open>subspace S\<close> closed_subspace compact_Int_closed) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
163 |
then obtain g where pfg: "polynomial_function g" and gim: "g ` (sphere 0 1 \<inter> S) \<subseteq> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
164 |
and g12: "\<And>x. x \<in> sphere 0 1 \<inter> S \<Longrightarrow> norm(f x - g x) < 1/2" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
165 |
apply (rule Stone_Weierstrass_polynomial_function_subspace [OF _ contf _ \<open>subspace T\<close>, of "1/2"]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
166 |
using fim apply auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
167 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
168 |
have gnz: "g x \<noteq> 0" if "x \<in> sphere 0 1 \<inter> S" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
169 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
170 |
have "norm (f x) = 1" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
171 |
using fim that by (simp add: image_subset_iff) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
172 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
173 |
using g12 [OF that] by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
174 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
175 |
have diffg: "g differentiable_on sphere 0 1 \<inter> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
176 |
by (metis pfg differentiable_on_polynomial_function) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
177 |
define h where "h \<equiv> \<lambda>x. inverse(norm(g x)) *\<^sub>R g x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
178 |
have h: "x \<in> sphere 0 1 \<inter> S \<Longrightarrow> h x \<in> sphere 0 1 \<inter> T" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
179 |
unfolding h_def |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
180 |
using gnz [of x] |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
181 |
by (auto simp: subspace_mul [OF \<open>subspace T\<close>] subsetD [OF gim]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
182 |
have diffh: "h differentiable_on sphere 0 1 \<inter> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
183 |
unfolding h_def |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
184 |
apply (intro derivative_intros diffg differentiable_on_compose [OF diffg]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
185 |
using gnz apply auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
186 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
187 |
have homfg: "homotopic_with (\<lambda>z. True) (sphere 0 1 \<inter> S) (T - {0}) f g" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
188 |
proof (rule homotopic_with_linear [OF contf]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
189 |
show "continuous_on (sphere 0 1 \<inter> S) g" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
190 |
using pfg by (simp add: differentiable_imp_continuous_on diffg) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
191 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
192 |
have non0fg: "0 \<notin> closed_segment (f x) (g x)" if "norm x = 1" "x \<in> S" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
193 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
194 |
have "f x \<in> sphere 0 1" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
195 |
using fim that by (simp add: image_subset_iff) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
196 |
moreover have "norm(f x - g x) < 1/2" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
197 |
apply (rule g12) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
198 |
using that by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
199 |
ultimately show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
200 |
by (auto simp: norm_minus_commute dest: segment_bound) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
201 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
202 |
show "\<And>x. x \<in> sphere 0 1 \<inter> S \<Longrightarrow> closed_segment (f x) (g x) \<subseteq> T - {0}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
203 |
apply (simp add: subset_Diff_insert non0fg) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
204 |
apply (simp add: segment_convex_hull) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
205 |
apply (rule hull_minimal) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
206 |
using fim image_eqI gim apply force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
207 |
apply (rule subspace_imp_convex [OF \<open>subspace T\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
208 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
209 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
210 |
obtain d where d: "d \<in> (sphere 0 1 \<inter> T) - h ` (sphere 0 1 \<inter> S)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
211 |
using h spheremap_lemma1 [OF ST \<open>S \<subseteq> T\<close> diffh] by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
212 |
then have non0hd: "0 \<notin> closed_segment (h x) (- d)" if "norm x = 1" "x \<in> S" for x |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
213 |
using midpoint_between [of 0 "h x" "-d"] that h [of x] |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
214 |
by (auto simp: between_mem_segment midpoint_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
215 |
have conth: "continuous_on (sphere 0 1 \<inter> S) h" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
216 |
using differentiable_imp_continuous_on diffh by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
217 |
have hom_hd: "homotopic_with (\<lambda>z. True) (sphere 0 1 \<inter> S) (T - {0}) h (\<lambda>x. -d)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
218 |
apply (rule homotopic_with_linear [OF conth continuous_on_const]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
219 |
apply (simp add: subset_Diff_insert non0hd) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
220 |
apply (simp add: segment_convex_hull) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
221 |
apply (rule hull_minimal) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
222 |
using h d apply (force simp: subspace_neg [OF \<open>subspace T\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
223 |
apply (rule subspace_imp_convex [OF \<open>subspace T\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
224 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
225 |
have conT0: "continuous_on (T - {0}) (\<lambda>y. inverse(norm y) *\<^sub>R y)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
226 |
by (intro continuous_intros) auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
227 |
have sub0T: "(\<lambda>y. y /\<^sub>R norm y) ` (T - {0}) \<subseteq> sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
228 |
by (fastforce simp: assms(2) subspace_mul) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
229 |
obtain c where homhc: "homotopic_with (\<lambda>z. True) (sphere 0 1 \<inter> S) (sphere 0 1 \<inter> T) h (\<lambda>x. c)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
230 |
apply (rule_tac c="-d" in that) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
231 |
apply (rule homotopic_with_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
232 |
apply (rule homotopic_compose_continuous_left [OF hom_hd conT0 sub0T]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
233 |
using d apply (auto simp: h_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
234 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
235 |
show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
236 |
apply (rule_tac x=c in exI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
237 |
apply (rule homotopic_with_trans [OF _ homhc]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
238 |
apply (rule homotopic_with_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
239 |
apply (rule homotopic_compose_continuous_left [OF homfg conT0 sub0T]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
240 |
apply (auto simp: h_def) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
241 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
242 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
243 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
244 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
245 |
lemma spheremap_lemma3: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
246 |
assumes "bounded S" "convex S" "subspace U" and affSU: "aff_dim S \<le> dim U" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
247 |
obtains T where "subspace T" "T \<subseteq> U" "S \<noteq> {} \<Longrightarrow> aff_dim T = aff_dim S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
248 |
"(rel_frontier S) homeomorphic (sphere 0 1 \<inter> T)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
249 |
proof (cases "S = {}") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
250 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
251 |
with \<open>subspace U\<close> subspace_0 show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
252 |
by (rule_tac T = "{0}" in that) auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
253 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
254 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
255 |
then obtain a where "a \<in> S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
256 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
257 |
then have affS: "aff_dim S = int (dim ((\<lambda>x. -a+x) ` S))" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
258 |
by (metis hull_inc aff_dim_eq_dim) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
259 |
with affSU have "dim ((\<lambda>x. -a+x) ` S) \<le> dim U" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
260 |
by linarith |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
261 |
with choose_subspace_of_subspace |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
262 |
obtain T where "subspace T" "T \<subseteq> span U" and dimT: "dim T = dim ((\<lambda>x. -a+x) ` S)" . |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
263 |
show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
264 |
proof (rule that [OF \<open>subspace T\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
265 |
show "T \<subseteq> U" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
266 |
using span_eq \<open>subspace U\<close> \<open>T \<subseteq> span U\<close> by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
267 |
show "aff_dim T = aff_dim S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
268 |
using dimT \<open>subspace T\<close> affS aff_dim_subspace by fastforce |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
269 |
show "rel_frontier S homeomorphic sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
270 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
271 |
have "aff_dim (ball 0 1 \<inter> T) = aff_dim (T)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
272 |
by (metis IntI interior_ball \<open>subspace T\<close> aff_dim_convex_Int_nonempty_interior centre_in_ball empty_iff inf_commute subspace_0 subspace_imp_convex zero_less_one) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
273 |
then have affS_eq: "aff_dim S = aff_dim (ball 0 1 \<inter> T)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
274 |
using \<open>aff_dim T = aff_dim S\<close> by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
275 |
have "rel_frontier S homeomorphic rel_frontier(ball 0 1 \<inter> T)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
276 |
apply (rule homeomorphic_rel_frontiers_convex_bounded_sets [OF \<open>convex S\<close> \<open>bounded S\<close>]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
277 |
apply (simp add: \<open>subspace T\<close> convex_Int subspace_imp_convex) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
278 |
apply (simp add: bounded_Int) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
279 |
apply (rule affS_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
280 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
281 |
also have "... = frontier (ball 0 1) \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
282 |
apply (rule convex_affine_rel_frontier_Int [OF convex_ball]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
283 |
apply (simp add: \<open>subspace T\<close> subspace_imp_affine) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
284 |
using \<open>subspace T\<close> subspace_0 by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
285 |
also have "... = sphere 0 1 \<inter> T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
286 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
287 |
finally show ?thesis . |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
288 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
289 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
290 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
291 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
292 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
293 |
proposition inessential_spheremap_lowdim_gen: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
294 |
fixes f :: "'M::euclidean_space \<Rightarrow> 'a::euclidean_space" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
295 |
assumes "convex S" "bounded S" "convex T" "bounded T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
296 |
and affST: "aff_dim S < aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
297 |
and contf: "continuous_on (rel_frontier S) f" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
298 |
and fim: "f ` (rel_frontier S) \<subseteq> rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
299 |
obtains c where "homotopic_with (\<lambda>z. True) (rel_frontier S) (rel_frontier T) f (\<lambda>x. c)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
300 |
proof (cases "S = {}") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
301 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
302 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
303 |
by (simp add: that) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
304 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
305 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
306 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
307 |
proof (cases "T = {}") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
308 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
309 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
310 |
using fim that by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
311 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
312 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
313 |
obtain T':: "'a set" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
314 |
where "subspace T'" and affT': "aff_dim T' = aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
315 |
and homT: "rel_frontier T homeomorphic sphere 0 1 \<inter> T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
316 |
apply (rule spheremap_lemma3 [OF \<open>bounded T\<close> \<open>convex T\<close> subspace_UNIV, where 'b='a]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
317 |
apply (simp add: dim_UNIV aff_dim_le_DIM) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
318 |
using \<open>T \<noteq> {}\<close> by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
319 |
with homeomorphic_imp_homotopy_eqv |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
320 |
have relT: "sphere 0 1 \<inter> T' homotopy_eqv rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
321 |
using homotopy_eqv_sym by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
322 |
have "aff_dim S \<le> int (dim T')" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
323 |
using affT' \<open>subspace T'\<close> affST aff_dim_subspace by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
324 |
with spheremap_lemma3 [OF \<open>bounded S\<close> \<open>convex S\<close> \<open>subspace T'\<close>] \<open>S \<noteq> {}\<close> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
325 |
obtain S':: "'a set" where "subspace S'" "S' \<subseteq> T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
326 |
and affS': "aff_dim S' = aff_dim S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
327 |
and homT: "rel_frontier S homeomorphic sphere 0 1 \<inter> S'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
328 |
by metis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
329 |
with homeomorphic_imp_homotopy_eqv |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
330 |
have relS: "sphere 0 1 \<inter> S' homotopy_eqv rel_frontier S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
331 |
using homotopy_eqv_sym by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
332 |
have dimST': "dim S' < dim T'" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
333 |
by (metis \<open>S' \<subseteq> T'\<close> \<open>subspace S'\<close> \<open>subspace T'\<close> affS' affST affT' less_irrefl not_le subspace_dim_equal) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
334 |
have "\<exists>c. homotopic_with (\<lambda>z. True) (rel_frontier S) (rel_frontier T) f (\<lambda>x. c)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
335 |
apply (rule homotopy_eqv_homotopic_triviality_null_imp [OF relT contf fim]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
336 |
apply (rule homotopy_eqv_cohomotopic_triviality_null[OF relS, THEN iffD1, rule_format]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
337 |
apply (metis dimST' \<open>subspace S'\<close> \<open>subspace T'\<close> \<open>S' \<subseteq> T'\<close> spheremap_lemma2, blast) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
338 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
339 |
with that show ?thesis by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
340 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
341 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
342 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
343 |
lemma inessential_spheremap_lowdim: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
344 |
fixes f :: "'M::euclidean_space \<Rightarrow> 'a::euclidean_space" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
345 |
assumes |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
346 |
"DIM('M) < DIM('a)" and f: "continuous_on (sphere a r) f" "f ` (sphere a r) \<subseteq> (sphere b s)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
347 |
obtains c where "homotopic_with (\<lambda>z. True) (sphere a r) (sphere b s) f (\<lambda>x. c)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
348 |
proof (cases "s \<le> 0") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
349 |
case True then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
350 |
by (meson nullhomotopic_into_contractible f contractible_sphere that) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
351 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
352 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
353 |
show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
354 |
proof (cases "r \<le> 0") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
355 |
case True then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
356 |
by (meson f nullhomotopic_from_contractible contractible_sphere that) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
357 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
358 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
359 |
with \<open>~ s \<le> 0\<close> have "r > 0" "s > 0" by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
360 |
show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
361 |
apply (rule inessential_spheremap_lowdim_gen [of "cball a r" "cball b s" f]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
362 |
using \<open>0 < r\<close> \<open>0 < s\<close> assms(1) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
363 |
apply (simp_all add: f aff_dim_cball) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
364 |
using that by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
365 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
366 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
367 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
368 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
369 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
370 |
subsection\<open> Some technical lemmas about extending maps from cell complexes.\<close> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
371 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
372 |
lemma extending_maps_Union_aux: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
373 |
assumes fin: "finite \<F>" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
374 |
and "\<And>S. S \<in> \<F> \<Longrightarrow> closed S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
375 |
and "\<And>S T. \<lbrakk>S \<in> \<F>; T \<in> \<F>; S \<noteq> T\<rbrakk> \<Longrightarrow> S \<inter> T \<subseteq> K" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
376 |
and "\<And>S. S \<in> \<F> \<Longrightarrow> \<exists>g. continuous_on S g \<and> g ` S \<subseteq> T \<and> (\<forall>x \<in> S \<inter> K. g x = h x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
377 |
shows "\<exists>g. continuous_on (\<Union>\<F>) g \<and> g ` (\<Union>\<F>) \<subseteq> T \<and> (\<forall>x \<in> \<Union>\<F> \<inter> K. g x = h x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
378 |
using assms |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
379 |
proof (induction \<F>) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
380 |
case empty show ?case by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
381 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
382 |
case (insert S \<F>) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
383 |
then obtain f where contf: "continuous_on (S) f" and fim: "f ` S \<subseteq> T" and feq: "\<forall>x \<in> S \<inter> K. f x = h x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
384 |
by (meson insertI1) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
385 |
obtain g where contg: "continuous_on (\<Union>\<F>) g" and gim: "g ` \<Union>\<F> \<subseteq> T" and geq: "\<forall>x \<in> \<Union>\<F> \<inter> K. g x = h x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
386 |
using insert by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
387 |
have fg: "f x = g x" if "x \<in> T" "T \<in> \<F>" "x \<in> S" for x T |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
388 |
proof - |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
389 |
have "T \<inter> S \<subseteq> K \<or> S = T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
390 |
using that by (metis (no_types) insert.prems(2) insertCI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
391 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
392 |
using UnionI feq geq \<open>S \<notin> \<F>\<close> subsetD that by fastforce |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
393 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
394 |
show ?case |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
395 |
apply (rule_tac x="\<lambda>x. if x \<in> S then f x else g x" in exI, simp) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
396 |
apply (intro conjI continuous_on_cases) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
397 |
apply (simp_all add: insert closed_Union contf contg) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
398 |
using fim gim feq geq |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
399 |
apply (force simp: insert closed_Union contf contg inf_commute intro: fg)+ |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
400 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
401 |
qed |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
402 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
403 |
lemma extending_maps_Union: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
404 |
assumes fin: "finite \<F>" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
405 |
and "\<And>S. S \<in> \<F> \<Longrightarrow> \<exists>g. continuous_on S g \<and> g ` S \<subseteq> T \<and> (\<forall>x \<in> S \<inter> K. g x = h x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
406 |
and "\<And>S. S \<in> \<F> \<Longrightarrow> closed S" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
407 |
and K: "\<And>X Y. \<lbrakk>X \<in> \<F>; Y \<in> \<F>; ~ X \<subseteq> Y; ~ Y \<subseteq> X\<rbrakk> \<Longrightarrow> X \<inter> Y \<subseteq> K" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
408 |
shows "\<exists>g. continuous_on (\<Union>\<F>) g \<and> g ` (\<Union>\<F>) \<subseteq> T \<and> (\<forall>x \<in> \<Union>\<F> \<inter> K. g x = h x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
409 |
apply (simp add: Union_maximal_sets [OF fin, symmetric]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
410 |
apply (rule extending_maps_Union_aux) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
411 |
apply (simp_all add: Union_maximal_sets [OF fin] assms) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
412 |
by (metis K psubsetI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
413 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
414 |
|
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
415 |
lemma extend_map_lemma: |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
416 |
assumes "finite \<F>" "\<G> \<subseteq> \<F>" "convex T" "bounded T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
417 |
and poly: "\<And>X. X \<in> \<F> \<Longrightarrow> polytope X" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
418 |
and aff: "\<And>X. X \<in> \<F> - \<G> \<Longrightarrow> aff_dim X < aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
419 |
and face: "\<And>S T. \<lbrakk>S \<in> \<F>; T \<in> \<F>\<rbrakk> \<Longrightarrow> (S \<inter> T) face_of S \<and> (S \<inter> T) face_of T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
420 |
and contf: "continuous_on (\<Union>\<G>) f" and fim: "f ` (\<Union>\<G>) \<subseteq> rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
421 |
obtains g where "continuous_on (\<Union>\<F>) g" "g ` (\<Union>\<F>) \<subseteq> rel_frontier T" "\<And>x. x \<in> \<Union>\<G> \<Longrightarrow> g x = f x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
422 |
proof (cases "\<F> - \<G> = {}") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
423 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
424 |
then have "\<Union>\<F> \<subseteq> \<Union>\<G>" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
425 |
by (simp add: Union_mono) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
426 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
427 |
apply (rule_tac g=f in that) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
428 |
using contf continuous_on_subset apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
429 |
using fim apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
430 |
by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
431 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
432 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
433 |
then have "0 \<le> aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
434 |
by (metis aff aff_dim_empty aff_dim_geq aff_dim_negative_iff all_not_in_conv not_less) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
435 |
then obtain i::nat where i: "int i = aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
436 |
by (metis nonneg_eq_int) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
437 |
have Union_empty_eq: "\<Union>{D. D = {} \<and> P D} = {}" for P :: "'a set \<Rightarrow> bool" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
438 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
439 |
have extendf: "\<exists>g. continuous_on (\<Union>(\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < i})) g \<and> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
440 |
g ` (\<Union> (\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < i})) \<subseteq> rel_frontier T \<and> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
441 |
(\<forall>x \<in> \<Union>\<G>. g x = f x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
442 |
if "i \<le> aff_dim T" for i::nat |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
443 |
using that |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
444 |
proof (induction i) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
445 |
case 0 then show ?case |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
446 |
apply (simp add: Union_empty_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
447 |
apply (rule_tac x=f in exI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
448 |
apply (intro conjI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
449 |
using contf continuous_on_subset apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
450 |
using fim apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
451 |
by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
452 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
453 |
case (Suc p) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
454 |
with \<open>bounded T\<close> have "rel_frontier T \<noteq> {}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
455 |
by (auto simp: rel_frontier_eq_empty affine_bounded_eq_lowdim [of T]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
456 |
then obtain t where t: "t \<in> rel_frontier T" by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
457 |
have ple: "int p \<le> aff_dim T" using Suc.prems by force |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
458 |
obtain h where conth: "continuous_on (\<Union>(\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p})) h" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
459 |
and him: "h ` (\<Union> (\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p})) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
460 |
\<subseteq> rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
461 |
and heq: "\<And>x. x \<in> \<Union>\<G> \<Longrightarrow> h x = f x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
462 |
using Suc.IH [OF ple] by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
463 |
let ?Faces = "{D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D \<le> p}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
464 |
have extendh: "\<exists>g. continuous_on D g \<and> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
465 |
g ` D \<subseteq> rel_frontier T \<and> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
466 |
(\<forall>x \<in> D \<inter> \<Union>(\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p}). g x = h x)" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
467 |
if D: "D \<in> \<G> \<union> ?Faces" for D |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
468 |
proof (cases "D \<subseteq> \<Union>(\<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p})") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
469 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
470 |
then show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
471 |
apply (rule_tac x=h in exI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
472 |
apply (intro conjI) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
473 |
apply (blast intro: continuous_on_subset [OF conth]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
474 |
using him apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
475 |
by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
476 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
477 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
478 |
note notDsub = False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
479 |
show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
480 |
proof (cases "\<exists>a. D = {a}") |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
481 |
case True |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
482 |
then obtain a where "D = {a}" by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
483 |
with notDsub t show ?thesis |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
484 |
by (rule_tac x="\<lambda>x. t" in exI) simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
485 |
next |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
486 |
case False |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
487 |
have "D \<noteq> {}" using notDsub by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
488 |
have Dnotin: "D \<notin> \<G> \<union> {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
489 |
using notDsub by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
490 |
then have "D \<notin> \<G>" by simp |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
491 |
have "D \<in> ?Faces - {D. \<exists>C \<in> \<F>. D face_of C \<and> aff_dim D < p}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
492 |
using Dnotin that by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
493 |
then obtain C where "C \<in> \<F>" "D face_of C" and affD: "aff_dim D = int p" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
494 |
by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
495 |
then have "bounded D" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
496 |
using face_of_polytope_polytope poly polytope_imp_bounded by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
497 |
then have [simp]: "\<not> affine D" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
498 |
using affine_bounded_eq_trivial False \<open>D \<noteq> {}\<close> \<open>bounded D\<close> by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
499 |
have "{F. F facet_of D} \<subseteq> {E. E face_of C \<and> aff_dim E < int p}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
500 |
apply clarify |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
501 |
apply (metis \<open>D face_of C\<close> affD eq_iff face_of_trans facet_of_def zle_diff1_eq) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
502 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
503 |
moreover have "polyhedron D" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
504 |
using \<open>C \<in> \<F>\<close> \<open>D face_of C\<close> face_of_polytope_polytope poly polytope_imp_polyhedron by auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
505 |
ultimately have relf_sub: "rel_frontier D \<subseteq> \<Union> {E. E face_of C \<and> aff_dim E < p}" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
506 |
by (simp add: rel_frontier_of_polyhedron Union_mono) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
507 |
then have him_relf: "h ` rel_frontier D \<subseteq> rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
508 |
using \<open>C \<in> \<F>\<close> him by blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
509 |
have "convex D" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
510 |
by (simp add: \<open>polyhedron D\<close> polyhedron_imp_convex) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
511 |
have affD_lessT: "aff_dim D < aff_dim T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
512 |
using Suc.prems affD by linarith |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
513 |
have contDh: "continuous_on (rel_frontier D) h" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
514 |
using \<open>C \<in> \<F>\<close> relf_sub by (blast intro: continuous_on_subset [OF conth]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
515 |
then have *: "(\<exists>c. homotopic_with (\<lambda>x. True) (rel_frontier D) (rel_frontier T) h (\<lambda>x. c)) = |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
516 |
(\<exists>g. continuous_on UNIV g \<and> range g \<subseteq> rel_frontier T \<and> |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
517 |
(\<forall>x\<in>rel_frontier D. g x = h x))" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
518 |
apply (rule nullhomotopic_into_rel_frontier_extension [OF closed_rel_frontier]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
519 |
apply (simp_all add: assms rel_frontier_eq_empty him_relf) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
520 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
521 |
have "(\<exists>c. homotopic_with (\<lambda>x. True) (rel_frontier D) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
522 |
(rel_frontier T) h (\<lambda>x. c))" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
523 |
by (metis inessential_spheremap_lowdim_gen |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
524 |
[OF \<open>convex D\<close> \<open>bounded D\<close> \<open>convex T\<close> \<open>bounded T\<close> affD_lessT contDh him_relf]) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
525 |
then obtain g where contg: "continuous_on UNIV g" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
526 |
and gim: "range g \<subseteq> rel_frontier T" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
527 |
and gh: "\<And>x. x \<in> rel_frontier D \<Longrightarrow> g x = h x" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
528 |
by (metis *) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
529 |
have "D \<inter> E \<subseteq> rel_frontier D" |
67399 | 530 |
if "E \<in> \<G> \<union> {D. Bex \<F> ((face_of) D) \<and> aff_dim D < int p}" for E |
64006
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
531 |
proof (rule face_of_subset_rel_frontier) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
532 |
show "D \<inter> E face_of D" |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
533 |
using that \<open>C \<in> \<F>\<close> \<open>D face_of C\<close> face |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
534 |
apply auto |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
535 |
apply (meson face_of_Int_subface \<open>\<G> \<subseteq> \<F>\<close> face_of_refl_eq poly polytope_imp_convex subsetD) |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
536 |
using face_of_Int_subface apply blast |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
537 |
done |
0de4736dad8b
new theorems including the theory FurtherTopology
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|