184 Goal "A Int {} = {}"; |
184 Goal "A Int {} = {}"; |
185 by (Blast_tac 1); |
185 by (Blast_tac 1); |
186 qed "Int_empty_right"; |
186 qed "Int_empty_right"; |
187 Addsimps[Int_empty_right]; |
187 Addsimps[Int_empty_right]; |
188 |
188 |
189 Goal "(A Int B = {}) = (A <= Compl B)"; |
189 Goal "(A Int B = {}) = (A <= -B)"; |
190 by (blast_tac (claset() addSEs [equalityCE]) 1); |
190 by (blast_tac (claset() addSEs [equalityCE]) 1); |
191 qed "disjoint_eq_subset_Compl"; |
191 qed "disjoint_eq_subset_Compl"; |
192 |
192 |
193 Goal "UNIV Int B = B"; |
193 Goal "UNIV Int B = B"; |
194 by (Blast_tac 1); |
194 by (Blast_tac 1); |
336 qed "Un_Diff_Int"; |
336 qed "Un_Diff_Int"; |
337 |
337 |
338 |
338 |
339 section "Compl"; |
339 section "Compl"; |
340 |
340 |
341 Goal "A Int Compl(A) = {}"; |
341 Goal "A Int -A = {}"; |
342 by (Blast_tac 1); |
342 by (Blast_tac 1); |
343 qed "Compl_disjoint"; |
343 qed "Compl_disjoint"; |
344 Addsimps[Compl_disjoint]; |
344 Addsimps[Compl_disjoint]; |
345 |
345 |
346 Goal "A Un Compl(A) = UNIV"; |
346 Goal "A Un -A = UNIV"; |
347 by (Blast_tac 1); |
347 by (Blast_tac 1); |
348 qed "Compl_partition"; |
348 qed "Compl_partition"; |
349 |
349 |
350 Goal "Compl(Compl(A)) = A"; |
350 Goal "- -A = (A:: 'a set)"; |
351 by (Blast_tac 1); |
351 by (Blast_tac 1); |
352 qed "double_complement"; |
352 qed "double_complement"; |
353 Addsimps[double_complement]; |
353 Addsimps[double_complement]; |
354 |
354 |
355 Goal "Compl(A Un B) = Compl(A) Int Compl(B)"; |
355 Goal "-(A Un B) = -A Int -B"; |
356 by (Blast_tac 1); |
356 by (Blast_tac 1); |
357 qed "Compl_Un"; |
357 qed "Compl_Un"; |
358 |
358 |
359 Goal "Compl(A Int B) = Compl(A) Un Compl(B)"; |
359 Goal "-(A Int B) = -A Un -B"; |
360 by (Blast_tac 1); |
360 by (Blast_tac 1); |
361 qed "Compl_Int"; |
361 qed "Compl_Int"; |
362 |
362 |
363 Goal "Compl(UN x:A. B(x)) = (INT x:A. Compl(B(x)))"; |
363 Goal "-(UN x:A. B(x)) = (INT x:A. -B(x))"; |
364 by (Blast_tac 1); |
364 by (Blast_tac 1); |
365 qed "Compl_UN"; |
365 qed "Compl_UN"; |
366 |
366 |
367 Goal "Compl(INT x:A. B(x)) = (UN x:A. Compl(B(x)))"; |
367 Goal "-(INT x:A. B(x)) = (UN x:A. -B(x))"; |
368 by (Blast_tac 1); |
368 by (Blast_tac 1); |
369 qed "Compl_INT"; |
369 qed "Compl_INT"; |
370 |
370 |
371 Addsimps [Compl_Un, Compl_Int, Compl_UN, Compl_INT]; |
371 Addsimps [Compl_Un, Compl_Int, Compl_UN, Compl_INT]; |
372 |
372 |