equal
  deleted
  inserted
  replaced
  
    
    
|    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 |