src/ZF/AC/AC_Equiv.thy
changeset 1123 5dfdc1464966
parent 1071 96dfc9977bf5
child 1155 928a16e02f9f
equal deleted inserted replaced
1122:20b708827030 1123:5dfdc1464966
     6 by H. Rubin and J.E. Rubin, 1985.
     6 by H. Rubin and J.E. Rubin, 1985.
     7 
     7 
     8 Axiom AC0 comes from "Axiomatic Set Theory" by P. Suppes, 1972.
     8 Axiom AC0 comes from "Axiomatic Set Theory" by P. Suppes, 1972.
     9 
     9 
    10 Some Isabelle proofs of equivalences of these axioms are formalizations of
    10 Some Isabelle proofs of equivalences of these axioms are formalizations of
    11 proofs presented by Rubin.  The others are based on Rubin's proofs, but
    11 proofs presented by the Rubins.  The others are based on the Rubins' proofs,
    12 slightly changed.
    12 but slightly changed.
    13 *)
    13 *)
    14 
    14 
    15 AC_Equiv = CardinalArith + Univ + Transrec2 + 
    15 AC_Equiv = CardinalArith + Univ + OrdQuant +
    16 
    16 
    17 consts
    17 consts
    18   
    18   
    19 (* Well Ordering Theorems *)
    19 (* Well Ordering Theorems *)
    20   WO1, WO2, WO3, WO5, WO6, WO7, WO8 :: "o"
    20   WO1, WO2, WO3, WO5, WO6, WO7, WO8 :: "o"
    24   AC0, AC1, AC2, AC3, AC4, AC5, AC6, AC7, AC8, AC9,
    24   AC0, AC1, AC2, AC3, AC4, AC5, AC6, AC7, AC8, AC9,
    25   AC11, AC12, AC14, AC15, AC17, AC19 :: "o"
    25   AC11, AC12, AC14, AC15, AC17, AC19 :: "o"
    26   AC10, AC13              :: "i => o"
    26   AC10, AC13              :: "i => o"
    27   AC16                    :: "[i, i] => o"
    27   AC16                    :: "[i, i] => o"
    28   AC18                    :: "prop"       ("AC18")
    28   AC18                    :: "prop"       ("AC18")
    29   
    29 
    30 (* Auxiliary definitions used in theorems *)
    30 (* Auxiliary definitions used in definitions *)
    31   first                   :: "[i, i, i] => o"
       
    32   exists_first            :: "[i, i] => o"
       
    33   pairwise_disjoint       :: "i => o"
    31   pairwise_disjoint       :: "i => o"
    34   sets_of_size_between    :: "[i, i, i] => o"
    32   sets_of_size_between    :: "[i, i, i] => o"
    35 
       
    36   GG                      :: "[i, i, i] => i"
       
    37   GG2                     :: "[i, i, i] => i"
       
    38   HH                      :: "[i, i, i] => i"
       
    39 
       
    40   recfunAC16              :: "[i, i, i, i] => i"
       
    41 
    33 
    42 defs
    34 defs
    43 
    35 
    44 (* Well Ordering Theorems *)
    36 (* Well Ordering Theorems *)
    45 
    37 
    58 \	            & (UN b<a. f`b) = A & (ALL b<a. f`b lepoll m))"
    50 \	            & (UN b<a. f`b) = A & (ALL b<a. f`b lepoll m))"
    59 
    51 
    60   WO7_def "WO7 == ALL A. Finite(A) <-> (ALL R. well_ord(A,R) -->   \
    52   WO7_def "WO7 == ALL A. Finite(A) <-> (ALL R. well_ord(A,R) -->   \
    61 \	            well_ord(A,converse(R)))"
    53 \	            well_ord(A,converse(R)))"
    62 
    54 
    63   WO8_def "WO8 == ALL A. (0~:A --> (EX f. f : (PROD X:A. X))) -->  \
    55   WO8_def "WO8 == ALL A. (EX f. f : (PROD X:A. X)) -->  \
    64 \	            (EX R. well_ord(A,R))"
    56 \	            (EX R. well_ord(A,R))"
    65 
    57 
    66 (* Axioms of Choice *)  
    58 (* Axioms of Choice *)  
    67 
    59 
    68   AC0_def "AC0 == ALL A. EX f. f:(PROD X:Pow(A)-{0}. X)"
    60   AC0_def "AC0 == ALL A. EX f. f:(PROD X:Pow(A)-{0}. X)"
   118   AC18_def "AC18 == (!!X A B. A~=0 & (ALL a:A. B(a) ~= 0) -->   \
   110   AC18_def "AC18 == (!!X A B. A~=0 & (ALL a:A. B(a) ~= 0) -->   \
   119 \                 ((INT a:A. UN b:B(a). X(a,b)) =   \
   111 \                 ((INT a:A. UN b:B(a). X(a,b)) =   \
   120 \                 (UN f: PROD a:A. B(a). INT a:A. X(a, f`a))))"
   112 \                 (UN f: PROD a:A. B(a). INT a:A. X(a, f`a))))"
   121 
   113 
   122   AC19_def "AC19 == ALL A. A~=0 & 0~:A --> ((INT a:A. UN b:a. b) =   \
   114   AC19_def "AC19 == ALL A. A~=0 & 0~:A --> ((INT a:A. UN b:a. b) =   \
   123 \	            (UN f:{f: A->Union(A). ALL B:A. f`B:B}. INT a:A. f`a))"
   115 \	            (UN f:(PROD B:A. B). INT a:A. f`a))"
   124 
   116 
   125 (* Auxiliary definitions used in theorems *)
   117 (* Auxiliary definitions used in the above definitions *)
   126 
       
   127   first_def                "first(u, X, R)   \
       
   128 \			    == u:X & (ALL v:X. v~=u --> <u,v> : R)"
       
   129 
       
   130   exists_first_def         "exists_first(X,R)   \
       
   131 \			    == EX u:X. first(u, X, R)"
       
   132 
   118 
   133   pairwise_disjoint_def    "pairwise_disjoint(A)   \
   119   pairwise_disjoint_def    "pairwise_disjoint(A)   \
   134 \			    == ALL A1:A. ALL A2:A. A1 Int A2 ~= 0 --> A1=A2"
   120 \			    == ALL A1:A. ALL A2:A. A1 Int A2 ~= 0 --> A1=A2"
   135 
   121 
   136   sets_of_size_between_def "sets_of_size_between(A,m,n)   \
   122   sets_of_size_between_def "sets_of_size_between(A,m,n)   \
   137 \			    == ALL B:A. m lepoll B & B lepoll n"
   123 \			    == ALL B:A. m lepoll B & B lepoll n"
   138   
   124   
   139 (* Auxiliary definitions used in proofs *)
       
   140 
       
   141   GG_def  "GG(f,x,a)  == transrec(a, %b r. (lam z:Pow(x).   \
       
   142 \	                 if(z=0, x, f`z))`(x - {r`c. c:b}))"
       
   143 
       
   144   GG2_def "GG2(f,x,a) == transrec(a, %b r. (lam z:Pow(x).   \
       
   145 \	                 if(z=0, {x}, f`z))`(x - Union({r`c. c:b})))"
       
   146 
       
   147   HH_def  "HH(f,x,a)  == transrec(a, %b r. (lam z:Pow(x).   \
       
   148 \	                 if(z=0|f`z~:z, x, f`z))`(x - {r`c. c:b}))"
       
   149 
       
   150   recfunAC16_def
       
   151     "recfunAC16(f,fa,i,a) ==   \
       
   152 \	 transrec2(i, 0,   \
       
   153 \	      %g r. if(EX y:r. fa`g <= y, r,   \
       
   154 \		       r Un {f`(LEAST i. fa`g <= f`i &   \
       
   155 \		       (ALL b<a. (fa`b <= f`i --> (ALL t:r. ~ fa`b <= t))))}))"
       
   156 
       
   157 end
   125 end