src/ZF/func.thy
changeset 13174 85d3c0981a16
parent 13172 03a5afa7b888
child 13175 81082cfa5618
equal deleted inserted replaced
13173:8f4680be79cc 13174:85d3c0981a16
   231 (** Images of functions **)
   231 (** Images of functions **)
   232 
   232 
   233 lemma image_lam: "C <= A ==> (lam x:A. b(x)) `` C = {b(x). x:C}"
   233 lemma image_lam: "C <= A ==> (lam x:A. b(x)) `` C = {b(x). x:C}"
   234 by (unfold lam_def, blast)
   234 by (unfold lam_def, blast)
   235 
   235 
       
   236 lemma image_function:
       
   237      "[| function(f);  C <= domain(f) |] ==> f``C = {f`x. x:C}";
       
   238 by (blast dest: function_apply_equality intro: function_apply_Pair) 
       
   239 
   236 lemma image_fun: "[| f : Pi(A,B);  C <= A |] ==> f``C = {f`x. x:C}"
   240 lemma image_fun: "[| f : Pi(A,B);  C <= A |] ==> f``C = {f`x. x:C}"
   237 apply (erule eta [THEN subst])
   241 apply (simp add: Pi_iff) 
   238 apply (simp add: image_lam subset_iff)
   242 apply (blast intro: image_function) 
   239 done
   243 done
   240 
   244 
   241 lemma Pi_image_cons:
   245 lemma Pi_image_cons:
   242      "[| f: Pi(A,B);  x: A |] ==> f `` cons(x,y) = cons(f`x, f``y)"
   246      "[| f: Pi(A,B);  x: A |] ==> f `` cons(x,y) = cons(f`x, f``y)"
   243 by (blast dest: apply_equality apply_Pair)
   247 by (blast dest: apply_equality apply_Pair)
   320              ALL f:S. ALL y:S. f<=y | y<=f  |] ==>
   324              ALL f:S. ALL y:S. f<=y | y<=f  |] ==>
   321           Union(S) : domain(Union(S)) -> range(Union(S))"
   325           Union(S) : domain(Union(S)) -> range(Union(S))"
   322 apply (unfold Pi_def)
   326 apply (unfold Pi_def)
   323 apply (blast intro!: rel_Union function_Union)
   327 apply (blast intro!: rel_Union function_Union)
   324 done
   328 done
       
   329 
       
   330 lemma gen_relation_Union [rule_format]:
       
   331      "\<forall>f\<in>F. relation(f) \<Longrightarrow> relation(Union(F))"
       
   332 by (simp add: relation_def) 
   325 
   333 
   326 
   334 
   327 (** The Union of 2 disjoint functions is a function **)
   335 (** The Union of 2 disjoint functions is a function **)
   328 
   336 
   329 lemmas Un_rls = Un_subset_iff SUM_Un_distrib1 prod_Un_distrib2
   337 lemmas Un_rls = Un_subset_iff SUM_Un_distrib1 prod_Un_distrib2