src/HOL/Analysis/Path_Connected.thy
changeset 78698 1b9388e6eb75
parent 78517 28c1f4f5335f
child 80052 35b2143aeec6
equal deleted inserted replaced
78690:e10ef4f9c848 78698:1b9388e6eb75
   445 
   445 
   446 lemma nonempty_simple_path_endless:
   446 lemma nonempty_simple_path_endless:
   447     "simple_path c \<Longrightarrow> path_image c - {pathstart c,pathfinish c} \<noteq> {}"
   447     "simple_path c \<Longrightarrow> path_image c - {pathstart c,pathfinish c} \<noteq> {}"
   448   by (simp add: simple_path_endless)
   448   by (simp add: simple_path_endless)
   449 
   449 
       
   450 lemma simple_path_continuous_image:
       
   451   assumes "simple_path f" "continuous_on (path_image f) g" "inj_on g (path_image f)"
       
   452   shows   "simple_path (g \<circ> f)"
       
   453   unfolding simple_path_def
       
   454 proof
       
   455   show "path (g \<circ> f)"
       
   456     using assms unfolding simple_path_def by (intro path_continuous_image) auto
       
   457   from assms have [simp]: "g (f x) = g (f y) \<longleftrightarrow> f x = f y" if "x \<in> {0..1}" "y \<in> {0..1}" for x y
       
   458     unfolding inj_on_def path_image_def using that by fastforce
       
   459   show "loop_free (g \<circ> f)"
       
   460     using assms(1) by (auto simp: loop_free_def simple_path_def)
       
   461 qed
   450 
   462 
   451 subsection\<^marker>\<open>tag unimportant\<close>\<open>The operations on paths\<close>
   463 subsection\<^marker>\<open>tag unimportant\<close>\<open>The operations on paths\<close>
   452 
   464 
   453 lemma path_image_subset_reversepath: "path_image(reversepath g) \<le> path_image g"
   465 lemma path_image_subset_reversepath: "path_image(reversepath g) \<le> path_image g"
   454   by simp
   466   by simp