src/ZF/equalities.ML
changeset 192 3dc5c8016a0e
parent 182 e30b55c07235
child 198 0f0ff91b07f6
equal deleted inserted replaced
191:fe5d88d4c7e1 192:3dc5c8016a0e
   215 val INT_singleton = ballI RSN (2,INT_singleton_lemma);
   215 val INT_singleton = ballI RSN (2,INT_singleton_lemma);
   216 
   216 
   217 (** Devlin, Fundamentals of Contemporary Set Theory, page 12, exercise 5: 
   217 (** Devlin, Fundamentals of Contemporary Set Theory, page 12, exercise 5: 
   218     Union of a family of unions **)
   218     Union of a family of unions **)
   219 
   219 
   220 goal ZF.thy "(UN i:I. A(x) Un B(x)) = (UN i:I. A(x))  Un  (UN i:I. B(x))";
   220 goal ZF.thy "(UN i:I. A(i) Un B(i)) = (UN i:I. A(i))  Un  (UN i:I. B(i))";
   221 by (fast_tac eq_cs 1);
   221 by (fast_tac eq_cs 1);
   222 val UN_Un_distrib = result();
   222 val UN_Un_distrib = result();
   223 
   223 
   224 goal ZF.thy
   224 goal ZF.thy
   225     "!!A B. i:I ==> \
   225     "!!A B. i:I ==> \
   226 \           (INT i:I. A(x)  Int  B(x)) = (INT i:I. A(x)) Int (INT i:I. B(x))";
   226 \           (INT i:I. A(i)  Int  B(i)) = (INT i:I. A(i)) Int (INT i:I. B(i))";
   227 by (fast_tac eq_cs 1);
   227 by (fast_tac eq_cs 1);
   228 val INT_Int_distrib = result();
   228 val INT_Int_distrib = result();
   229 
   229 
   230 (** Devlin, page 12, exercise 5: Complements **)
   230 (** Devlin, page 12, exercise 5: Complements **)
   231 
   231 
   241 
   241 
   242 goal ZF.thy "(SUM x:(UN y:A. C(y)). B(x)) = (UN y:A. SUM x:C(y). B(x))";
   242 goal ZF.thy "(SUM x:(UN y:A. C(y)). B(x)) = (UN y:A. SUM x:C(y). B(x))";
   243 by (fast_tac eq_cs 1);
   243 by (fast_tac eq_cs 1);
   244 val SUM_UN_distrib1 = result();
   244 val SUM_UN_distrib1 = result();
   245 
   245 
   246 goal ZF.thy "(SUM x:A. UN y:B. C(x,y)) = (UN y:B. SUM x:A. C(x,y))";
   246 goal ZF.thy "(SUM i:I. UN j:J. C(i,j)) = (UN j:J. SUM i:I. C(i,j))";
   247 by (fast_tac eq_cs 1);
   247 by (fast_tac eq_cs 1);
   248 val SUM_UN_distrib2 = result();
   248 val SUM_UN_distrib2 = result();
   249 
   249 
   250 goal ZF.thy "(SUM x:A Un B. C(x)) = (SUM x:A. C(x)) Un (SUM x:B. C(x))";
   250 goal ZF.thy "(SUM i:I Un J. C(i)) = (SUM i:I. C(i)) Un (SUM j:J. C(j))";
   251 by (fast_tac eq_cs 1);
   251 by (fast_tac eq_cs 1);
   252 val SUM_Un_distrib1 = result();
   252 val SUM_Un_distrib1 = result();
   253 
   253 
   254 goal ZF.thy
   254 goal ZF.thy "(SUM i:I. A(i) Un B(i)) = (SUM i:I. A(i)) Un (SUM i:I. B(i))";
   255     "(SUM i:I. A(x) Un B(x)) = (SUM i:I. A(x)) Un (SUM i:I. B(x))";
       
   256 by (fast_tac eq_cs 1);
   255 by (fast_tac eq_cs 1);
   257 val SUM_Un_distrib2 = result();
   256 val SUM_Un_distrib2 = result();
   258 
   257 
   259 goal ZF.thy "(SUM x:A Int B. C(x)) = (SUM x:A. C(x)) Int (SUM x:B. C(x))";
   258 goal ZF.thy "(SUM i:I Int J. C(i)) = (SUM i:I. C(i)) Int (SUM j:J. C(j))";
   260 by (fast_tac eq_cs 1);
   259 by (fast_tac eq_cs 1);
   261 val SUM_Int_distrib1 = result();
   260 val SUM_Int_distrib1 = result();
   262 
   261 
   263 goal ZF.thy
   262 goal ZF.thy
   264     "(SUM i:I. A(x) Int B(x)) = (SUM i:I. A(x)) Int (SUM i:I. B(x))";
   263     "(SUM i:I. A(i) Int B(i)) = (SUM i:I. A(i)) Int (SUM i:I. B(i))";
   265 by (fast_tac eq_cs 1);
   264 by (fast_tac eq_cs 1);
   266 val SUM_Int_distrib2 = result();
   265 val SUM_Int_distrib2 = result();
   267 
   266 
       
   267 (*Cf Aczel, Non-Well-Founded Sets, page 115*)
       
   268 goal ZF.thy "(SUM i:I. A(i)) = (UN i:I. {i} * A(i))";
       
   269 by (fast_tac eq_cs 1);
       
   270 val SUM_eq_UN = result();
       
   271 
   268 (** Domain, Range and Field **)
   272 (** Domain, Range and Field **)
   269 
   273 
   270 goal ZF.thy "domain(A Un B) = domain(A) Un domain(B)";
   274 goal ZF.thy "domain(A Un B) = domain(A) Un domain(B)";
   271 by (fast_tac eq_cs 1);
   275 by (fast_tac eq_cs 1);
   272 val domain_Un_eq = result();
   276 val domain_Un_eq = result();