src/ZF/Perm.thy
changeset 45602 2a858377c3d2
parent 41160 be34449f6cba
child 46820 c656222c4dc1
equal deleted inserted replaced
45601:d5178f19b671 45602:2a858377c3d2
   123 apply (unfold bij_def)
   123 apply (unfold bij_def)
   124 apply (erule IntD2)
   124 apply (erule IntD2)
   125 done
   125 done
   126 
   126 
   127 text{* f: bij(A,B) ==> f: A->B *}
   127 text{* f: bij(A,B) ==> f: A->B *}
   128 lemmas bij_is_fun = bij_is_inj [THEN inj_is_fun, standard]
   128 lemmas bij_is_fun = bij_is_inj [THEN inj_is_fun]
   129 
   129 
   130 lemma lam_bijective: 
   130 lemma lam_bijective: 
   131     "[| !!x. x:A ==> c(x): B;            
   131     "[| !!x. x:A ==> c(x): B;            
   132         !!y. y:B ==> d(y): A;            
   132         !!y. y:B ==> d(y): A;            
   133         !!x. x:A ==> d(c(x)) = x;        
   133         !!x. x:A ==> d(c(x)) = x;        
   172 lemma id_subset_inj: "A<=B ==> id(A): inj(A,B)"
   172 lemma id_subset_inj: "A<=B ==> id(A): inj(A,B)"
   173 apply (simp add: inj_def id_def)
   173 apply (simp add: inj_def id_def)
   174 apply (blast intro: lam_type) 
   174 apply (blast intro: lam_type) 
   175 done
   175 done
   176 
   176 
   177 lemmas id_inj = subset_refl [THEN id_subset_inj, standard]
   177 lemmas id_inj = subset_refl [THEN id_subset_inj]
   178 
   178 
   179 lemma id_surj: "id(A): surj(A,A)"
   179 lemma id_surj: "id(A): surj(A,A)"
   180 apply (unfold id_def surj_def)
   180 apply (unfold id_def surj_def)
   181 apply (simp (no_asm_simp))
   181 apply (simp (no_asm_simp))
   182 done
   182 done
   218 
   218 
   219 lemma left_inverse_eq:
   219 lemma left_inverse_eq:
   220      "[|f \<in> inj(A,B); f ` x = y; x \<in> A|] ==> converse(f) ` y = x"
   220      "[|f \<in> inj(A,B); f ` x = y; x \<in> A|] ==> converse(f) ` y = x"
   221 by auto
   221 by auto
   222 
   222 
   223 lemmas left_inverse_bij = bij_is_inj [THEN left_inverse, standard]
   223 lemmas left_inverse_bij = bij_is_inj [THEN left_inverse]
   224 
   224 
   225 lemma right_inverse_lemma:
   225 lemma right_inverse_lemma:
   226      "[| f: A->B;  converse(f): C->A;  b: C |] ==> f`(converse(f)`b) = b"
   226      "[| f: A->B;  converse(f): C->A;  b: C |] ==> f`(converse(f)`b) = b"
   227 by (rule apply_Pair [THEN converseD [THEN apply_equality]], auto) 
   227 by (rule apply_Pair [THEN converseD [THEN apply_equality]], auto) 
   228 
   228