changeset 113:5f97ebaeb89b

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 25 Jun 2019 16:04:31 +0900
parents c42352a7ee07
children 89204edb71fa
files HOD.agda ordinal.agda
diffstat 2 files changed, 31 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/HOD.agda	Tue Jun 25 05:50:22 2019 +0900
+++ b/HOD.agda	Tue Jun 25 16:04:31 2019 +0900
@@ -54,17 +54,16 @@
 od∅ : {n : Level} → HOD {n} 
 od∅ {n} = Ord o∅ 
 
-data SinO {n : Level} : (ox : Ordinal {n}) (x : HOD {n}) → Set (suc n) where
-  o-in-o : {ox : Ordinal {n} } → SinO ox (Ord ox)
-  s-in-o : {ox : Ordinal {n} } → {y x : HOD {n} } → SinO ox y → x == y → SinO ox x
-
 postulate      
   -- HOD can be iso to a subset of Ordinal ( by means of Godel Set )
   od→ord : {n : Level} → HOD {n} → Ordinal {n}
+  ord→od : {n : Level} → Ordinal {n} → HOD {n} 
+  oiso   : {n : Level} {x : HOD {n}}     → ord→od ( od→ord x ) ≡ x
+  diso   : {n : Level} {x : Ordinal {n}} → od→ord ( ord→od x ) ≡ x
   c<→o<  : {n : Level} {x y : HOD {n} }      → def y ( od→ord x ) → od→ord x o< od→ord y
+  ord-Ord :{n : Level} {x : Ordinal {n}} →  x ≡ od→ord (Ord x)   -- necessary?
   -- next assumption causes ∀ x ∋ ∅ . It menas only an ordinal becomes a set
   -- o<→c<  : {n : Level} {x y : Ordinal {n} } → x o< y             → def (ord→od y) x 
-  sino   : {n : Level} {x : HOD {n}}     → SinO ( od→ord x ) x
   -- supermum as Replacement Axiom
   sup-o  : {n : Level } → ( Ordinal {n} → Ordinal {n}) →  Ordinal {n}
   sup-o< : {n : Level } → { ψ : Ordinal {n} →  Ordinal {n}} → ∀ {x : Ordinal {n}} →  ψ x  o<  sup-o ψ 
@@ -73,31 +72,26 @@
   sup-lb : {n : Level } → { ψ : Ordinal {n} →  Ordinal {n}} → {z : Ordinal {n}}  →  z o< sup-o ψ → z o< osuc (ψ (sup-x ψ))
   -- sup-lb : {n : Level } → ( ψ : Ordinal {n} →  Ordinal {n}) → ( ∀ {x : Ordinal {n}} →  ψx  o<  z ) →  z o< osuc ( sup-o ψ ) 
 
-
 _∋_ : { n : Level } → ( a x : HOD {n} ) → Set n
 _∋_ {n} a x  = def a ( od→ord x )
 
 _c<_ : { n : Level } → ( x a : HOD {n} ) → Set n
 x c< a = a ∋ x 
 
-postulate      
-  o<→c<  : {n : Level} {x y : Ordinal {n} } → x o< y  → Ord y ∋ Ord x 
-
-ord→od : {n : Level} → Ordinal {n} → HOD {n} 
-ord→od = ?
-
-oiso   : {n : Level} {x : HOD {n}} → ? ≡ x
-oiso   = ?
-
-diso   : {n : Level} {x : Ordinal {n}} → od→ord ? ≡ x
-diso   = ?
-
 _c≤_ : {n : Level} →  HOD {n} →  HOD {n} → Set (suc n)
 a c≤ b  = (a ≡ b)  ∨ ( b ∋ a )
 
+cseq : {n : Level} →  HOD {n} →  HOD {n}
+cseq x = record { def = λ y → osuc y o< (od→ord x) ; otrans = lemma } where
+   lemma : {ox oy : Ordinal} → osuc ox o< od→ord x → oy o< ox → osuc oy o< od→ord x
+   lemma {ox} {oy} oox<Ox oy<ox  = ordtrans (osucc oy<ox ) oox<Ox 
+
 def-subst : {n : Level } {Z : HOD {n}} {X : Ordinal {n} }{z : HOD {n}} {x : Ordinal {n} }→ def Z X → Z ≡ z  →  X ≡ x  →  def z x
 def-subst df refl refl = df
 
+o<→c<  : {n : Level} {x y : Ordinal {n} } → x o< y → Ord y ∋ Ord x 
+o<→c< {n} {x} {y} lt = subst ( λ k → k o< y ) ord-Ord lt 
+
 sup-od : {n : Level } → ( HOD {n} → HOD {n}) →  HOD {n}
 sup-od ψ = Ord ( sup-o ( λ x → od→ord (ψ (ord→od x ))) )
 
@@ -179,20 +173,11 @@
 o∅≡od∅ {n} with trio< {n} (o∅ {suc n}) (od→ord (od∅ {suc n} ))
 o∅≡od∅ {n} | tri< a ¬b ¬c = ⊥-elim (lemma a) where
     lemma :  o∅ {suc n } o< (od→ord (od∅ {suc n} )) → ⊥
