annotate src/cardinal.agda @ 1390:64b243e501b2

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 26 Jun 2023 09:03:12 +0900
parents 242bba9c82bf
children 250e52f15f43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1174
diff changeset
1 {-# OPTIONS --allow-unsolved-metas #-}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1174
diff changeset
2
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
3 open import Level hiding (suc ; zero )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import Ordinals
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 module cardinal {n : Level } (O : Ordinals {n}) where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import logic
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
8 -- import OD
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
9 import OD hiding ( _⊆_ )
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
10
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 import ODC
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
12 open import Data.Nat
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 ODAxiom odAxiom
1218
362e43a1477c brain damaged fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
24 open import ZProduct O
431
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
1300
47d3cc596d68 remove next
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1284
diff changeset
30 -- open Ordinals.IsNext isNext
431
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
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
45 record OrdBijection (A B : Ordinal ) : Set n where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 fun← : (x : Ordinal ) → odef (* A) x → Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 fun→ : (x : Ordinal ) → odef (* B) x → Ordinal
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 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
50 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
51 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
52 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
53
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
54 ordbij-refl : { a b : Ordinal } → a ≡ b → OrdBijection a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
55 ordbij-refl {a} refl = record {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
56 fun← = λ x _ → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
57 ; fun→ = λ x _ → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
58 ; funB = λ x lt → lt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
59 ; funA = λ x lt → lt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
60 ; fiso← = λ x lt → refl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
61 ; fiso→ = λ x lt → refl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
62 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
63
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
64 open Injection
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
65 open OrdBijection
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
66
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
67 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
68 field
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
69 y : Ordinal
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
70 ay : odef (* a) y
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
71 x=fy : x ≡ i→ iab _ ay
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
72
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
73 Image : { a b : Ordinal } → Injection a b → HOD
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
74 Image {a} {b} iab = record { od = record { def = λ x → IsImage a b iab x } ; odmax = b ; <odmax = im00 } where
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
75 im00 : {x : Ordinal } → IsImage a b iab x → x o< b
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
76 im00 {x} record { y = y ; ay = ay ; x=fy = x=fy } = subst₂ ( λ j k → j o< k) (trans &iso (sym x=fy)) &iso
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
77 (c<→o< (subst ( λ k → odef (* b) k) (sym &iso) (iB iab y ay)) )
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
78
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
79 Image⊆b : { a b : Ordinal } → (iab : Injection a b) → Image iab ⊆ * b
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
80 Image⊆b {a} {b} iab {x} record { y = y ; ay = ay ; x=fy = x=fy } = subst (λ k → odef (* b) k) (sym x=fy) (iB iab y ay)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 _=c=_ : ( A B : HOD ) → Set n
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
83 A =c= B = OrdBijection ( & A ) ( & B )
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
85 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
86 c=→≡ = ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
87
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
88 ≡→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
89 ≡→c= = ?
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
90
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
91 open import BAlgebra O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
92
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
93 _-_ : (a b : Ordinal ) → Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
94 a - b = & ( (* a) \ (* b) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
95
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
96 -→< : (a b : Ordinal ) → (a - b) o≤ a
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
97 -→< a b = subst₂ (λ j k → j o≤ k) &iso &iso ( ⊆→o≤ ( λ {x} a-b → proj1 (subst ( λ k → odef k x) *iso a-b) ) )
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
98
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
99 b-a⊆b : {a b x : Ordinal } → odef (* (b - a)) x → odef (* b) x
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
100 b-a⊆b {a} {b} {x} lt with subst (λ k → odef k x) *iso lt
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
101 ... | ⟪ bx , ¬ax ⟫ = bx
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
102
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
103 open Data.Nat
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
104
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
105 Injection-⊆ : {a b c : Ordinal } → * c ⊆ * a → Injection a b → Injection c b
1389
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
106 Injection-⊆ {a} {b} {c} le f = record { i→ = λ x cx → i→ f x (le cx) ; iB = λ x cx → iB f x (le cx)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
107 ; inject = λ x y ix iy eq → inject f x y (le ix) (le iy) eq }
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
108
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
109 Bernstein1 : {a b : Ordinal } → a o< b → Injection a b ∧ Injection b a → Injection (b - a) b ∧ Injection b (b - a)
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
110 Bernstein1 {a} {b} a<b ⟪ f @ record { i→ = fab ; iB = b∋fab ; inject = fab-inject } , g @ record { i→ = fba ; iB = a∋fba ; inject = fba-inject } ⟫
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
111 = ⟪ record { i→ = f0 ; iB = b∋f0 ; inject = f0-inject } , record { i→ = f1 ; iB = b∋f1 ; inject = f1-inject } ⟫ where
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
112
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
113 gf : Injection a a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
114 gf = record { i→ = λ x ax → fba (fab x ax) (b∋fab x ax) ; iB = λ x ax → a∋fba _ (b∋fab x ax)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
115 ; inject = λ x y ax ay eq → fab-inject _ _ ax ay ( fba-inject _ _ (b∋fab _ ax) (b∋fab _ ay) eq) }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
117 data gfImage : (i : ℕ) (x : Ordinal) → Set n where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
118 a-g : {x : Ordinal} → (ax : odef (* a) x ) → (¬ib : ¬ ( IsImage b a g x )) → gfImage 0 x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
119 next-gf : {x y : Ordinal} → {i : ℕ} → (gfiy : gfImage i y )→ (ix : IsImage a a gf x) → gfImage (suc i) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
120
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
121 a∋gfImage : (i : ℕ) → {x : Ordinal } → gfImage i x → odef (* a) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
122 a∋gfImage 0 {x} (a-g ax ¬ib) = ax
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
123 a∋gfImage (suc i) {x} (next-gf lt record { y = y ; ay = ay ; x=fy = x=fy }) = subst (λ k → odef (* a) k ) (sym x=fy) (a∋fba _ (b∋fab y ay) )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
125 C : ℕ → HOD -- Image {& (C i)} {a} (gf i) does not work
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
126 C i = record { od = record { def = gfImage i } ; odmax = & (* a) ; <odmax = λ lt → odef< (a∋gfImage i lt) }
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
127
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
128 record CN (x : Ordinal) : Set n where
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
129 field
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
130 i : ℕ
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
131 gfix : gfImage i x
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
132
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
133 UC : HOD
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
134 UC = record { od = record { def = λ x → CN x } ; odmax = & (* a) ; <odmax = λ lt → odef< (a∋gfImage (CN.i lt) (CN.gfix lt)) }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
135
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
136 -- UC ⊆ * a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
137 -- f : UC → Image f UC is injection
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
138 -- g : Image f UC → UC is injection
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
139
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
140 UC⊆a : * (& UC) ⊆ * a
1389
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
141 UC⊆a {x} lt = a∋gfImage (CN.i be02) (CN.gfix be02) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
142 be02 : CN x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
143 be02 = subst (λ k → odef k x) *iso lt
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
144
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
145 fU : Injection (& UC) (& (Image {& UC} {b} (Injection-⊆ UC⊆a f) ))
1390
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
146 fU = record { i→ = λ x lt → IsImage.y (be10 x lt) ; iB = λ x lt → be20 (IsImage.y (be10 x lt)) (be21 x lt) ; inject = ? } where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
147 be10 : (x : Ordinal) (lt : odef (* (& UC)) x) → IsImage _ _ (Injection-⊆ UC⊆a f) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
148 be20 : (x : Ordinal) (lt : odef (* (& UC)) x) → odef (* (& (Image (Injection-⊆ UC⊆a f)))) x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
149 be20 x lt = subst ( λ k → odef k x ) (sym *iso) (be10 x lt )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
150 be21 : (x : Ordinal) (lt : odef (* (& UC)) x) → odef (* (& UC)) (IsImage.y (be10 x lt))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
151 be21 = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
152 g⁻¹ : { x : Ordinal} → odef (* b) x → Ordinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
153 g⁻¹ = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
154 a∋g⁻¹ : { x : Ordinal} → (bx : odef (* b) x ) → odef (* a) (g⁻¹ bx )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
155 a∋g⁻¹ = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
156 is-g⁻¹ : { x : Ordinal} → (bx : odef (* b) x ) → x ≡ fab (g⁻¹ bx ) (a∋g⁻¹ bx)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
157 is-g⁻¹ = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
158 be10 x lt = record { y = be14 _ (CN.gfix be02) ; ay = ? ; x=fy = ? } where
1389
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
159 be02 : CN x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
160 be02 = subst (λ k → odef k x) *iso lt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
161 be14 : (i : ℕ) → {x : Ordinal } → gfImage i x → Ordinal
1390
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
162 be05 : (i : ℕ) → {x : Ordinal } → (gfi : gfImage i x) → odef (* a) (be14 i gfi )
1389
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1388
diff changeset
163 be14 0 {x} (a-g ax ¬ib) = x
1390
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
164 be14 (suc i) {x} (next-gf lt _) = fba ( fab (be14 i lt) (be05 i lt) ) ( b∋fab _ (be05 i lt))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
165 be05 0 {x} (a-g ax ¬ib) = ax
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
166 be05 (suc i) {x} (next-gf lt _) = a∋fba ( fab (be14 i lt) (be05 i lt) ) ( b∋fab _ (be05 i lt))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
167 be16 : (i : ℕ) → {x : Ordinal } → (gfi : gfImage i x) → IsImage _ _ ((Injection-⊆ UC⊆a f)) (be14 i gfi)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
168 be16 0 {x} (a-g ax ¬ib) = record { y = g⁻¹ (b∋fab x ax)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
169 ; ay = subst (λ k → odef k ( g⁻¹ (b∋fab x ax))) (sym *iso) record { i = 0 ; gfix = a-g ? ? } ; x=fy = is-g⁻¹ ? }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
170 be16 (suc i) {x} (next-gf ix ix₁) = record { y = ? ; ay = ? ; x=fy = ? }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
171 be11 : IsImage _ _ ((Injection-⊆ UC⊆a f)) (be14 _ (CN.gfix be02))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1389
diff changeset
172 be11 = be16 _ (CN.gfix be02)
1388
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
173
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
174 gU : Injection (& (Image {& UC} {b} (Injection-⊆ UC⊆a f))) (& UC)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1387
diff changeset
175 gU = ?
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
176
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
177 -- Injection (b - a) b
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
178 f0 : (x : Ordinal) → odef (* (b - a)) x → Ordinal
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
179 f0 x lt with subst (λ k → odef k x) *iso lt
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
180 ... | ⟪ bx , ¬ax ⟫ = fab (fba x bx) (a∋fba x bx)
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
181 b∋f0 : (x : Ordinal) (lt : odef (* (b - a)) x) → odef (* b) (f0 x lt)
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
182 b∋f0 x lt with subst (λ k → odef k x) *iso lt
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
183 ... | ⟪ bx , ¬ax ⟫ = b∋fab (fba x bx) (a∋fba x bx)
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
184 f0-inject : (x y : Ordinal) (ltx : odef (* (b - a)) x) (lty : odef (* (b - a)) y) → f0 x ltx ≡ f0 y lty → x ≡ y
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
185 f0-inject x y ltx lty eq = fba-inject _ _ (b-a⊆b ltx) (b-a⊆b lty) ( fab-inject _ _ (a∋fba x (b-a⊆b ltx)) (a∋fba y (b-a⊆b lty)) eq )
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
186
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
187 -- Injection b (b - a)
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
188 f1 : (x : Ordinal) → odef (* b) x → Ordinal
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
189 f1 x lt = ?
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
190 b∋f1 : (x : Ordinal) (lt : odef (* b) x) → odef (* (b - a)) (f1 x lt)
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
191 b∋f1 x lt = ?
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
192 f1-inject : (x y : Ordinal) (ltx : odef (* b) x) (lty : odef (* b) y) → f1 x ltx ≡ f1 y lty → x ≡ y
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
193 f1-inject x y ltx lty eq = ?
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
194
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
195 Bernstein : {a b : Ordinal } → Injection a b → Injection b a → OrdBijection a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
196 Bernstein {a} {b} iab iba = be00 where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
197 be05 : {a b : Ordinal } → a o< b → Injection a b → Injection b a → ⊥
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
198 be05 {a} {b} a<b iab iba = TransFinite0 {λ x → (b : Ordinal) → x o< b → Injection x b → Injection b x → ⊥ }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
199 ind a b a<b iab iba where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
200 ind :(x : Ordinal) →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
201 ((y : Ordinal) → y o< x → (b : Ordinal) → y o< b → Injection y b → Injection b y → ⊥ ) →
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
202 (b : Ordinal) → x o< b → Injection x b → Injection b x → ⊥
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
203 ind x prev b x<b ixb ibx = prev _ be01 _ be02 (proj1 (Bernstein1 x<b ⟪ ixb , ibx ⟫)) (proj2 (Bernstein1 x<b ⟪ ixb , ibx ⟫)) where
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
204 be01 : (b - x) o< x
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
205 be01 = ?
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
206 be02 : (b - x) o< b
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
207 be02 = ?
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
208 be00 : OrdBijection a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
209 be00 with trio< a b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
210 ... | tri< a ¬b ¬c = ⊥-elim ( be05 a iab iba )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
211 ... | tri≈ ¬a b ¬c = ordbij-refl b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
212 ... | tri> ¬a ¬b c = ⊥-elim ( be05 c iba iab )
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
213
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 _c<_ : ( A B : HOD ) → Set n
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 A c< B = ¬ ( Injection (& A) (& B) )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 Card : OD
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
218 Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ OrdBijection a x }
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219
1387
003424a36fed is this agda's bug?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1303
diff changeset
220 record Cardinal (a : Ordinal ) : Set (Level.suc n) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 field
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 card : Ordinal
1124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
223 ciso : OrdBijection a card
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1101
diff changeset
224 cmax : (x : Ordinal) → card o< x → ¬ OrdBijection a x
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
226 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
227 Cardinal∈ = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 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
230 Cardinal⊆ = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 Cantor1 : { u : HOD } → u c< Power u
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 Cantor1 = {!!}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 Cantor2 : { u : HOD } → ¬ ( u =c= Power u )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 Cantor2 = {!!}
1095
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
237
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
238
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
239
08b6aa6870d9 OD clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 431
diff changeset
240