removed the obsolete (and badly named) inj_select
authorpaulson
Tue, 26 Sep 2000 16:42:24 +0200
changeset 10076 2683ff181047
parent 10075 6f07d9850141
child 10077 0261aede52ca
removed the obsolete (and badly named) inj_select Added new theorems about Compl, image, bij/inj/surj
src/HOL/Fun.ML
--- a/src/HOL/Fun.ML	Mon Sep 25 18:25:48 2000 +0200
+++ b/src/HOL/Fun.ML	Tue Sep 26 16:42:24 2000 +0200
@@ -113,15 +113,9 @@
 by (assume_tac 1);
 qed "inj_eq";
 
-Goal "inj(f) ==> (@x. f(x)=f(y)) = y";
-by (etac injD 1);
-by (rtac someI 1);
-by (rtac refl 1);
-qed "inj_select";
-
 (*A one-to-one function has an inverse (given using select).*)
 Goalw [inv_def] "inj(f) ==> inv f (f x) = x";
-by (etac inj_select 1);
+by (asm_simp_tac (simpset() addsimps [inj_eq]) 1); 
 qed "inv_f_f";
 Addsimps [inv_f_f];
 
@@ -426,6 +420,20 @@
 by (blast_tac (claset() addIs [bij_is_inj RS inv_f_f RS sym]) 1);
 qed "bij_vimage_eq_inv_image";
 
+Goal "surj f ==> -(f``A) <= f``(-A)";
+by (auto_tac (claset(), simpset() addsimps [surj_def]));  
+qed "surj_Compl_image_subset";
+
+Goal "inj f ==> f``(-A) <= -(f``A)";
+by (auto_tac (claset(), simpset() addsimps [inj_on_def]));  
+qed "inj_image_Compl_subset";
+
+Goalw [bij_def] "bij f ==> f``(-A) = -(f``A)";
+by (rtac equalityI 1); 
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [inj_image_Compl_subset, 
+                                                surj_Compl_image_subset]))); 
+qed "bij_image_Compl_eq";
+
 val set_cs = claset() delrules [equalityI];