src/HOL/Fun.ML
changeset 6829 50459a995aa3
parent 6301 08245f5a436d
child 7014 11ee650edcd2
equal deleted inserted replaced
6828:ea6832d74353 6829:50459a995aa3
    58 by (Blast_tac 1);
    58 by (Blast_tac 1);
    59 qed "image_compose";
    59 qed "image_compose";
    60 
    60 
    61 Goalw [o_def] "UNION A (g o f) = UNION (f``A) g";
    61 Goalw [o_def] "UNION A (g o f) = UNION (f``A) g";
    62 by (Blast_tac 1);
    62 by (Blast_tac 1);
    63 qed "UNION_o";
    63 qed "UN_o";
    64 
    64 
    65 
    65 
    66 section "inj";
    66 section "inj";
    67 (**NB: inj now just translates to inj_on**)
    67 (**NB: inj now just translates to inj_on**)
    68 
    68 
   218 qed "inj_image_mem_iff";
   218 qed "inj_image_mem_iff";
   219 
   219 
   220 Goal "inj f ==> (f``A = f``B) = (A = B)";
   220 Goal "inj f ==> (f``A = f``B) = (A = B)";
   221 by (blast_tac (claset() addSEs [equalityE] addDs [injD]) 1);
   221 by (blast_tac (claset() addSEs [equalityE] addDs [injD]) 1);
   222 qed "inj_image_eq_iff";
   222 qed "inj_image_eq_iff";
       
   223 
       
   224 Goal  "(f `` (UNION A B)) = (UN x:A.(f `` (B x)))";
       
   225 by (Blast_tac 1);
       
   226 qed "image_UN";
       
   227 
       
   228 (*injectivity's required.  Left-to-right inclusion holds even if A is empty*)
       
   229 Goalw [inj_on_def]
       
   230    "[| inj_on f C;  ALL x:A. B x <= C;  j:A |] \
       
   231 \   ==> f `` (INTER A B) = (INT x:A. f `` B x)";
       
   232 by (Blast_tac 1);
       
   233 qed "image_INT";
   223 
   234 
   224 val set_cs = claset() delrules [equalityI];
   235 val set_cs = claset() delrules [equalityI];
   225 
   236 
   226 
   237 
   227 section "fun_upd";
   238 section "fun_upd";