src/HOL/Analysis/Topology_Euclidean_Space.thy
changeset 69313 b021008c5397
parent 69286 e4d5a07fecb6
child 69325 4b6ddc5989fc
equal deleted inserted replaced
69312:e0f68a507683 69313:b021008c5397
   438       proof induct
   438       proof induct
   439         case UNIV
   439         case UNIV
   440         show ?case by (intro exI[of _ "{{}}"]) simp
   440         show ?case by (intro exI[of _ "{{}}"]) simp
   441       next
   441       next
   442         case (Int a b)
   442         case (Int a b)
   443         then obtain x y where x: "a = UNION x Inter" "\<And>i. i \<in> x \<Longrightarrow> finite i \<and> i \<subseteq> B"
   443         then obtain x y where x: "a = \<Union>(Inter ` x)" "\<And>i. i \<in> x \<Longrightarrow> finite i \<and> i \<subseteq> B"
   444           and y: "b = UNION y Inter" "\<And>i. i \<in> y \<Longrightarrow> finite i \<and> i \<subseteq> B"
   444           and y: "b = \<Union>(Inter ` y)" "\<And>i. i \<in> y \<Longrightarrow> finite i \<and> i \<subseteq> B"
   445           by blast
   445           by blast
   446         show ?case
   446         show ?case
   447           unfolding x y Int_UN_distrib2
   447           unfolding x y Int_UN_distrib2
   448           by (intro exI[of _ "{i \<union> j| i j.  i \<in> x \<and> j \<in> y}"]) (auto dest: x(2) y(2))
   448           by (intro exI[of _ "{i \<union> j| i j.  i \<in> x \<and> j \<in> y}"]) (auto dest: x(2) y(2))
   449       next
   449       next
   450         case (UN K)
   450         case (UN K)
   451         then have "\<forall>k\<in>K. \<exists>B'\<subseteq>{b. finite b \<and> b \<subseteq> B}. UNION B' Inter = k" by auto
   451         then have "\<forall>k\<in>K. \<exists>B'\<subseteq>{b. finite b \<and> b \<subseteq> B}. UNION B' Inter = k" by auto
   452         then obtain k where
   452         then obtain k where
   453             "\<forall>ka\<in>K. k ka \<subseteq> {b. finite b \<and> b \<subseteq> B} \<and> UNION (k ka) Inter = ka"
   453             "\<forall>ka\<in>K. k ka \<subseteq> {b. finite b \<and> b \<subseteq> B} \<and> \<Union>(Inter ` (k ka)) = ka"
   454           unfolding bchoice_iff ..
   454           unfolding bchoice_iff ..
   455         then show "\<exists>B'\<subseteq>{b. finite b \<and> b \<subseteq> B}. UNION B' Inter = \<Union>K"
   455         then show "\<exists>B'\<subseteq>{b. finite b \<and> b \<subseteq> B}. UNION B' Inter = \<Union>K"
   456           by (intro exI[of _ "UNION K k"]) auto
   456           by (intro exI[of _ "\<Union>(k ` K)"]) auto
   457       next
   457       next
   458         case (Basis S)
   458         case (Basis S)
   459         then show ?case
   459         then show ?case
   460           by (intro exI[of _ "{{S}}"]) auto
   460           by (intro exI[of _ "{{S}}"]) auto
   461       qed
   461       qed