comparison generic-filter.agda @ 394:65491783aa57

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 26 Jul 2020 21:39:27 +0900
parents 43b0a6ca7602
children 77c6123f49ee
comparison
equal deleted inserted replaced
393:43b0a6ca7602 394:65491783aa57
84 84
85 HODω2 : HOD 85 HODω2 : HOD
86 HODω2 = record { od = record { def = λ x → Hω2r x } ; odmax = next o∅ ; <odmax = odmax0 } where 86 HODω2 = record { od = record { def = λ x → Hω2r x } ; odmax = next o∅ ; <odmax = odmax0 } where
87 P : (i j : Nat) (x : Ordinal ) → HOD 87 P : (i j : Nat) (x : Ordinal ) → HOD
88 P i j x = ((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j)) , ord→od x 88 P i j x = ((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j)) , ord→od x
89 nat0 : (i : Nat) → od→ord (nat→ω i) o< next o∅ 89 nat1 : (i : Nat) (x : Ordinal) → od→ord (nat→ω i) o< next x
90 nat0 i = <odmax infinite (ω∋nat→ω {i}) 90 nat1 i x = next< nexto∅ ( <odmax infinite (ω∋nat→ω {i}))
91 lemma3 : (i j : Nat) → od→ord ((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j)) o< next o∅
92 lemma3 i j = pair-<xy (pair-<xy (nat0 i) (nat0 i) ) (pair-<xy (nat0 i) (nat0 j) )
93 lemma1 : (i j : Nat) (x : Ordinal ) → osuc (od→ord (P i j x)) o< next x 91 lemma1 : (i j : Nat) (x : Ordinal ) → osuc (od→ord (P i j x)) o< next x
94 lemma1 i j x = osuc<nx ( next< lemma2 ho< ) where 92 lemma1 i j x = osuc<nx (pair-<xy (pair-<xy (pair-<xy (nat1 i x) (nat1 i x) ) (pair-<xy (nat1 i x) (nat1 j x) ) )
95 lemma2 : odmax (((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j)) , ord→od x) o< next x 93 (subst (λ k → k o< next x) (sym diso) x<nx ))
96 lemma2 with trio< (od→ord ((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j))) (od→ord (ord→od x))
97 | inspect (omax (od→ord ((nat→ω i , nat→ω i) , (nat→ω i , nat→ω j)))) (od→ord (ord→od x))
98 lemma2 | tri< a ¬b ¬c | _ = osuc<nx (subst (λ k → k o< next x ) (sym diso) x<nx )
99 lemma2 | tri≈ ¬a b ¬c | record { eq = eq1 } = subst₂ (λ j k → j o< next k ) (trans (omax≡ _ _ b ) eq1 ) diso (osuc<nx x<nx)
100 lemma2 | tri> ¬a ¬b c | record { eq = eq1 } = osuc<nx ( next< nexto∅ (lemma3 i j))
101 lemma : (i j : Nat) (x : Ordinal ) → od→ord (Union (P i j x)) o< next x 94 lemma : (i j : Nat) (x : Ordinal ) → od→ord (Union (P i j x)) o< next x
102 lemma i j x = next< (lemma1 i j x ) ho< 95 lemma i j x = next< (lemma1 i j x ) ho<
103 odmax0 : {y : Ordinal} → Hω2r y → y o< next o∅ 96 odmax0 : {y : Ordinal} → Hω2r y → y o< next o∅
104 odmax0 {y} r with hω2 r 97 odmax0 {y} r with hω2 r
105 ... | hφ = x<nx 98 ... | hφ = x<nx
122 lemma record { count = (Suc i) ; hω2 = (h0 hω3) } = just i0 ∷ lemma record { count = i ; hω2 = hω3 } 115 lemma record { count = (Suc i) ; hω2 = (h0 hω3) } = just i0 ∷ lemma record { count = i ; hω2 = hω3 }
123 lemma record { count = (Suc i) ; hω2 = (h1 hω3) } = just i1 ∷ lemma record { count = i ; hω2 = hω3 } 116 lemma record { count = (Suc i) ; hω2 = (h1 hω3) } = just i1 ∷ lemma record { count = i ; hω2 = hω3 }
124 lemma record { count = (Suc i) ; hω2 = (he hω3) } = nothing ∷ lemma record { count = i ; hω2 = hω3 } 117 lemma record { count = (Suc i) ; hω2 = (he hω3) } = nothing ∷ lemma record { count = i ; hω2 = hω3 }
125 118
126 ω→2 : HOD 119 ω→2 : HOD
127 ω→2 = Replace (Power infinite) (λ p → Replace infinite (λ x → < x , repl p x > )) where 120 ω→2 = Power infinite
128 repl : HOD → HOD → HOD
129 repl p x with ODC.∋-p O p x
130 ... | yes _ = nat→ω 1
131 ... | no _ = nat→ω 0
132 121
133 ω→2f : (x : HOD) → ω→2 ∋ x → Nat → Two 122 ω→2f : (x : HOD) → ω→2 ∋ x → Nat → Two
134 ω→2f x = {!!} 123 ω→2f x lt n with ODC.∋-p O x (nat→ω n)
124 ω→2f x lt n | yes p = i1
125 ω→2f x lt n | no ¬p = i0
135 126
136 ↑n : (f n : HOD) → ((ω→2 ∋ f ) ∧ (infinite ∋ n)) → HOD 127 ↑n : (f n : HOD) → ((ω→2 ∋ f ) ∧ (infinite ∋ n)) → HOD
137 ↑n f n lt = 3→Hω2 ( ω→2f f (proj1 lt) 3↑ (ω→nat n (proj2 lt) )) 128 ↑n f n lt = 3→Hω2 ( ω→2f f (proj1 lt) 3↑ (ω→nat n (proj2 lt) ))
138
139 129
140 record CountableOrdinal : Set (suc (suc n)) where 130 record CountableOrdinal : Set (suc (suc n)) where
141 field 131 field
142 ctl→ : Nat → Ordinal 132 ctl→ : Nat → Ordinal
143 ctl← : Ordinal → Nat 133 ctl← : Ordinal → Nat