src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy
changeset 56154 f0a927235162
parent 55929 91f245c23bc5
child 56188 0268784f60da
equal deleted inserted replaced
56153:2008f1cf3030 56154:f0a927235162
   278   shows "f ` (closure S) = closure (f ` S)"
   278   shows "f ` (closure S) = closure (f ` S)"
   279 proof -
   279 proof -
   280   obtain f' where f': "linear f' \<and> f \<circ> f' = id \<and> f' \<circ> f = id"
   280   obtain f' where f': "linear f' \<and> f \<circ> f' = id \<and> f' \<circ> f = id"
   281     using assms linear_injective_isomorphism[of f] isomorphism_expand by auto
   281     using assms linear_injective_isomorphism[of f] isomorphism_expand by auto
   282   then have "f' ` closure (f ` S) \<le> closure (S)"
   282   then have "f' ` closure (f ` S) \<le> closure (S)"
   283     using closure_linear_image[of f' "f ` S"] image_compose[of f' f] by auto
   283     using closure_linear_image[of f' "f ` S"] image_comp[of f' f] by auto
   284   then have "f ` f' ` closure (f ` S) \<le> f ` closure S" by auto
   284   then have "f ` f' ` closure (f ` S) \<le> f ` closure S" by auto
   285   then have "closure (f ` S) \<le> f ` closure S"
   285   then have "closure (f ` S) \<le> f ` closure S"
   286     using image_compose[of f f' "closure (f ` S)"] f' by auto
   286     using image_comp[of f f' "closure (f ` S)"] f' by auto
   287   then show ?thesis using closure_linear_image[of f S] assms by auto
   287   then show ?thesis using closure_linear_image[of f S] assms by auto
   288 qed
   288 qed
   289 
   289 
   290 lemma closure_scaleR:
   290 lemma closure_scaleR:
   291   fixes S :: "'a::real_normed_vector set"
   291   fixes S :: "'a::real_normed_vector set"