1175
|
1 {-# OPTIONS --allow-unsolved-metas #-}
|
|
2
|
431
|
3 open import Level
|
|
4 open import Ordinals
|
|
5 module cardinal {n : Level } (O : Ordinals {n}) where
|
|
6
|
|
7 open import logic
|
1095
|
8 -- import OD
|
|
9 import OD hiding ( _⊆_ )
|
|
10
|
431
|
11 import ODC
|
1095
|
12 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
|
431
|
13 open import Relation.Binary.PropositionalEquality
|
1095
|
14 open import Data.Nat.Properties
|
431
|
15 open import Data.Empty
|
|
16 open import Relation.Nullary
|
|
17 open import Relation.Binary
|
|
18 open import Relation.Binary.Core
|
|
19
|
|
20 open inOrdinal O
|
|
21 open OD O
|
|
22 open OD.OD
|
|
23 open ODAxiom odAxiom
|
1218
|
24 open import ZProduct O
|
431
|
25
|
|
26 import OrdUtil
|
|
27 import ODUtil
|
|
28 open Ordinals.Ordinals O
|
|
29 open Ordinals.IsOrdinals isOrdinal
|
1300
|
30 -- open Ordinals.IsNext isNext
|
431
|
31 open OrdUtil O
|
|
32 open ODUtil O
|
|
33
|
1095
|
34 _⊆_ : ( A B : HOD ) → Set n
|
|
35 _⊆_ A B = {x : Ordinal } → odef A x → odef B x
|
|
36
|
431
|
37
|
|
38 open _∧_
|
|
39 open _∨_
|
|
40 open Bool
|
|
41 open _==_
|
|
42
|
|
43 open HOD
|
|
44
|
1124
|
45 record OrdBijection (A B : Ordinal ) : Set n where
|
431
|
46 field
|
|
47 fun← : (x : Ordinal ) → odef (* A) x → Ordinal
|
|
48 fun→ : (x : Ordinal ) → odef (* B) x → Ordinal
|
|
49 funB : (x : Ordinal ) → ( lt : odef (* A) x ) → odef (* B) ( fun← x lt )
|
|
50 funA : (x : Ordinal ) → ( lt : odef (* B) x ) → odef (* A) ( fun→ x lt )
|
|
51 fiso← : (x : Ordinal ) → ( lt : odef (* B) x ) → fun← ( fun→ x lt ) ( funA x lt ) ≡ x
|
|
52 fiso→ : (x : Ordinal ) → ( lt : odef (* A) x ) → fun→ ( fun← x lt ) ( funB x lt ) ≡ x
|
1095
|
53
|
1124
|
54 ordbij-refl : { a b : Ordinal } → a ≡ b → OrdBijection a b
|
|
55 ordbij-refl {a} refl = record {
|
|
56 fun← = λ x _ → x
|
|
57 ; fun→ = λ x _ → x
|
|
58 ; funB = λ x lt → lt
|
|
59 ; funA = λ x lt → lt
|
|
60 ; fiso← = λ x lt → refl
|
|
61 ; fiso→ = λ x lt → refl
|
|
62 }
|
|
63
|
1095
|
64 open Injection
|
1124
|
65 open OrdBijection
|
1095
|
66
|
|
67 record IsImage (a b : Ordinal) (iab : Injection a b ) (x : Ordinal ) : Set n where
|
|
68 field
|
|
69 ax : odef (* a) x
|
|
70 bx : odef (* b) (i→ iab _ ax)
|
|
71
|
|
72 Image : { a b : Ordinal } → Injection a b → HOD
|
|
73 Image {a} {b} iab = record { od = record { def = λ x → IsImage a b iab x } ; odmax = a ; <odmax = λ lt → ? }
|
|
74
|
|
75 image=a : ?
|
|
76 image=a = ?
|
431
|
77
|
|
78 _=c=_ : ( A B : HOD ) → Set n
|
1124
|
79 A =c= B = OrdBijection ( & A ) ( & B )
|
431
|
80
|
1095
|
81 c=→≡ : {A B : HOD} → A =c= B → (A ≡ ?) ∧ (B ≡ ?)
|
|
82 c=→≡ = ?
|
|
83
|
|
84 ≡→c= : {A B : HOD} → A ≡ B → A =c= B
|
|
85 ≡→c= = ?
|
|
86
|
1124
|
87 open import BAlgebra O
|
|
88
|
|
89 _-_ : (a b : Ordinal ) → Ordinal
|
|
90 a - b = & ( (* a) \ (* b) )
|
|
91
|
|
92 -→< : (a b : Ordinal ) → (a - b) o≤ a
|
|
93 -→< a b = ?
|
|
94
|
|
95 Bernstein1 : {a b : Ordinal } → a o< b → Injection a b ∧ Injection b a → Injection (b - a) b ∧ Injection b (b - a)
|
|
96 Bernstein1 = ?
|
|
97
|
|
98 Bernstein : {a b : Ordinal } → Injection a b → Injection b a → OrdBijection a b
|
|
99 Bernstein {a} {b} iab iba = be00 where
|
1095
|
100 a⊆b : * a ⊆ * b
|
1124
|
101 a⊆b {x} ax = subst (λ k → odef (* b) k) be01 ( iB iab _ ax ) where
|
|
102 be01 : i→ iab x ax ≡ x
|
|
103 be01 = ?
|
|
104 be02 : x ≡ i→ iba x ?
|
1303
|
105 be02 = inject iab ? ? ax ( iB iba _ ? ) ?
|
1095
|
106 b⊆a : * b ⊆ * a
|
|
107 b⊆a bx = ?
|
1124
|
108 be05 : {a b : Ordinal } → a o< b → Injection a b → Injection b a → ⊥
|
|
109 be05 {a} {b} a<b iab iba = TransFinite0 {λ x → (b : Ordinal) → x o< b → Injection x b → Injection b x → ⊥ }
|
|
110 ind a b a<b iab iba where
|
|
111 ind :(x : Ordinal) →
|
|
112 ((y : Ordinal) → y o< x → (b : Ordinal) → y o< b → Injection y b → Injection b y → ⊥ ) →
|
|
113 (b : Ordinal) → x o< b → Injection x b → Injection b x → ⊥
|
|
114 ind x prev b x<b ixb ibx = ?
|
|
115 be00 : OrdBijection a b
|
|
116 be00 with trio< a b
|
|
117 ... | tri< a ¬b ¬c = ⊥-elim ( be05 a iab iba )
|
|
118 ... | tri≈ ¬a b ¬c = ordbij-refl b
|
|
119 ... | tri> ¬a ¬b c = ⊥-elim ( be05 c iba iab )
|
1095
|
120
|
431
|
121 _c<_ : ( A B : HOD ) → Set n
|
|
122 A c< B = ¬ ( Injection (& A) (& B) )
|
|
123
|
|
124 Card : OD
|
1124
|
125 Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ OrdBijection a x }
|
431
|
126
|
|
127 record Cardinal (a : Ordinal ) : Set (suc n) where
|
|
128 field
|
|
129 card : Ordinal
|
1124
|
130 ciso : OrdBijection a card
|
|
131 cmax : (x : Ordinal) → card o< x → ¬ OrdBijection a x
|
431
|
132
|
1095
|
133 Cardinal∈ : { s : HOD } → { t : Ordinal } → Ord t ∋ s → s c< Ord t
|
431
|
134 Cardinal∈ = {!!}
|
|
135
|
|
136 Cardinal⊆ : { s t : HOD } → s ⊆ t → ( s c< t ) ∨ ( s =c= t )
|
|
137 Cardinal⊆ = {!!}
|
|
138
|
|
139 Cantor1 : { u : HOD } → u c< Power u
|
|
140 Cantor1 = {!!}
|
|
141
|
|
142 Cantor2 : { u : HOD } → ¬ ( u =c= Power u )
|
|
143 Cantor2 = {!!}
|
1095
|
144
|
|
145
|
|
146
|
|
147
|