Added a few thms about UN/INT/{}/UNIV
authornipkow
Fri, 18 Oct 2002 09:53:02 +0200
changeset 13653 ef123b9e8089
parent 13652 172600c40793
child 13654 b0d8bad27f42
Added a few thms about UN/INT/{}/UNIV
src/HOL/Set.ML
src/HOL/Set.thy
--- a/src/HOL/Set.ML	Thu Oct 17 10:56:00 2002 +0200
+++ b/src/HOL/Set.ML	Fri Oct 18 09:53:02 2002 +0200
@@ -161,7 +161,6 @@
 val UN_constant = thm "UN_constant";
 val UN_empty = thm "UN_empty";
 val UN_empty2 = thm "UN_empty2";
-val UN_empty3 = thm "UN_empty3";
 val UN_eq = thm "UN_eq";
 val UN_iff = thm "UN_iff";
 val UN_insert = thm "UN_insert";
--- a/src/HOL/Set.thy	Thu Oct 17 10:56:00 2002 +0200
+++ b/src/HOL/Set.thy	Fri Oct 18 09:53:02 2002 +0200
@@ -1292,7 +1292,10 @@
   by blast
 
 lemma Union_empty_conv [iff]: "(\<Union>A = {}) = (\<forall>x\<in>A. x = {})"
-  by auto
+  by blast
+
+lemma empty_Union_conv [iff]: "({} = \<Union>A) = (\<forall>x\<in>A. x = {})"
+  by blast
 
 lemma Union_disjoint: "(\<Union>C \<inter> A = {}) = (\<forall>B\<in>C. B \<inter> A = {})"
   by blast
@@ -1315,6 +1318,11 @@
 lemma Inter_Un_distrib: "\<Inter>(A \<union> B) = \<Inter>A \<inter> \<Inter>B"
   by blast
 
+lemma Inter_UNIV_conv [iff]:
+  "(\<Inter>A = UNIV) = (\<forall>x\<in>A. x = UNIV)"
+  "(UNIV = \<Inter>A) = (\<forall>x\<in>A. x = UNIV)"
+  by(blast)+
+
 
 text {*
   \medskip @{text UN} and @{text INT}.
@@ -1386,8 +1394,15 @@
   -- {* Look: it has an \emph{existential} quantifier *}
   by blast
 
-lemma UN_empty3 [iff]: "(UNION A B = {}) = (\<forall>x\<in>A. B x = {})"
-  by auto
+lemma UNION_empty_conv[iff]:
+  "({} = (UN x:A. B x)) = (\<forall>x\<in>A. B x = {})"
+  "((UN x:A. B x) = {}) = (\<forall>x\<in>A. B x = {})"
+by blast+
+
+lemma INTER_UNIV_conv[iff]:
+ "(UNIV = (INT x:A. B x)) = (\<forall>x\<in>A. B x = UNIV)"
+ "((INT x:A. B x) = UNIV) = (\<forall>x\<in>A. B x = UNIV)"
+by blast+
 
 
 text {* \medskip Distributive laws: *}