src/HOL/Analysis/Elementary_Metric_Spaces.thy
changeset 80914 d97fdabd9e2b
parent 80133 e414bcc5a39e
equal deleted inserted replaced
80913:46f59511b7bb 80914:d97fdabd9e2b
  1551     using Bseq_monoseq_convergent[of "f \<circ> r"] by (auto simp: convergent_def)
  1551     using Bseq_monoseq_convergent[of "f \<circ> r"] by (auto simp: convergent_def)
  1552 qed
  1552 qed
  1553 
  1553 
  1554 lemma compact_lemma_general:
  1554 lemma compact_lemma_general:
  1555   fixes f :: "nat \<Rightarrow> 'a"
  1555   fixes f :: "nat \<Rightarrow> 'a"
  1556   fixes proj::"'a \<Rightarrow> 'b \<Rightarrow> 'c::heine_borel" (infixl "proj" 60)
  1556   fixes proj::"'a \<Rightarrow> 'b \<Rightarrow> 'c::heine_borel" (infixl \<open>proj\<close> 60)
  1557   fixes unproj:: "('b \<Rightarrow> 'c) \<Rightarrow> 'a"
  1557   fixes unproj:: "('b \<Rightarrow> 'c) \<Rightarrow> 'a"
  1558   assumes finite_basis: "finite basis"
  1558   assumes finite_basis: "finite basis"
  1559   assumes bounded_proj: "\<And>k. k \<in> basis \<Longrightarrow> bounded ((\<lambda>x. x proj k) ` range f)"
  1559   assumes bounded_proj: "\<And>k. k \<in> basis \<Longrightarrow> bounded ((\<lambda>x. x proj k) ` range f)"
  1560   assumes proj_unproj: "\<And>e k. k \<in> basis \<Longrightarrow> (unproj e) proj k = e k"
  1560   assumes proj_unproj: "\<And>e k. k \<in> basis \<Longrightarrow> (unproj e) proj k = e k"
  1561   assumes unproj_proj: "\<And>x. unproj (\<lambda>k. x proj k) = x"
  1561   assumes unproj_proj: "\<And>x. unproj (\<lambda>k. x proj k) = x"