changeset 83:e013ccf00567

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 04 Jun 2019 12:28:43 +0900
parents 57814596a986
children 4b2aff372b7c
files ordinal-definable.agda
diffstat 1 files changed, 23 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ordinal-definable.agda	Tue Jun 04 09:22:45 2019 +0900
+++ b/ordinal-definable.agda	Tue Jun 04 12:28:43 2019 +0900
@@ -343,14 +343,31 @@
          extensionality : {A B : OD {suc n}} → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B
          eq→ (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {A} {B} (sym diso) (proj1 (eq (ord→od x))) d  
          eq← (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {B} {A} (sym diso) (proj2 (eq (ord→od x))) d  
-         pair-is-u : (x y : OD) → Union (x , y) ==  (x , y )
-         eq→ (pair-is-u x y) {w} z = def-subst (o<→c< ( ordtrans <-osuc z )) oiso diso
-         eq← (pair-is-u x y) {w} (case1 refl) =
-             def-subst (union→ (x , y) (ord→od w) (ord→od (osuc w)) ( record { proj1 = {!!} ; proj2 = {!!} } )) refl diso
-         eq← (pair-is-u x y) {w} (case2 refl) = {!!}
+         pair-or : {x y : OD {suc n} } → (x , x) ∋ y → (y == x ) ∨ (x ∋ y )
+         pair-or {x} {y} lt with tri-c< x y
+         pair-or {x} {y} lt | tri< a ¬b ¬c = {!!}   --     x < y < ( x ,  x )
+         pair-or {x} {y} lt | tri≈ ¬a b ¬c = case1 (eq-sym b)
+         pair-or {x} {y} lt | tri> ¬a ¬b c = case2 c
+         pair-osuc : (x : OD) →  od→ord (x , x) ≡ osuc (od→ord x)
+         pair-osuc x with trio< (od→ord (x , x)) (osuc (od→ord x))
+         pair-osuc x | tri< a ¬b ¬c = ⊥-elim ( osuc-<  a (c<→o< (proj1 (pair x x )) ))
+         pair-osuc x | tri≈ ¬a b ¬c = b
+         pair-osuc x | tri> ¬a ¬b c with pair-or (def-subst (o<→c<  c ) oiso refl ) --  (x , x)  ∋ ord→od (osuc (od→ord x) )
+         pair-osuc x | tri> ¬a ¬b c | case1 eq = ⊥-elim ( o<→¬== (def-subst {suc n} (o<→c<  c ) refl diso ) eq )
+         pair-osuc x | tri> ¬a ¬b c | case2 lt = ⊥-elim (c<> c lt ) where
+             lemma2 : (z : Ordinal {suc n} ) → lv (od→ord (ord→od z , ord→od z) ) ≡ lv z
+             lemma2 z = {!!}
          next : (x : OD) → Union (x , (x , x)) == ord→od (osuc (od→ord x))
          eq→ (next x ) {y} z = {!!}
-         eq← (next x ) {y} z = {!!}
+         eq← (next x ) {y} z = def-subst {suc n} {_} {_} {Union (x , (x , x))} {_}
+                  (union→ (x , (x , x)) (ord→od y) (ord→od (osuc y)) (record { proj1 = lemma1 ; proj2 = lemma2 } )) refl diso where
+             lemma1 : (x , (x , x)) ∋ ord→od (osuc y)    -- z : def (ord→od (osuc (od→ord x))) y
+             lemma1 with tri-c< (x , x) (ord→od (osuc (od→ord x)))
+             lemma1 | tri< a ¬b ¬c = {!!}
+             lemma1 | tri≈ ¬a b ¬c = {!!}
+             lemma1 | tri> ¬a ¬b c = {!!}
+             lemma2 : ord→od (osuc y) ∋ ord→od y
+             lemma2 = o<→c< <-osuc
          next' : (x : OD) →  ord→od ( od→ord ( Union (x , (x , x)))) == ord→od (osuc (od→ord x))
          next' x = subst ( λ k → k == ord→od (osuc (od→ord x))) (sym oiso) (next x)
          infinite : OD {suc n}