src/ZF/equalities.ML
changeset 1461 6bcb44e4d6e5
parent 1056 097b3255bf3a
child 1568 630d881b51bd
equal deleted inserted replaced
1460:5a6f2aabd538 1461:6bcb44e4d6e5
     1 (*  Title: 	ZF/equalities
     1 (*  Title:      ZF/equalities
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
     3     Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
     4     Copyright   1992  University of Cambridge
     4     Copyright   1992  University of Cambridge
     5 
     5 
     6 Set Theory examples: Union, Intersection, Inclusion, etc.
     6 Set Theory examples: Union, Intersection, Inclusion, etc.
     7     (Thanks also to Philippe de Groote.)
     7     (Thanks also to Philippe de Groote.)
     8 *)
     8 *)
   290 by (fast_tac eq_cs 1);
   290 by (fast_tac eq_cs 1);
   291 qed "SUM_Un_distrib2";
   291 qed "SUM_Un_distrib2";
   292 
   292 
   293 (*First-order version of the above, for rewriting*)
   293 (*First-order version of the above, for rewriting*)
   294 goal ZF.thy "I * (A Un B) = I*A Un I*B";
   294 goal ZF.thy "I * (A Un B) = I*A Un I*B";
   295 by (resolve_tac [SUM_Un_distrib2] 1);
   295 by (rtac SUM_Un_distrib2 1);
   296 qed "prod_Un_distrib2";
   296 qed "prod_Un_distrib2";
   297 
   297 
   298 goal ZF.thy "(SUM i:I Int J. C(i)) = (SUM i:I. C(i)) Int (SUM j:J. C(j))";
   298 goal ZF.thy "(SUM i:I Int J. C(i)) = (SUM i:I. C(i)) Int (SUM j:J. C(j))";
   299 by (fast_tac eq_cs 1);
   299 by (fast_tac eq_cs 1);
   300 qed "SUM_Int_distrib1";
   300 qed "SUM_Int_distrib1";
   304 by (fast_tac eq_cs 1);
   304 by (fast_tac eq_cs 1);
   305 qed "SUM_Int_distrib2";
   305 qed "SUM_Int_distrib2";
   306 
   306 
   307 (*First-order version of the above, for rewriting*)
   307 (*First-order version of the above, for rewriting*)
   308 goal ZF.thy "I * (A Int B) = I*A Int I*B";
   308 goal ZF.thy "I * (A Int B) = I*A Int I*B";
   309 by (resolve_tac [SUM_Int_distrib2] 1);
   309 by (rtac SUM_Int_distrib2 1);
   310 qed "prod_Int_distrib2";
   310 qed "prod_Int_distrib2";
   311 
   311 
   312 (*Cf Aczel, Non-Well-Founded Sets, page 115*)
   312 (*Cf Aczel, Non-Well-Founded Sets, page 115*)
   313 goal ZF.thy "(SUM i:I. A(i)) = (UN i:I. {i} * A(i))";
   313 goal ZF.thy "(SUM i:I. A(i)) = (UN i:I. {i} * A(i))";
   314 by (fast_tac eq_cs 1);
   314 by (fast_tac eq_cs 1);