3052 assumes "convex s" shows "convex(closure s)" |
3052 assumes "convex s" shows "convex(closure s)" |
3053 unfolding convex_def Ball_def closure_sequential |
3053 unfolding convex_def Ball_def closure_sequential |
3054 apply(rule,rule,rule,rule,rule,rule,rule,rule,rule) apply(erule_tac exE)+ |
3054 apply(rule,rule,rule,rule,rule,rule,rule,rule,rule) apply(erule_tac exE)+ |
3055 apply(rule_tac x="\<lambda>n. u *\<^sub>R xb n + v *\<^sub>R xc n" in exI) apply(rule,rule) |
3055 apply(rule_tac x="\<lambda>n. u *\<^sub>R xb n + v *\<^sub>R xc n" in exI) apply(rule,rule) |
3056 apply(rule assms[unfolded convex_def, rule_format]) prefer 6 |
3056 apply(rule assms[unfolded convex_def, rule_format]) prefer 6 |
3057 apply(rule Lim_add) apply(rule_tac [1-2] Lim_cmul) by auto |
3057 by (auto intro: tendsto_intros) |
3058 |
3058 |
3059 lemma convex_interior: |
3059 lemma convex_interior: |
3060 fixes s :: "'a::real_normed_vector set" |
3060 fixes s :: "'a::real_normed_vector set" |
3061 assumes "convex s" shows "convex(interior s)" |
3061 assumes "convex s" shows "convex(interior s)" |
3062 unfolding convex_alt Ball_def mem_interior apply(rule,rule,rule,rule,rule,rule) apply(erule exE | erule conjE)+ proof- |
3062 unfolding convex_alt Ball_def mem_interior apply(rule,rule,rule,rule,rule,rule) apply(erule exE | erule conjE)+ proof- |