src/ZF/AC/AC_Equiv.thy
author paulson
Tue, 26 Jun 2001 16:54:39 +0200
changeset 11380 e76366922751
parent 11317 7f9e4c389318
child 12536 e9a729259385
permissions -rw-r--r--
tidying and consolidating files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     1
(*  Title:      ZF/AC/AC_Equiv.thy
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     2
    ID:         $Id$
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     3
    Author:     Krzysztof Grabczewski
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     4
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     5
Axioms AC1 -- AC19 come from "Equivalents of the Axiom of Choice, II"
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     6
by H. Rubin and J.E. Rubin, 1985.
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     7
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     8
Axiom AC0 comes from "Axiomatic Set Theory" by P. Suppes, 1972.
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
     9
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    10
Some Isabelle proofs of equivalences of these axioms are formalizations of
1123
5dfdc1464966 Krzysztof Grabczewski's (nearly) complete AC proofs
lcp
parents: 1071
diff changeset
    11
proofs presented by the Rubins.  The others are based on the Rubins' proofs,
5dfdc1464966 Krzysztof Grabczewski's (nearly) complete AC proofs
lcp
parents: 1071
diff changeset
    12
but slightly changed.
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    13
*)
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    14
8123
a71686059be0 a bit of tidying
paulson
parents: 2469
diff changeset
    15
a71686059be0 a bit of tidying
paulson
parents: 2469
diff changeset
    16
AC_Equiv = CardinalArith + Univ +
a71686059be0 a bit of tidying
paulson
parents: 2469
diff changeset
    17
           (*NOT "Main" because that theory includes AC!!!*)
a71686059be0 a bit of tidying
paulson
parents: 2469
diff changeset
    18
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    19
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    20
consts
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    21
  
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    22
(* Well Ordering Theorems *)
1401
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    23
  WO1, WO2, WO3, WO5, WO6, WO7, WO8 :: o
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    24
  WO4                               :: i => o
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    25
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    26
(* Axioms of Choice *)  
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    27
  AC0, AC1, AC2, AC3, AC4, AC5, AC6, AC7, AC8, AC9,
1401
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    28
  AC11, AC12, AC14, AC15, AC17, AC19 :: o
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    29
  AC10, AC13              :: i => o
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    30
  AC16                    :: [i, i] => o
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    31
  AC18                    :: prop       ("AC18")
1123
5dfdc1464966 Krzysztof Grabczewski's (nearly) complete AC proofs
lcp
parents: 1071
diff changeset
    32
5dfdc1464966 Krzysztof Grabczewski's (nearly) complete AC proofs
lcp
parents: 1071
diff changeset
    33
