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