# HG changeset patch # User wenzelm # Date 1393518286 -3600 # Node ID 41a73a41f6c82b3674527542d3424bc8a2aaae17 # Parent 96861130f922ebdcc23f76c226f6adcb8953bdf0 more symbols; diff -r 96861130f922 -r 41a73a41f6c8 src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy --- a/src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy Thu Feb 27 17:24:16 2014 +0100 +++ b/src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy Thu Feb 27 17:24:46 2014 +0100 @@ -8137,7 +8137,7 @@ then have "rel_interior (S \ T) = rel_interior ((S \ (UNIV :: 'm set)) \ ((UNIV :: 'n set) \ T))" by auto also have "\ = rel_interior (S \ (UNIV :: 'm set)) \ rel_interior ((UNIV :: 'n set) \ T)" - apply (subst convex_rel_interior_inter_two[of "S \ (UNIV :: 'm set)" "(UNIV :: 'n set) <*> T"]) + apply (subst convex_rel_interior_inter_two[of "S \ (UNIV :: 'm set)" "(UNIV :: 'n set) \ T"]) using * ri assms convex_Times apply auto done @@ -8338,7 +8338,7 @@ lemma rel_interior_convex_cone_aux: fixes S :: "'m::euclidean_space set" assumes "convex S" - shows "(c, x) \ rel_interior (cone hull ({(1 :: real)} <*> S)) \ + shows "(c, x) \ rel_interior (cone hull ({(1 :: real)} \ S)) \ c > 0 \ x \ ((op *\<^sub>R c) ` (rel_interior S))" proof (cases "S = {}") case True @@ -8347,33 +8347,33 @@ next case False then obtain s where "s \ S" by auto - have conv: "convex ({(1 :: real)} <*> S)" + have conv: "convex ({(1 :: real)} \ S)" using convex_Times[of "{(1 :: real)}" S] assms convex_singleton[of "1 :: real"] by auto - def f \ "\y. {z. (y, z) \ cone hull ({1 :: real} <*> S)}" - then have *: "(c, x) \ rel_interior (cone hull ({(1 :: real)} <*> S)) = + def f \ "\y. {z. (y, z) \ cone hull ({1 :: real} \ S)}" + then have *: "(c, x) \ rel_interior (cone hull ({(1 :: real)} \ S)) = (c \ rel_interior {y. f y \ {}} \ x \ rel_interior (f c))" - apply (subst rel_interior_projection[of "cone hull ({(1 :: real)} <*> S)" f c x]) - using convex_cone_hull[of "{(1 :: real)} <*> S"] conv + apply (subst rel_interior_projection[of "cone hull ({(1 :: real)} \ S)" f c x]) + using convex_cone_hull[of "{(1 :: real)} \ S"] conv apply auto done { fix y :: real assume "y \ 0" - then have "y *\<^sub>R (1,s) \ cone hull ({1 :: real} <*> S)" - using cone_hull_expl[of "{(1 :: real)} <*> S"] `s \ S` by auto + then have "y *\<^sub>R (1,s) \ cone hull ({1 :: real} \ S)" + using cone_hull_expl[of "{(1 :: real)} \ S"] `s \ S` by auto then have "f y \ {}" using f_def by auto } then have "{y. f y \ {}} = {0..}" - using f_def cone_hull_expl[of "{1 :: real} <*> S"] by auto + using f_def cone_hull_expl[of "{1 :: real} \ S"] by auto then have **: "rel_interior {y. f y \ {}} = {0<..}" using rel_interior_real_semiline by auto { fix c :: real assume "c > 0" then have "f c = (op *\<^sub>R c ` S)" - using f_def cone_hull_expl[of "{1 :: real} <*> S"] by auto + using f_def cone_hull_expl[of "{1 :: real} \ S"] by auto then have "rel_interior (f c) = op *\<^sub>R c ` rel_interior S" using rel_interior_convex_scaleR[of S c] assms by auto } @@ -8383,7 +8383,7 @@ lemma rel_interior_convex_cone: fixes S :: "'m::euclidean_space set" assumes "convex S" - shows "rel_interior (cone hull ({1 :: real} <*> S)) = + shows "rel_interior (cone hull ({1 :: real} \ S)) = {(c, c *\<^sub>R x) | c x. c > 0 \ x \ rel_interior S}" (is "?lhs = ?rhs") proof - @@ -8621,13 +8621,13 @@ fixes S T :: "'n::euclidean_space set" shows "convex hull (S + T) = convex hull S + convex hull T" proof - - have "convex hull S + convex hull T = (\(x,y). x + y) ` ((convex hull S) <*> (convex hull T))" + have "convex hull S + convex hull T = (\(x,y). x + y) ` ((convex hull S) \ (convex hull T))" by (simp add: set_plus_image) - also have "\ = (\(x,y). x + y) ` (convex hull (S <*> T))" + also have "\ = (\(x,y). x + y) ` (convex hull (S \ T))" using convex_hull_Times by auto also have "\ = convex hull (S + T)" using fst_snd_linear linear_conv_bounded_linear - convex_hull_linear_image[of "(\(x,y). x + y)" "S <*> T"] + convex_hull_linear_image[of "(\(x,y). x + y)" "S \ T"] by (auto simp add: set_plus_image) finally show ?thesis .. qed @@ -8638,13 +8638,13 @@ and "convex T" shows "rel_interior (S + T) = rel_interior S + rel_interior T" proof - - have "rel_interior S + rel_interior T = (\(x,y). x + y) ` (rel_interior S <*> rel_interior T)" + have "rel_interior S + rel_interior T = (\(x,y). x + y) ` (rel_interior S \ rel_interior T)" by (simp add: set_plus_image) - also have "\ = (\(x,y). x + y) ` rel_interior (S <*> T)" + also have "\ = (\(x,y). x + y) ` rel_interior (S \ T)" using rel_interior_direct_sum assms by auto also have "\ = rel_interior (S + T)" using fst_snd_linear convex_Times assms - rel_interior_convex_linear_image[of "(\(x,y). x + y)" "S <*> T"] + rel_interior_convex_linear_image[of "(\(x,y). x + y)" "S \ T"] by (auto simp add: set_plus_image) finally show ?thesis .. qed @@ -8685,7 +8685,7 @@ and "rel_open S" and "convex T" and "rel_open T" - shows "convex (S <*> T) \ rel_open (S <*> T)" + shows "convex (S \ T) \ rel_open (S \ T)" by (metis assms convex_Times rel_interior_direct_sum rel_open_def) lemma convex_rel_open_sum: @@ -8799,8 +8799,8 @@ def C0 \ "convex hull (\(S ` I))" have "\i\I. C0 \ S i" unfolding C0_def using hull_subset[of "\(S ` I)"] by auto - def K0 \ "cone hull ({1 :: real} <*> C0)" - def K \ "\i. cone hull ({1 :: real} <*> S i)" + def K0 \ "cone hull ({1 :: real} \ C0)" + def K \ "\i. cone hull ({1 :: real} \ S i)" have "\i\I. K i \ {}" unfolding K_def using assms by (simp add: cone_hull_empty_iff[symmetric]) @@ -8838,13 +8838,13 @@ done ultimately have geq: "K0 \ convex hull (\(K ` I))" using hull_minimal[of _ "K0" "convex"] by blast - have "\i\I. K i \ {1 :: real} <*> S i" + have "\i\I. K i \ {1 :: real} \ S i" using K_def by (simp add: hull_subset) - then have "\(K ` I) \ {1 :: real} <*> \(S ` I)" + then have "\(K ` I) \ {1 :: real} \ \(S ` I)" by auto - then have "convex hull \(K ` I) \ convex hull ({1 :: real} <*> \(S ` I))" + then have "convex hull \(K ` I) \ convex hull ({1 :: real} \ \(S ` I))" by (simp add: hull_mono) - then have "convex hull \(K ` I) \ {1 :: real} <*> C0" + then have "convex hull \(K ` I) \ {1 :: real} \ C0" unfolding C0_def using convex_hull_Times[of "{(1 :: real)}" "\(S ` I)"] convex_hull_singleton by auto @@ -8889,7 +8889,7 @@ { fix i assume "i \ I" - then have "convex (S i) \ k i \ rel_interior (cone hull {1} <*> S i)" + then have "convex (S i) \ k i \ rel_interior (cone hull {1} \ S i)" using k K_def assms by auto then have "\ci si. k i = (ci, ci *\<^sub>R si) \ 0 < ci \ si \ rel_interior (S i)" using rel_interior_convex_cone[of "S i"] by auto