1478
|
1 |
(* Title: ZF/AC/DC.thy
|
1196
|
2 |
ID: $Id$
|
1478
|
3 |
Author: Krzysztof Grabczewski
|
1196
|
4 |
|
|
5 |
Theory file for the proofs concernind the Axiom of Dependent Choice
|
|
6 |
*)
|
|
7 |
|
3892
|
8 |
DC = AC_Equiv + Hartog + Cardinal_aux + DC_lemmas +
|
1196
|
9 |
|
|
10 |
consts
|
|
11 |
|
1401
|
12 |
DC :: i => o
|
|
13 |
DC0 :: o
|
|
14 |
ff :: [i, i, i, i] => i
|
1196
|
15 |
|
|
16 |
rules
|
|
17 |
|
5482
|
18 |
DC_def "DC(a) ==
|
11317
|
19 |
\\<forall>X R. R \\<subseteq> Pow(X)*X &
|
|
20 |
(\\<forall>Y \\<in> Pow(X). Y lesspoll a --> (\\<exists>x \\<in> X. <Y,x> \\<in> R))
|
|
21 |
--> (\\<exists>f \\<in> a->X. \\<forall>b<a. <f``b,f`b> \\<in> R)"
|
1196
|
22 |
|
11317
|
23 |
DC0_def "DC0 == \\<forall>A B R. R \\<subseteq> A*B & R\\<noteq>0 & range(R) \\<subseteq> domain(R)
|
|
24 |
--> (\\<exists>f \\<in> nat->domain(R). \\<forall>n \\<in> nat. <f`n,f`succ(n)>:R)"
|
5482
|
25 |
|
|
26 |
ff_def "ff(b, X, Q, R) ==
|
11317
|
27 |
transrec(b, %c r. THE x. first(x, {x \\<in> X. <r``c, x> \\<in> R}, Q))"
|
5482
|
28 |
|
|
29 |
|
|
30 |
locale DC0_imp =
|
|
31 |
fixes
|
|
32 |
XX :: i
|
|
33 |
RR :: i
|
|
34 |
X :: i
|
|
35 |
R :: i
|
|
36 |
|
|
37 |
assumes
|
11317
|
38 |
all_ex "\\<forall>Y \\<in> Pow(X). Y lesspoll nat --> (\\<exists>x \\<in> X. <Y, x> \\<in> R)"
|
5482
|
39 |
|
|
40 |
defines
|
11317
|
41 |
XX_def "XX == (\\<Union>n \\<in> nat. {f \\<in> n->X. \\<forall>k \\<in> n. <f``k, f`k> \\<in> R})"
|
5482
|
42 |
RR_def "RR == {<z1,z2>:XX*XX. domain(z2)=succ(domain(z1))
|
|
43 |
& restrict(z2, domain(z1)) = z1}"
|
|
44 |
|
1196
|
45 |
|
5482
|
46 |
locale imp_DC0 =
|
|
47 |
fixes
|
|
48 |
XX :: i
|
|
49 |
RR :: i
|
|
50 |
x :: i
|
|
51 |
R :: i
|
|
52 |
f :: i
|
|
53 |
allRR :: o
|
|
54 |
|
|
55 |
defines
|
11317
|
56 |
XX_def "XX == (\\<Union>n \\<in> nat.
|
|
57 |
{f \\<in> succ(n)->domain(R). \\<forall>k \\<in> n. <f`k, f`succ(k)> \\<in> R})"
|
5482
|
58 |
RR_def
|
|
59 |
"RR == {<z1,z2>:Fin(XX)*XX.
|
11317
|
60 |
(domain(z2)=succ(\\<Union>f \\<in> z1. domain(f))
|
|
61 |
& (\\<forall>f \\<in> z1. restrict(z2, domain(f)) = f))
|
|
62 |
| (~ (\\<exists>g \\<in> XX. domain(g)=succ(\\<Union>f \\<in> z1. domain(f))
|
|
63 |
& (\\<forall>f \\<in> z1. restrict(g, domain(f)) = f)) & z2={<0,x>})}"
|
5482
|
64 |
allRR_def
|
11317
|
65 |
"allRR == \\<forall>b<nat.
|
|
66 |
<f``b, f`b> \\<in>
|
|
67 |
{<z1,z2>:Fin(XX)*XX. (domain(z2)=succ(\\<Union>f \\<in> z1. domain(f))
|
|
68 |
& (\\<Union>f \\<in> z1. domain(f)) = b
|
|
69 |
& (\\<forall>f \\<in> z1. restrict(z2,domain(f)) = f))}"
|
1196
|
70 |
end
|