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