src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy
changeset 56189 c4daa97ac57a
parent 56188 0268784f60da
child 56196 32b7eafc5a52
equal deleted inserted replaced
56188:0268784f60da 56189:c4daa97ac57a
     5 
     5 
     6 header {* Convex sets, functions and related things. *}
     6 header {* Convex sets, functions and related things. *}
     7 
     7 
     8 theory Convex_Euclidean_Space
     8 theory Convex_Euclidean_Space
     9 imports
     9 imports
    10   Ordered_Euclidean_Space
    10   Topology_Euclidean_Space
    11   "~~/src/HOL/Library/Convex"
    11   "~~/src/HOL/Library/Convex"
    12   "~~/src/HOL/Library/Set_Algebras"
    12   "~~/src/HOL/Library/Set_Algebras"
    13 begin
    13 begin
    14 
    14 
    15 
    15 
  3367   shows "rel_interior {a .. b} = {a <..< b}"
  3367   shows "rel_interior {a .. b} = {a <..< b}"
  3368 proof -
  3368 proof -
  3369   have "box a b \<noteq> {}"
  3369   have "box a b \<noteq> {}"
  3370     using assms
  3370     using assms
  3371     unfolding set_eq_iff
  3371     unfolding set_eq_iff
  3372     by (auto intro!: exI[of _ "(a + b) / 2"] simp: box)
  3372     by (auto intro!: exI[of _ "(a + b) / 2"] simp: box_def)
  3373   then show ?thesis
  3373   then show ?thesis
  3374     using interior_rel_interior_gen[of "cbox a b", symmetric]
  3374     using interior_rel_interior_gen[of "cbox a b", symmetric]
  3375     by (simp split: split_if_asm del: box_real add: box_real[symmetric] interior_cbox)
  3375     by (simp split: split_if_asm del: box_real add: box_real[symmetric] interior_cbox)
  3376 qed
  3376 qed
  3377 
  3377 
  5670   shows "is_interval s \<Longrightarrow> connected s"
  5670   shows "is_interval s \<Longrightarrow> connected s"
  5671   using is_interval_convex convex_connected by auto
  5671   using is_interval_convex convex_connected by auto
  5672 
  5672 
  5673 lemma convex_box: "convex (cbox a b)" "convex (box a (b::'a::euclidean_space))"
  5673 lemma convex_box: "convex (cbox a b)" "convex (box a (b::'a::euclidean_space))"
  5674   apply (rule_tac[!] is_interval_convex)+
  5674   apply (rule_tac[!] is_interval_convex)+
  5675   using is_interval_interval
  5675   using is_interval_box is_interval_cbox
  5676   apply auto
  5676   apply auto
  5677   done
  5677   done
  5678 
  5678 
  5679 subsection {* On @{text "real"}, @{text "is_interval"}, @{text "convex"} and @{text "connected"} are all equivalent. *}
  5679 subsection {* On @{text "real"}, @{text "is_interval"}, @{text "convex"} and @{text "connected"} are all equivalent. *}
  5680 
  5680