(* Auxiliary definitions used in definitions *)
1401
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    34
  pairwise_disjoint       :: i => o
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    35
  sets_of_size_between    :: [i, i, i] => o
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    36
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    37
defs
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    38
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    39
(* Well Ordering Theorems *)
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    40
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    41
  WO1_def "WO1 == \\<forall>A. \\<exists>R. well_ord(A,R)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    42
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    43
  WO2_def "WO2 == \\<forall>A. \\<exists>a. Ord(a) & A eqpoll a"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    44
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    45
  WO3_def "WO3 == \\<forall>A. \\<exists>a. Ord(a) & (\\<exists>b. b \\<subseteq> a & A eqpoll b)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    46
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    47
  WO4_def "WO4(m) == \\<forall>A. \\<exists>a f. Ord(a) & domain(f)=a &   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    48
                     (\\<Union>b<a. f`b) = A & (\\<forall>b<a. f`b lepoll m)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    49
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    50
  WO5_def "WO5 == \\<exists>m \\<in> nat. 1 le m & WO4(m)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    51
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    52
  WO6_def "WO6 == \\<forall>A. \\<exists>m \\<in> nat. 1 le m & (\\<exists>a f. Ord(a) & domain(f)=a   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    53
                    & (\\<Union>b<a. f`b) = A & (\\<forall>b<a. f`b lepoll m))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    54
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    55
  WO7_def "WO7 == \\<forall>A. Finite(A) <-> (\\<forall>R. well_ord(A,R) -->   
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    56
                    well_ord(A,converse(R)))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    57
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    58
  WO8_def "WO8 == \\<forall>A. (\\<exists>f. f \\<in> (\\<Pi>X \\<in> A. X)) --> (\\<exists>R. well_ord(A,R))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    59
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    60
(* Axioms of Choice *)  
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    61
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    62
  AC0_def "AC0 == \\<forall>A. \\<exists>f. f \\<in> (\\<Pi>X \\<in> Pow(A)-{0}. X)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    63
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    64
  AC1_def "AC1 == \\<forall>A. 0\\<notin>A --> (\\<exists>f. f \\<in> (\\<Pi>X \\<in> A. X))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    65
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    66
  AC2_def "AC2 == \\<forall>A. 0\\<notin>A & pairwise_disjoint(A)   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    67
                    --> (\\<exists>C. \\<forall>B \\<in> A. \\<exists>y. B Int C = {y})"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    68
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    69
  AC3_def "AC3 == \\<forall>A B. \\<forall>f \\<in> A->B. \\<exists>g. g \\<in> (\\<Pi>x \\<in> {a \\<in> A. f`a\\<noteq>0}. f`x)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    70
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    71
  AC4_def "AC4 == \\<forall>R A B. (R \\<subseteq> A*B --> (\\<exists>f. f \\<in> (\\<Pi>x \\<in> domain(R). R``{x})))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    72
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    73
  AC5_def "AC5 == \\<forall>A B. \\<forall>f \\<in> A->B. \\<exists>g \\<in> range(f)->A.   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    74
                    \\<forall>x \\<in> domain(g). f`(g`x) = x"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    75
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    76
  AC6_def "AC6 == \\<forall>A. 0\\<notin>A --> (\\<Pi>B \\<in> A. B)\\<noteq>0"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    77
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    78
  AC7_def "AC7 == \\<forall>A. 0\\<notin>A & (\\<forall>B1 \\<in> A. \\<forall>B2 \\<in> A. B1 eqpoll B2)   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    79
                    --> (\\<Pi>B \\<in> A. B)\\<noteq>0"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    80
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    81
  AC8_def "AC8 == \\<forall>A. (\\<forall>B \\<in> A. \\<exists>B1 B2. B=<B1,B2> & B1 eqpoll B2)   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    82
                    --> (\\<exists>f. \\<forall>B \\<in> A. f`B \\<in> bij(fst(B),snd(B)))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    83
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    84
  AC9_def "AC9 == \\<forall>A. (\\<forall>B1 \\<in> A. \\<forall>B2 \\<in> A. B1 eqpoll B2) -->   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    85
                    (\\<exists>f. \\<forall>B1 \\<in> A. \\<forall>B2 \\<in> A. f`<B1,B2> \\<in> bij(B1,B2))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    86
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    87
  AC10_def "AC10(n) ==  \\<forall>A. (\\<forall>B \\<in> A. ~Finite(B)) -->   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    88
                    (\\<exists>f. \\<forall>B \\<in> A. (pairwise_disjoint(f`B) &   
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    89
                    sets_of_size_between(f`B, 2, succ(n)) & Union(f`B)=B))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    90
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    91
  AC11_def "AC11 == \\<exists>n \\<in> nat. 1 le n & AC10(n)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    92
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    93
  AC12_def "AC12 == \\<forall>A. (\\<forall>B \\<in> A. ~Finite(B)) -->   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    94
            (\\<exists>n \\<in> nat. 1 le n & (\\<exists>f. \\<forall>B \\<in> A. (pairwise_disjoint(f`B) &   
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    95
            sets_of_size_between(f`B, 2, succ(n)) & Union(f`B)=B)))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    96
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    97
  AC13_def "AC13(m) == \\<forall>A. 0\\<notin>A --> (\\<exists>f. \\<forall>B \\<in> A. f`B\\<noteq>0 &   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
    98
                                          f`B \\<subseteq> B & f`B lepoll m)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    99
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   100
  AC14_def "AC14 == \\<exists>m \\<in> nat. 1 le m & AC13(m)"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   101
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   102
  AC15_def "AC15 == \\<forall>A. 0\\<notin>A --> (\\<exists>m \\<in> nat. 1 le m & (\\<exists>f. \\<forall>B \\<in> A.   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   103
                                      f`B\\<noteq>0 & f`B \\<subseteq> B & f`B lepoll m))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   104
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   105
  AC16_def "AC16(n, k)  == \\<forall>A. ~Finite(A) -->   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   106
            (\\<exists>T. T \\<subseteq> {X \\<in> Pow(A). X eqpoll succ(n)} &   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   107
            (\\<forall>X \\<in> {X \\<in> Pow(A). X eqpoll succ(k)}. \\<exists>! Y. Y \\<in> T & X \\<subseteq> Y))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   108
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   109
  AC17_def "AC17 == \\<forall>A. \\<forall>g \\<in> (Pow(A)-{0} -> A) -> Pow(A)-{0}.   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   110
                    \\<exists>f \\<in> Pow(A)-{0} -> A. f`(g`f) \\<in> g`f"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   111
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   112
  AC18_def "AC18 == (!!X A B. A\\<noteq>0 & (\\<forall>a \\<in> A. B(a) \\<noteq> 0) -->   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   113
                 ((\\<Inter>a \\<in> A. \\<Union>b \\<in> B(a). X(a,b)) =   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   114
                 (\\<Union>f \\<in> \\<Pi>a \\<in> A. B(a). \\<Inter>a \\<in> A. X(a, f`a))))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   115
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   116
  AC19_def "AC19 == \\<forall>A. A\\<noteq>0 & 0\\<notin>A --> ((\\<Inter>a \\<in> A. \\<Union>b \\<in> a. b) =   
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   117
                    (\\<Union>f \\<in> (\\<Pi>B \\<in> A. B). \\<Inter>a \\<in> A. f`a))"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   118
1123
5dfdc1464966 Krzysztof Grabczewski's (nearly) complete AC proofs
lcp
parents: 1071
diff changeset
   119
(* Auxiliary definitions used in the above definitions *)
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   120
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1123
diff changeset
   121
  pairwise_disjoint_def    "pairwise_disjoint(A)   
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   122
                            == \\<forall>A1 \\<in> A. \\<forall>A2 \\<in> A. A1 Int A2 \\<noteq> 0 --> A1=A2"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   123
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1123
diff changeset
   124
  sets_of_size_between_def "sets_of_size_between(A,m,n)   
11317
7f9e4c389318 X-symbols for set theory
paulson
parents: 8123
diff changeset
   125
                            == \\<forall>B \\<in> A. m lepoll B & B lepoll n"
991
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   126
  
547931cbbf08 New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
   127
end