annotate src/cardinal.agda @ 1100:c90eec304cfa

PFOD
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 26 Dec 2022 14:00:57 +0900
parents 08b6aa6870d9
children 7ce2cc622c92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Level
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Ordinals
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 module cardinal {n : Level } (O : Ordinals {n}) where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import zf
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import logic
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
7 -- import OD
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
8 import OD hiding ( _⊆_ )
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
9
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 import ODC
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 import OPair
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
12 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 open import Relation.Binary.PropositionalEquality
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
14 open import Data.Nat.Properties
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 open import Data.Empty
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 open import Relation.Nullary
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 open import Relation.Binary
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 open import Relation.Binary.Core
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 open inOrdinal O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 open OD O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 open OD.OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 open OPair O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 open ODAxiom odAxiom
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 import OrdUtil
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 import ODUtil
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 open Ordinals.Ordinals O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 open Ordinals.IsOrdinals isOrdinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 open Ordinals.IsNext isNext
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 open OrdUtil O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 open ODUtil O
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
34 _⊆_ : ( A B : HOD ) → Set n
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
35 _⊆_ A B = {x : Ordinal } → odef A x → odef B x
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
36
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 open _∧_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 open _∨_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 open Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 open _==_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 open HOD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 -- _⊗_ : (A B : HOD) → HOD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 -- A ⊗ B = Union ( Replace B (λ b → Replace A (λ a → < a , b > ) ))
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 Func : OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 Func = record { def = λ x → def ZFProduct x
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
50 ∧ ( (a b c : Ordinal) → odef (* x) (& < * a , * b >) ∧ odef (* x) (& < * a , * c >) → b ≡ c ) }
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 FuncP : ( A B : HOD ) → HOD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 FuncP A B = record { od = record { def = λ x → odef (ZFP A B) x
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
54 ∧ ( (x : Ordinal ) (p q : odef (ZFP A B ) x ) → pi1 (proj1 p) ≡ pi1 (proj1 q) → pi2 (proj1 p) ≡ pi2 (proj1 q) ) }
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 ; odmax = odmax (ZFP A B) ; <odmax = λ lt → <odmax (ZFP A B) (proj1 lt) }
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 record Injection (A B : Ordinal ) : Set n where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 i→ : (x : Ordinal ) → odef (* A) x → Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 iB : (x : Ordinal ) → ( lt : odef (* A) x ) → odef (* B) ( i→ x lt )
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
61 iiso : (x y : Ordinal ) → ( ltx : odef (* A) x ) ( lty : odef (* A) y ) → i→ x ltx ≡ i→ y lty → x ≡ y
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 record Bijection (A B : Ordinal ) : Set n where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 fun← : (x : Ordinal ) → odef (* A) x → Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 fun→ : (x : Ordinal ) → odef (* B) x → Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 funB : (x : Ordinal ) → ( lt : odef (* A) x ) → odef (* B) ( fun← x lt )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 funA : (x : Ordinal ) → ( lt : odef (* B) x ) → odef (* A) ( fun→ x lt )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 fiso← : (x : Ordinal ) → ( lt : odef (* B) x ) → fun← ( fun→ x lt ) ( funA x lt ) ≡ x
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 fiso→ : (x : Ordinal ) → ( lt : odef (* A) x ) → fun→ ( fun← x lt ) ( funB x lt ) ≡ x
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
71
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
72 open Injection
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
73 open Bijection
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
74
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
75 record IsImage (a b : Ordinal) (iab : Injection a b ) (x : Ordinal ) : Set n where
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
76 field
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
77 ax : odef (* a) x
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
78 bx : odef (* b) (i→ iab _ ax)
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
79
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
80 Image : { a b : Ordinal } → Injection a b → HOD
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
81 Image {a} {b} iab = record { od = record { def = λ x → IsImage a b iab x } ; odmax = a ; <odmax = λ lt → ? }
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
82
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
83 image=a : ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
84 image=a = ?
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 _=c=_ : ( A B : HOD ) → Set n
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 A =c= B = Bijection ( & A ) ( & B )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
89 c=→≡ : {A B : HOD} → A =c= B → (A ≡ ?) ∧ (B ≡ ?)
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
90 c=→≡ = ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
91
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
92 ≡→c= : {A B : HOD} → A ≡ B → A =c= B
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
93 ≡→c= = ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
94
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
95 Bernstein : {a b : Ordinal } → Injection a b → Injection b a → Bijection a b
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
96 Bernstein {a} {b} iab iba = {!!} where
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
97 a⊆b : * a ⊆ * b
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
98 a⊆b ax = subst (λ k → odef (* b) k) ? ( iB iab _ ax )
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
99 b⊆a : * b ⊆ * a
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
100 b⊆a bx = ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
101
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 _c<_ : ( A B : HOD ) → Set n
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 A c< B = ¬ ( Injection (& A) (& B) )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 Card : OD
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ Bijection a x }
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 record Cardinal (a : Ordinal ) : Set (suc n) where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 card : Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 ciso : Bijection a card
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 cmax : (x : Ordinal) → card o< x → ¬ Bijection a x
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
114 Cardinal∈ : { s : HOD } → { t : Ordinal } → Ord t ∋ s → s c< Ord t
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 Cardinal∈ = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 Cardinal⊆ : { s t : HOD } → s ⊆ t → ( s c< t ) ∨ ( s =c= t )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 Cardinal⊆ = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 Cantor1 : { u : HOD } → u c< Power u
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 Cantor1 = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 Cantor2 : { u : HOD } → ¬ ( u =c= Power u )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 Cantor2 = {!!}
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
125
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
126
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
127
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
128