src/HOL/equalities.ML
changeset 4645 f5f957ab73eb
parent 4634 83d364462ce1
child 4662 73ba4d19f802
equal deleted inserted replaced
4644:ecf8f17f6fe0 4645:f5f957ab73eb
   411 goal thy "(UN x:A. {}) = {}";
   411 goal thy "(UN x:A. {}) = {}";
   412 by (Blast_tac 1);
   412 by (Blast_tac 1);
   413 qed "UN_empty2";
   413 qed "UN_empty2";
   414 Addsimps[UN_empty2];
   414 Addsimps[UN_empty2];
   415 
   415 
       
   416 goal thy "(UN x:A. {x}) = A";
       
   417 by (Blast_tac 1);
       
   418 qed "UN_singleton";
       
   419 Addsimps [UN_singleton];
       
   420 
   416 goal thy "!!k. k:I ==> A k Un (UN i:I. A i) = (UN i:I. A i)";
   421 goal thy "!!k. k:I ==> A k Un (UN i:I. A i) = (UN i:I. A i)";
   417 by (Blast_tac 1);
   422 by (Blast_tac 1);
   418 qed "UN_absorb";
   423 qed "UN_absorb";
   419 
   424 
   420 goal thy "(INT x:{}. B x) = UNIV";
   425 goal thy "(INT x:{}. B x) = UNIV";
   607 
   612 
   608 goal thy "!!A. [| A<=B; B<= C |] ==> (B - (C - A)) = (A :: 'a set)";
   613 goal thy "!!A. [| A<=B; B<= C |] ==> (B - (C - A)) = (A :: 'a set)";
   609 by (Blast_tac 1);
   614 by (Blast_tac 1);
   610 qed "double_diff";
   615 qed "double_diff";
   611 
   616 
       
   617 goal thy "A Un (B-A) = A Un B";
       
   618 by (Blast_tac 1);
       
   619 qed "Un_Diff_cancel";
       
   620 
       
   621 goal thy "(B-A) Un A = B Un A";
       
   622 by (Blast_tac 1);
       
   623 qed "Un_Diff_cancel2";
       
   624 
       
   625 Addsimps [Un_Diff_cancel, Un_Diff_cancel2];
       
   626 
   612 goal thy "A - (B Un C) = (A-B) Int (A-C)";
   627 goal thy "A - (B Un C) = (A-B) Int (A-C)";
   613 by (Blast_tac 1);
   628 by (Blast_tac 1);
   614 qed "Diff_Un";
   629 qed "Diff_Un";
   615 
   630 
   616 goal thy "A - (B Int C) = (A-B) Un (A-C)";
   631 goal thy "A - (B Int C) = (A-B) Un (A-C)";
   622 qed "Un_Diff";
   637 qed "Un_Diff";
   623 
   638 
   624 goal thy "(A Int B) - C = (A - C) Int (B - C)";
   639 goal thy "(A Int B) - C = (A - C) Int (B - C)";
   625 by (Blast_tac 1);
   640 by (Blast_tac 1);
   626 qed "Int_Diff";
   641 qed "Int_Diff";
       
   642 
       
   643 goal thy "(A-B) Int C = (A Int C) - (B Int C)";
       
   644 by (Blast_tac 1);
       
   645 qed "Diff_Int_distrib";
   627 
   646 
   628 
   647 
   629 section "Miscellany";
   648 section "Miscellany";
   630 
   649 
   631 goal thy "(A = B) = ((A <= (B::'a set)) & (B<=A))";
   650 goal thy "(A = B) = ((A <= (B::'a set)) & (B<=A))";