src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy
changeset 60176 38b630409aa2
parent 59807 22bc39064290
child 60303 00c06f1315d0
equal deleted inserted replaced
60175:831ddb69db9b 60176:38b630409aa2
  6354   by (auto simp add:norm_minus_commute)
  6354   by (auto simp add:norm_minus_commute)
  6355 
  6355 
  6356 lemma segment_refl: "closed_segment a a = {a}"
  6356 lemma segment_refl: "closed_segment a a = {a}"
  6357   unfolding segment by (auto simp add: algebra_simps)
  6357   unfolding segment by (auto simp add: algebra_simps)
  6358 
  6358 
       
  6359 lemma closed_segment_commute: "closed_segment a b = closed_segment b a"
       
  6360 proof -
       
  6361   have "{a, b} = {b, a}" by auto
       
  6362   thus ?thesis
       
  6363     by (simp add: segment_convex_hull)
       
  6364 qed
       
  6365 
       
  6366 lemma closed_segment_eq_real_ivl:
       
  6367   fixes a b::real
       
  6368   shows "closed_segment a b = (if a \<le> b then {a .. b} else {b .. a})"
       
  6369 proof -
       
  6370   have "b \<le> a \<Longrightarrow> closed_segment b a = {b .. a}"
       
  6371     and "a \<le> b \<Longrightarrow> closed_segment a b = {a .. b}"
       
  6372     by (auto simp: convex_hull_eq_real_cbox segment_convex_hull)
       
  6373   thus ?thesis
       
  6374     by (auto simp: closed_segment_commute)
       
  6375 qed
       
  6376 
  6359 lemma between_mem_segment: "between (a,b) x \<longleftrightarrow> x \<in> closed_segment a b"
  6377 lemma between_mem_segment: "between (a,b) x \<longleftrightarrow> x \<in> closed_segment a b"
  6360   unfolding between_def by auto
  6378   unfolding between_def by auto
  6361 
  6379 
  6362 lemma between: "between (a, b) (x::'a::euclidean_space) \<longleftrightarrow> dist a b = (dist a x) + (dist x b)"
  6380 lemma between: "between (a, b) (x::'a::euclidean_space) \<longleftrightarrow> dist a b = (dist a x) + (dist x b)"
  6363 proof (cases "a = b")
  6381 proof (cases "a = b")