-    lemma lt with def-subst {!!} oiso refl
-    lemma lt | t = {!!}
+    lemma lt with o<→c< lt 
+    lemma lt | t = o<¬≡ refl t
 o∅≡od∅ {n} | tri≈ ¬a b ¬c = trans (cong (λ k → ord→od k ) b ) oiso
 o∅≡od∅ {n} | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
 
-ord-od∅ :  {n : Level} → o∅ {suc n} ≡ od→ord (Ord (o∅ {suc n}))
-ord-od∅ {n} with trio< {n} (o∅ {suc n}) (od→ord (Ord (o∅ {suc n})))
-ord-od∅ {n} | tri< a ¬b ¬c = ⊥-elim (lemma a) where
-    lemma :  o∅ {suc n } o< (od→ord (Ord (o∅ {suc n}))) → ⊥
-    lemma lt with  o<→c< lt
-    lemma lt | t = o<¬≡ refl t
-ord-od∅ {n} | tri≈ ¬a b ¬c = b
-ord-od∅ {n} | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
-
 o<→¬c> : {n : Level} →  { x y : HOD {n} } → (od→ord x ) o< ( od→ord y) →  ¬ (y c< x )
 o<→¬c> {n} {x} {y} olt clt = o<> olt (c<→o< clt ) where
 
@@ -262,14 +247,21 @@
     Replace : HOD {suc n} → (HOD {suc n} → HOD {suc n} ) → HOD {suc n}
     Replace X ψ = sup-od ψ
     Select : (X : HOD {suc n} ) → ((x : HOD {suc n} ) → X ∋ x → Set (suc n) ) → HOD {suc n}
-    Select X ψ = record { def = λ x →  ( (d : def X x ) →  ψ (ord→od x) (subst (λ k → def X k ) (sym diso) d)) ; otrans = lemma }  where
-       lemma : {x y : Ordinal} → ((d : def X x) → ψ (ord→od x) (subst (def X) (sym diso) d)) →
-            y o< x → (d : def X y) → ψ (ord→od y) (subst (def X) (sym diso) d)
-       lemma {x} {y} f y<x d = {!!}
+    Select X ψ = record { def = λ x → (d : def X x ) → f x d ; otrans = ftrans }  where
+       f : (x : Ordinal {suc n}) → (d : def X x ) → Set (suc n) 
+       f x d = ψ (ord→od x)  (subst (λ k → def X k ) (sym diso) d)
+       ftrans : {x y : Ordinal} → ((d : def X x) → f x d) → y o< x → (d : def X y) → f y d
+       ftrans {x} {y} g  = TransFinite {suc n} {λ y1 → (y1<x : y1 o< x)  → (d1 : def X y1)  → f y1 d1} lemma1 lemma2 y where
+          lemma1 :  (lx : Nat) → record { lv = lx ; ord = Φ lx } o< x → (d1 : def X (record { lv = lx ; ord = Φ lx })) → f (record { lv = lx ; ord = Φ lx }) d1
+          lemma1 = {!!}
+          lemma2 : (lx : Nat) (x₁ : OrdinalD lx) → (record { lv = lx ; ord = x₁ } o< x →
+             (d1 : def X (record { lv = lx ; ord = x₁ })) → f (record { lv = lx ; ord = x₁ }) d1) → record { lv = lx ; ord = OSuc lx x₁ } o< x →
+             (d1 : def X (record { lv = lx ; ord = OSuc lx x₁ })) → f (record { lv = lx ; ord = OSuc lx x₁ }) d1
+          lemma2 = {!!}
     _,_ : HOD {suc n} → HOD {suc n} → HOD {suc n}
     x , y = Ord (omax (od→ord x) (od→ord y))
     Union : HOD {suc n} → HOD {suc n}
-    Union U = record { def = λ y → osuc y o< (od→ord U) ; otrans = {!!} }
+    Union U = cseq U 
     -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x →  X ∋ x )
     Power : HOD {suc n} → HOD {suc n}
     Power A = Def A
--- a/ordinal.agda	Tue Jun 25 05:50:22 2019 +0900
+++ b/ordinal.agda	Tue Jun 25 16:04:31 2019 +0900
@@ -97,6 +97,11 @@
 osuc-lveq : {n : Level} { x : Ordinal {n} } → lv x ≡ lv ( osuc x )
 osuc-lveq {n} = refl
 
+osucc : {n : Level} {ox oy : Ordinal {n}} → oy o< ox  → osuc oy o< osuc ox
+osucc {n} {ox} {oy} (case1 x) = case1 x
+osucc {n} {ox} {oy} (case2 x) with d<→lv x
+... | refl = case2 (s< x)
+
 nat-<> : { x y : Nat } → x < y → y < x → ⊥
 nat-<>  (s≤s x<y) (s≤s y<x) = nat-<> x<y y<x