equal
deleted
inserted
replaced
210 qed "bij_vimage_eq_inv_image"; |
210 qed "bij_vimage_eq_inv_image"; |
211 |
211 |
212 |
212 |
213 section "Inverse of a PI-function (restricted domain)"; |
213 section "Inverse of a PI-function (restricted domain)"; |
214 |
214 |
215 Goalw [Inv_def] "f ` A = B ==> (lam x: B. (Inv A f) x) : B funcset A"; |
215 Goalw [Inv_def] "f ` A = B ==> (%x:B. (Inv A f) x) : B funcset A"; |
216 by (fast_tac (claset() addIs [restrict_in_funcset, someI2]) 1); |
216 by (fast_tac (claset() addIs [restrict_in_funcset, someI2]) 1); |
217 qed "Inv_funcset"; |
217 qed "Inv_funcset"; |
218 |
218 |
219 Goal "[| inj_on f A; x : A |] ==> Inv A f (f x) = x"; |
219 Goal "[| inj_on f A; x : A |] ==> Inv A f (f x) = x"; |
220 by (asm_full_simp_tac (simpset() addsimps [Inv_def, inj_on_def]) 1); |
220 by (asm_full_simp_tac (simpset() addsimps [Inv_def, inj_on_def]) 1); |
235 by (rtac inj_onI 1); |
235 by (rtac inj_onI 1); |
236 by (blast_tac (claset() addIs [inj_onI] addDs [Inv_injective, injD]) 1); |
236 by (blast_tac (claset() addIs [inj_onI] addDs [Inv_injective, injD]) 1); |
237 qed "inj_on_Inv"; |
237 qed "inj_on_Inv"; |
238 |
238 |
239 Goal "[| inj_on f A; f ` A = B |] \ |
239 Goal "[| inj_on f A; f ` A = B |] \ |
240 \ ==> compose A (lam y:B. (Inv A f) y) f = (lam x: A. x)"; |
240 \ ==> compose A (%y:B. (Inv A f) y) f = (%x:A. x)"; |
241 by (asm_simp_tac (simpset() addsimps [compose_def]) 1); |
241 by (asm_simp_tac (simpset() addsimps [compose_def]) 1); |
242 by (rtac restrict_ext 1); |
242 by (rtac restrict_ext 1); |
243 by Auto_tac; |
243 by Auto_tac; |
244 by (etac subst 1); |
244 by (etac subst 1); |
245 by (asm_full_simp_tac (simpset() addsimps [Inv_f_f]) 1); |
245 by (asm_full_simp_tac (simpset() addsimps [Inv_f_f]) 1); |