src/HOL/Analysis/Polytope.thy
changeset 73932 fd21b4a93043
parent 72569 d56e4eeae967
child 74513 67d87d224e00
equal deleted inserted replaced
73866:66bff50bc5f1 73932:fd21b4a93043
  2727         using True \<open>finite S\<close> aff_dim_le_card affine_independent_iff_card by fastforce
  2727         using True \<open>finite S\<close> aff_dim_le_card affine_independent_iff_card by fastforce
  2728       then obtain a where "a \<in> S" "a \<notin> T"
  2728       then obtain a where "a \<in> S" "a \<notin> T"
  2729         using \<open>T \<subseteq> S\<close> by blast
  2729         using \<open>T \<subseteq> S\<close> by blast
  2730       then have "\<exists>y\<in>S. x \<in> convex hull (S - {y})"
  2730       then have "\<exists>y\<in>S. x \<in> convex hull (S - {y})"
  2731         using True affine_independent_iff_card [of S]
  2731         using True affine_independent_iff_card [of S]
  2732         by (metis (no_types, hide_lams) Diff_eq_empty_iff Diff_insert0 \<open>a \<notin> T\<close> \<open>T \<subseteq> S\<close> \<open>x \<in> convex hull T\<close> hull_mono insert_Diff_single subsetCE)
  2732         by (metis (no_types, opaque_lifting) Diff_eq_empty_iff Diff_insert0 \<open>a \<notin> T\<close> \<open>T \<subseteq> S\<close> \<open>x \<in> convex hull T\<close> hull_mono insert_Diff_single subsetCE)
  2733     } note * = this
  2733     } note * = this
  2734     have 1: "convex hull S \<subseteq> (\<Union> a\<in>S. convex hull (S - {a}))"
  2734     have 1: "convex hull S \<subseteq> (\<Union> a\<in>S. convex hull (S - {a}))"
  2735       by (subst caratheodory_aff_dim) (blast dest: *)
  2735       by (subst caratheodory_aff_dim) (blast dest: *)
  2736     have 2: "\<Union>((\<lambda>a. convex hull (S - {a})) ` S) \<subseteq> convex hull S"
  2736     have 2: "\<Union>((\<lambda>a. convex hull (S - {a})) ` S) \<subseteq> convex hull S"
  2737       by (rule Union_least) (metis (no_types, lifting)  Diff_subset hull_mono imageE)
  2737       by (rule Union_least) (metis (no_types, lifting)  Diff_subset hull_mono imageE)
  3042 lemma simplex_imp_polyhedron:
  3042 lemma simplex_imp_polyhedron:
  3043    "n simplex S \<Longrightarrow> polyhedron S"
  3043    "n simplex S \<Longrightarrow> polyhedron S"
  3044   by (simp add: polytope_imp_polyhedron simplex_imp_polytope)
  3044   by (simp add: polytope_imp_polyhedron simplex_imp_polytope)
  3045 
  3045 
  3046 lemma simplex_dim_ge: "n simplex S \<Longrightarrow> -1 \<le> n"
  3046 lemma simplex_dim_ge: "n simplex S \<Longrightarrow> -1 \<le> n"
  3047   by (metis (no_types, hide_lams) aff_dim_geq affine_independent_iff_card diff_add_cancel diff_diff_eq2 simplex_def)
  3047   by (metis (no_types, opaque_lifting) aff_dim_geq affine_independent_iff_card diff_add_cancel diff_diff_eq2 simplex_def)
  3048 
  3048 
  3049 lemma simplex_empty [simp]: "n simplex {} \<longleftrightarrow> n = -1"
  3049 lemma simplex_empty [simp]: "n simplex {} \<longleftrightarrow> n = -1"
  3050 proof
  3050 proof
  3051   assume "n simplex {}"
  3051   assume "n simplex {}"
  3052   then show "n = -1"
  3052   then show "n = -1"