equal
deleted
inserted
replaced
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 |