src/ZF/AC/WO_AC.ML
changeset 1461 6bcb44e4d6e5
parent 1208 bc3093616ba4
child 2469 b50b8c0eec01
equal deleted inserted replaced
1460:5a6f2aabd538 1461:6bcb44e4d6e5
     1 (*  Title: 	ZF/AC/WO_AC.ML
     1 (*  Title:      ZF/AC/WO_AC.ML
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author: 	Krzysztof Grabczewski
     3     Author:     Krzysztof Grabczewski
     4 
     4 
     5 Lemmas used in the proofs like WO? ==> AC?
     5 Lemmas used in the proofs like WO? ==> AC?
     6 *)
     6 *)
     7 
     7 
     8 open WO_AC;
     8 open WO_AC;
     9 
     9 
    10 goal thy "!!A. [| well_ord(Union(A),r); 0~:A; B:A |]  \
    10 goal thy "!!A. [| well_ord(Union(A),r); 0~:A; B:A |]  \
    11 \		==> (THE b. first(b,B,r)) : B";
    11 \               ==> (THE b. first(b,B,r)) : B";
    12 by (fast_tac (AC_cs addSEs [well_ord_imp_ex1_first RS theI RS
    12 by (fast_tac (AC_cs addSEs [well_ord_imp_ex1_first RS theI RS
    13 		(first_def RS def_imp_iff RS iffD1 RS conjunct1)]) 1);
    13                 (first_def RS def_imp_iff RS iffD1 RS conjunct1)]) 1);
    14 val first_in_B = result();
    14 val first_in_B = result();
    15 
    15 
    16 goal thy "!!A. [| well_ord(Union(A), R); 0~:A |] ==> EX f. f:(PROD X:A. X)";
    16 goal thy "!!A. [| well_ord(Union(A), R); 0~:A |] ==> EX f. f:(PROD X:A. X)";
    17 by (fast_tac (AC_cs addSEs [first_in_B] addSIs [lam_type]) 1);
    17 by (fast_tac (AC_cs addSEs [first_in_B] addSIs [lam_type]) 1);
    18 val ex_choice_fun = result();
    18 val ex_choice_fun = result();