equal
deleted
inserted
replaced
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); |