equal
deleted
inserted
replaced
333 |
333 |
334 corollary openin_product_topology_alt: |
334 corollary openin_product_topology_alt: |
335 "openin (product_topology X I) S \<longleftrightarrow> |
335 "openin (product_topology X I) S \<longleftrightarrow> |
336 (\<forall>x \<in> S. \<exists>U. finite {i \<in> I. U i \<noteq> topspace(X i)} \<and> |
336 (\<forall>x \<in> S. \<exists>U. finite {i \<in> I. U i \<noteq> topspace(X i)} \<and> |
337 (\<forall>i \<in> I. openin (X i) (U i)) \<and> x \<in> Pi\<^sub>E I U \<and> Pi\<^sub>E I U \<subseteq> S)" |
337 (\<forall>i \<in> I. openin (X i) (U i)) \<and> x \<in> Pi\<^sub>E I U \<and> Pi\<^sub>E I U \<subseteq> S)" |
338 sledgehammer [isar_proofs, provers = "cvc4 z3 spass e vampire verit", timeout = 77] |
|
339 unfolding openin_product_topology arbitrary_union_of_alt product_topology_base_alt topspace_product_topology |
338 unfolding openin_product_topology arbitrary_union_of_alt product_topology_base_alt topspace_product_topology |
340 apply safe |
339 by (smt (verit, best)) |
341 apply (drule bspec; blast)+ |
|
342 done |
|
343 |
340 |
344 lemma closure_of_product_topology: |
341 lemma closure_of_product_topology: |
345 "(product_topology X I) closure_of (PiE I S) = PiE I (\<lambda>i. (X i) closure_of (S i))" |
342 "(product_topology X I) closure_of (PiE I S) = PiE I (\<lambda>i. (X i) closure_of (S i))" |
346 proof - |
343 proof - |
347 have *: "(\<forall>T. f \<in> T \<and> openin (product_topology X I) T \<longrightarrow> (\<exists>y\<in>Pi\<^sub>E I S. y \<in> T)) |
344 have *: "(\<forall>T. f \<in> T \<and> openin (product_topology X I) T \<longrightarrow> (\<exists>y\<in>Pi\<^sub>E I S. y \<in> T)) |