comparison ordinal-definable.agda @ 90:38d139b5edac

def ord conversion
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 05 Jun 2019 14:35:32 +0900
parents dccc9e2d1804
children b4742cf4ef97
comparison
equal deleted inserted replaced
89:dccc9e2d1804 90:38d139b5edac
31 ord→od : {n : Level} → Ordinal {n} → OD {n} 31 ord→od : {n : Level} → Ordinal {n} → OD {n}
32 32
33 _∋_ : { n : Level } → ( a x : OD {n} ) → Set n 33 _∋_ : { n : Level } → ( a x : OD {n} ) → Set n
34 _∋_ {n} a x = def a ( od→ord x ) 34 _∋_ {n} a x = def a ( od→ord x )
35 35
36 _c<_ : { n : Level } → ( a x : OD {n} ) → Set n 36 _c<_ : { n : Level } → ( x a : OD {n} ) → Set n
37 x c< a = a ∋ x 37 x c< a = a ∋ x
38 38
39 record _==_ {n : Level} ( a b : OD {n} ) : Set n where 39 record _==_ {n : Level} ( a b : OD {n} ) : Set n where
40 field 40 field
41 eq→ : ∀ { x : Ordinal {n} } → def a x → def b x 41 eq→ : ∀ { x : Ordinal {n} } → def a x → def b x
134 lemma ox ox refl = eq-refl 134 lemma ox ox refl = eq-refl
135 135
136 o≡→== : {n : Level} → { x y : Ordinal {n} } → x ≡ y → ord→od x == ord→od y 136 o≡→== : {n : Level} → { x y : Ordinal {n} } → x ≡ y → ord→od x == ord→od y
137 o≡→== {n} {x} {.x} refl = eq-refl 137 o≡→== {n} {x} {.x} refl = eq-refl
138 138
139
139 =→¬< : {x : Nat } → ¬ ( x < x ) 140 =→¬< : {x : Nat } → ¬ ( x < x )
140 =→¬< {Zero} () 141 =→¬< {Zero} ()
141 =→¬< {Suc x} (s≤s lt) = =→¬< lt 142 =→¬< {Suc x} (s≤s lt) = =→¬< lt
142 143
143 >→¬< : {x y : Nat } → (x < y ) → ¬ ( y < x ) 144 >→¬< : {x y : Nat } → (x < y ) → ¬ ( y < x )
163 ==→o≡ : {n : Level} → { x y : Ordinal {suc n} } → ord→od x == ord→od y → x ≡ y 164 ==→o≡ : {n : Level} → { x y : Ordinal {suc n} } → ord→od x == ord→od y → x ≡ y
164 ==→o≡ {n} {x} {y} eq with trio< {n} x y 165 ==→o≡ {n} {x} {y} eq with trio< {n} x y
165 ==→o≡ {n} {x} {y} eq | tri< a ¬b ¬c = ⊥-elim ( o<→o> eq (o<-subst a (sym ord-iso) (sym ord-iso ))) 166 ==→o≡ {n} {x} {y} eq | tri< a ¬b ¬c = ⊥-elim ( o<→o> eq (o<-subst a (sym ord-iso) (sym ord-iso )))
166 ==→o≡ {n} {x} {y} eq | tri≈ ¬a b ¬c = b 167 ==→o≡ {n} {x} {y} eq | tri≈ ¬a b ¬c = b
167 ==→o≡ {n} {x} {y} eq | tri> ¬a ¬b c = ⊥-elim ( o<→o> (eq-sym eq) (o<-subst c (sym ord-iso) (sym ord-iso ))) 168 ==→o≡ {n} {x} {y} eq | tri> ¬a ¬b c = ⊥-elim ( o<→o> (eq-sym eq) (o<-subst c (sym ord-iso) (sym ord-iso )))
169
170 ≡-def : {n : Level} → { x : Ordinal {suc n} } → x ≡ od→ord (record { def = λ z → z o< x } )
171 ≡-def {n} {x} = ==→o≡ {n} (subst (λ k → ord→od x == k ) (sym oiso) lemma ) where
172 lemma : ord→od x == record { def = λ z → z o< x }
173 eq→ lemma {w} z = subst₂ (λ k j → k o< j ) diso diso t where
174 t : (od→ord ( ord→od w)) o< (od→ord (ord→od x))
175 t = c<→o< {suc n} {ord→od w} {ord→od x} (def-subst {suc n} {_} {_} {ord→od x} {_} z refl (sym diso))
176 eq← lemma {w} z = def-subst {suc n} {_} {_} {ord→od x} {w} ( o<→c< {suc n} {_} {_} z ) refl diso
177
178 od≡-def : {n : Level} → { x : Ordinal {suc n} } → ord→od x ≡ record { def = λ z → z o< x }
179 od≡-def {n} {x} = subst (λ k → ord→od x ≡ k ) oiso (cong ( λ k → ord→od k ) (≡-def {n} {x} ))
168 180
169 ¬x<0 : {n : Level} → { x : Ordinal {suc n} } → ¬ ( x o< o∅ {suc n} ) 181 ¬x<0 : {n : Level} → { x : Ordinal {suc n} } → ¬ ( x o< o∅ {suc n} )
170 ¬x<0 {n} {x} (case1 ()) 182 ¬x<0 {n} {x} (case1 ())
171 ¬x<0 {n} {x} (case2 ()) 183 ¬x<0 {n} {x} (case2 ())
172 184
350 xx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) (omxx (od→ord x)) 362 xx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) (omxx (od→ord x))
351 xxx-union : {x : OD {suc n}} → (x , (x , x)) ≡ record { def = λ z → z o< osuc (osuc (od→ord x))} 363 xxx-union : {x : OD {suc n}} → (x , (x , x)) ≡ record { def = λ z → z o< osuc (osuc (od→ord x))}
352 xxx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) lemma where 364 xxx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) lemma where
353 lemma : {x : OD {suc n}} → omax (od→ord x) (od→ord (x , x)) ≡ osuc (osuc (od→ord x)) 365 lemma : {x : OD {suc n}} → omax (od→ord x) (od→ord (x , x)) ≡ osuc (osuc (od→ord x))
354 lemma {x} = trans ( sym ( omax< (od→ord x) (od→ord (x , x)) {!!} ) ) ( cong ( λ k → osuc k ) {!!} ) 366 lemma {x} = trans ( sym ( omax< (od→ord x) (od→ord (x , x)) {!!} ) ) ( cong ( λ k → osuc k ) {!!} )
367 uxxx-union : {x : OD {suc n}} → Union (x , (x , x)) ≡ record { def = λ z → osuc z o< osuc (osuc (od→ord x)) }
368 uxxx-union {x} = cong ( λ k → record { def = λ z → osuc z o< k } ) lemma where
369 lemma : od→ord (x , (x , x)) ≡ osuc (osuc (od→ord x))
370 lemma = {!!}
355 infinite : OD {suc n} 371 infinite : OD {suc n}
356 infinite = ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) 372 infinite = ord→od ( record { lv = Suc Zero ; ord = Φ 1 } )
357 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) ∋ od∅ {suc n} 373 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) ∋ od∅ {suc n}
358 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅} 374 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅}
359 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅≡od∅ ) 375 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅≡od∅ )