src/HOL/equalities.ML
changeset 7958 f531589c9fc1
parent 7914 5bfde29f1dbb
child 8017 058193827a52
equal deleted inserted replaced
7957:0196b2302e21 7958:f531589c9fc1
    26 Goalw [psubset_def] "~ (A < {})";
    26 Goalw [psubset_def] "~ (A < {})";
    27 by (Blast_tac 1);
    27 by (Blast_tac 1);
    28 qed "not_psubset_empty";
    28 qed "not_psubset_empty";
    29 AddIffs [not_psubset_empty];
    29 AddIffs [not_psubset_empty];
    30 
    30 
       
    31 Goal "(Collect P = {}) = (!x. ~ P x)";
       
    32 by Auto_tac;
       
    33 qed "Collect_empty_eq";
       
    34 Addsimps[Collect_empty_eq];
       
    35 
    31 Goal "{x. P x | Q x} = {x. P x} Un {x. Q x}";
    36 Goal "{x. P x | Q x} = {x. P x} Un {x. Q x}";
    32 by (Blast_tac 1);
    37 by (Blast_tac 1);
    33 qed "Collect_disj_eq";
    38 qed "Collect_disj_eq";
    34 
    39 
    35 Goal "{x. P x & Q x} = {x. P x} Int {x. Q x}";
    40 Goal "{x. P x & Q x} = {x. P x} Int {x. Q x}";
   149 Addsimps[if_image_distrib];
   154 Addsimps[if_image_distrib];
   150 
   155 
   151 val prems = Goal "[|M = N; !!x. x:N ==> f x = g x|] ==> f``M = g``N";
   156 val prems = Goal "[|M = N; !!x. x:N ==> f x = g x|] ==> f``M = g``N";
   152 by (simp_tac (simpset() addsimps image_def::prems) 1);
   157 by (simp_tac (simpset() addsimps image_def::prems) 1);
   153 qed "image_cong";
   158 qed "image_cong";
       
   159 
       
   160 
       
   161 section "range";
       
   162 
       
   163 Goal "{u. ? x. u = f x} = range f";
       
   164 by Auto_tac;
       
   165 qed "full_SetCompr_eq";
       
   166 Addsimps[full_SetCompr_eq];
   154 
   167 
   155 
   168 
   156 section "Int";
   169 section "Int";
   157 
   170 
   158 Goal "A Int A = A";
   171 Goal "A Int A = A";