src/HOL/Analysis/Change_Of_Vars.thy
changeset 68069 36209dfb981e
parent 68046 6aba668aea78
child 68073 fad29d2a17a5
equal deleted inserted replaced
68065:d2daeef3ce47 68069:36209dfb981e
  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)"