equal
deleted
inserted
replaced
440 Goalw [fun_rel_comp_def] "! x. ?! y. (f x, y) : R ==> ?! g. g : fun_rel_comp f R"; |
440 Goalw [fun_rel_comp_def] "! x. ?! y. (f x, y) : R ==> ?! g. g : fun_rel_comp f R"; |
441 by (res_inst_tac [("a","%x. @y. (f x, y) : R")] ex1I 1); |
441 by (res_inst_tac [("a","%x. @y. (f x, y) : R")] ex1I 1); |
442 by (rtac CollectI 1); |
442 by (rtac CollectI 1); |
443 by (rtac allI 1); |
443 by (rtac allI 1); |
444 by (etac allE 1); |
444 by (etac allE 1); |
445 by (rtac (select_eq_Ex RS iffD2) 1); |
445 by (rtac (some_eq_ex RS iffD2) 1); |
446 by (etac ex1_implies_ex 1); |
446 by (etac ex1_implies_ex 1); |
447 by (rtac ext 1); |
447 by (rtac ext 1); |
448 by (etac CollectE 1); |
448 by (etac CollectE 1); |
449 by (REPEAT (etac allE 1)); |
449 by (REPEAT (etac allE 1)); |
450 by (rtac (select1_equality RS sym) 1); |
450 by (rtac (some1_equality RS sym) 1); |
451 by (atac 1); |
451 by (atac 1); |
452 by (atac 1); |
452 by (atac 1); |
453 qed "fun_rel_comp_unique"; |
453 qed "fun_rel_comp_unique"; |