annotate src/README.md @ 1489:0dbbae768c90 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 01 Jul 2024 23:04:17 +0900
parents 40345abc0949
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1097
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 Constructing ZF Set Theory in Agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 ============
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 Shinji KONO (kono@ie.u-ryukyu.ac.jp), University of the Ryukyus
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 ## ZF in Agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 zf.agda axiom of ZF
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 zfc.agda axiom of choice
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 Ordinals.agda axiom of Ordinals
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 ordinal.agda countable model of Ordinals
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 OD.agda model of ZF based on Ordinal Definable Set with assumptions
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 ODC.agda Law of exclude middle from axiom of choice assumptions
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 LEMC.agda model of choice with assumption of the Law of exclude middle
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 OPair.agda ordered pair on OD
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 zorn.agda Zorn Lemma
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 BAlgbra.agda Boolean algebra on OD (not yet done)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 filter.agda Filter on OD (not yet done)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 cardinal.agda Caedinal number on OD (not yet done)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 logic.agda some basics on logic
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 nat.agda some basics on Nat
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 NSet.agda primitve set thoery examples
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 ODUtil.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 OrdUtil.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 PFOD.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 Topology.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 VL.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 generic-filter.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 partfunc.agda
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 ## Ordinal Definable Set
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 It is a predicate has an Ordinal argument.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 In Agda, OD is defined as follows.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 record OD : Set (suc n ) where
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 field
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 def : (x : Ordinal ) → Set n
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 This is not a ZF Set, because it can contain entire Ordinals.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 ## HOD : Hereditarily Ordinal Definable
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 What we need is a bounded OD, the containment is limited by an ordinal.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 record HOD : Set (suc n) where
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 field
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 od : OD
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 odmax : Ordinal
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <odmax : {y : Ordinal} → def od y → y o< odmax
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 In classical Set Theory, HOD stands for Hereditarily Ordinal Definable, which means
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 HOD = { x | TC x ⊆ OD }
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 TC x is all transitive closure of x, that is elements of x and following all elements of them are all OD. But
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 what is x? In this case, x is an Set which we don't have yet. In our case, HOD is a bounded OD.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 ## 1 to 1 mapping between an HOD and an Ordinal
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 HOD is a predicate on Ordinals and the solution is bounded by some ordinal. If we have a mapping
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 od→ord : HOD → Ordinal
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 ord→od : Ordinal → HOD
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 oiso : {x : HOD } → ord→od ( od→ord x ) ≡ x
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 diso : {x : Ordinal } → od→ord ( ord→od x ) ≡ x
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 we can check an HOD is an element of the OD using def.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 A ∋ x can be define as follows.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 _∋_ : ( A x : HOD ) → Set n
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 _∋_ A x = def (od A) ( od→ord x )
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 In ψ : Ordinal → Set, if A is a record { def = λ x → ψ x } , then
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 A x = def A ( od→ord x ) = ψ (od→ord x)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 They say the existing of the mappings can be proved in Classical Set Theory, but we
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 simply assumes these non constructively.
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 ## we need some more axiom to achive ZF Set Theory
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 ```
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 record ODAxiom : Set (suc n) where
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 field
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 -- HOD is isomorphic to Ordinal (by means of Goedel number)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 & : HOD → Ordinal
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 * : Ordinal → HOD
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 c<→o< : {x y : HOD } → def (od y) ( & x ) → & x o< & y
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 ⊆→o≤ : {y z : HOD } → ({x : Ordinal} → def (od y) x → def (od z) x ) → & y o< osuc (& z)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 *iso : {x : HOD } → * ( & x ) ≡ x
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 &iso : {x : Ordinal } → & ( * x ) ≡ x
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 ==→o≡ : {x y : HOD } → (od x == od y) → x ≡ y
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 sup-o : (A : HOD) → ( ( x : Ordinal ) → def (od A) x → Ordinal ) → Ordinal -- required in Replace
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 sup-o≤ : (A : HOD) → { ψ : ( x : Ordinal ) → def (od A) x → Ordinal } → ∀ {x : Ordinal } → (lt : def (od A) x ) → ψ x lt o≤ sup-o A ψ
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 -- possible order restriction (required in the axiom of infinite )
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 ho< : {x : HOD} → & x o< next (odmax x)
40345abc0949 add README
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 ```