equal
deleted
inserted
replaced
1619 using dim_subset_UNIV by blast |
1619 using dim_subset_UNIV by blast |
1620 moreover have False if less: "dim {x. f x = 0} < DIM('a)" |
1620 moreover have False if less: "dim {x. f x = 0} < DIM('a)" |
1621 proof - |
1621 proof - |
1622 obtain d where "d \<noteq> 0" and d: "\<And>y. f y = 0 \<Longrightarrow> d \<bullet> y = 0" |
1622 obtain d where "d \<noteq> 0" and d: "\<And>y. f y = 0 \<Longrightarrow> d \<bullet> y = 0" |
1623 using orthogonal_to_subspace_exists [OF less] orthogonal_def |
1623 using orthogonal_to_subspace_exists [OF less] orthogonal_def |
1624 by (metis (mono_tags, lifting) mem_Collect_eq span_clauses(1)) |
1624 by (metis (mono_tags, lifting) mem_Collect_eq span_superset) |
1625 then obtain k where "k > 0" |
1625 then obtain k where "k > 0" |
1626 and k: "\<And>e. e > 0 \<Longrightarrow> \<exists>y. y \<in> S - {0} \<and> norm y < e \<and> k * norm y \<le> \<bar>d \<bullet> y\<bar>" |
1626 and k: "\<And>e. e > 0 \<Longrightarrow> \<exists>y. y \<in> S - {0} \<and> norm y < e \<and> k * norm y \<le> \<bar>d \<bullet> y\<bar>" |
1627 using lb by blast |
1627 using lb by blast |
1628 have "\<exists>h. \<forall>n. ((h n \<in> S \<and> h n \<noteq> 0 \<and> k * norm (h n) \<le> \<bar>d \<bullet> h n\<bar>) \<and> norm (h n) < 1 / real (Suc n)) \<and> |
1628 have "\<exists>h. \<forall>n. ((h n \<in> S \<and> h n \<noteq> 0 \<and> k * norm (h n) \<le> \<bar>d \<bullet> h n\<bar>) \<and> norm (h n) < 1 / real (Suc n)) \<and> |
1629 norm (h (Suc n)) < norm (h n)" |
1629 norm (h (Suc n)) < norm (h n)" |