diff ordinal-definable.agda @ 44:fcac01485f32

od→lv : {n : Level} → OD {n} → Nat does not worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 25 May 2019 04:12:30 +0900
parents 0d9b9db14361
children 33860eb44e47
line wrap: on
line diff
--- a/ordinal-definable.agda	Fri May 24 22:22:16 2019 +0900
+++ b/ordinal-definable.agda	Sat May 25 04:12:30 2019 +0900
@@ -24,10 +24,16 @@
 open OD
 open import Data.Unit
 
+open Ordinal
+
 postulate      
-  od→ord : {n : Level} → OD {n} → Ordinal {n}
+  od→lv : {n : Level} → OD {n} → Nat 
+  od→d : {n : Level} → (x : OD {n}) → OrdinalD {n} (od→lv x )
   ord→od : {n : Level} → Ordinal {n} → OD {n} 
 
+od→ord : {n : Level} → OD {n} → Ordinal {n}
+od→ord x = record  { lv = od→lv x ; ord = od→d x }
+
 _∋_ : { n : Level } → ( a x : OD {n} ) → Set n
 _∋_ {n} a x  = def a ( od→ord x )
 
@@ -126,8 +132,8 @@
 ominimal {n} record { lv = (Suc lv) ; ord = (Φ .(Suc lv)) } (case2 ())
 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case1 (s≤s x)) = record { mino = record { lv = (Suc lv) ; ord = ord } ; min<x = case2 s<refl}
 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case2 ())
-ominimal {n} record { lv = (Suc lv) ; ord = (ℵ .lv) } (case1 (s≤s z≤n)) = record { mino = record { lv = Suc lv ; ord = Φ (Suc lv) } ; min<x = case2 ℵΦ<  }
-ominimal {n} record { lv = (Suc lv) ; ord = (ℵ .lv) } (case2 ())
+ominimal {n} record { lv = (Suc lx) ; ord = (ℵ .lx) } (case1 (s≤s z≤n)) = record { mino = record { lv = Suc lx ; ord = Φ (Suc lx) } ; min<x = case2 ℵΦ<  }
+ominimal {n} record { lv = (Suc lx) ; ord = (ℵ .lx) } (case2 ())
 
 ∅4 : {n : Level} →  ( x : OD {n} )  →  x  ≡ od∅ {n}  → od→ord x ≡ o∅ {n}
 ∅4 {n} x refl =  ∅3 lemma1 where
@@ -156,8 +162,6 @@
 -- ∅10 : {n : Level} → (x : OD {n} ) → ¬ ( ( y : OD {n} ) → Lift (suc n) ( x ∋ y))   →  x ≡ od∅ 
 -- ∅10 {n} x not = ?
 
-open Ordinal
-
 -- ∋-subst : {n : Level} {X Y x y : OD {suc n} } → X ≡ x → Y ≡ y → X ∋ Y →  x ∋ y
 -- ∋-subst refl refl x = x
 
@@ -167,13 +171,21 @@
 ∅7' : {n : Level} → ord→od (o∅ {n}) ≡ od∅ {n}
 ∅7' {n} = cong ( λ k → record { def = k }) ( ∅-base-def ) where
 
+open import Relation.Binary.HeterogeneousEquality using (_≅_;refl)
+
+
+∅7'' : {n : Level} →  ( x : OD {n} )   → od→lv {n} x ≡ Zero → od→d {n} x ≅  Φ {n} Zero →  x  == od∅ {n}
+∅7'' {n} x eq eq1 = {!!}
+
 ∅7 : {n : Level} →  ( x : OD {n} )   → od→ord x ≡ o∅ {n} →  x  == od∅ {n}
 ∅7 {n} x eq = record { eq→ = e1 ; eq← = e2 } where
    e0 : {y : Ordinal {n}} → y o< o∅ {n} → def od∅ y
    e0 {y} (case1 ())
    e0 {y} (case2 ())
    e1 : {y : Ordinal {n}} →  def x y → def od∅ y
-   e1 {y} y<x = e0 ( o<-subst ( c<→o< {n} {x} y<x ) refl {!!} )
+   e1 {y} y<x  with  c<→o< {n} {x} y<x 
+   e1 {y} y<x | case1 lt = {!!}
+   e1 {y} y<x | case2 lt = {!!}
    e2 : {y : Ordinal {n}} → def od∅ y → def x y 
    e2 {y} (lift ())
 
@@ -182,6 +194,7 @@
    lemma : ¬ od→ord x ≡ o∅
    lemma eq = not ( ∅7 x eq )
 
+
 OD→ZF : {n : Level} → ZF {suc n} {n}
 OD→ZF {n}  = record { 
     ZFSet = OD {n}