changeset 34:c9ad0d97ce41

fix oridinal
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 22 May 2019 11:52:49 +0900
parents 2b853472cb24
children 88b77cecaeba
files ordinal-definable.agda ordinal.agda zf.agda
diffstat 3 files changed, 33 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/ordinal-definable.agda	Tue May 21 18:17:24 2019 +0900
+++ b/ordinal-definable.agda	Wed May 22 11:52:49 2019 +0900
@@ -15,30 +15,8 @@
 open import Relation.Binary
 open import Relation.Binary.Core
 
-
--- X' = { x ∈ X |  ψ  x } ∪ X , Mα = ( ∪ (β < α) Mβ ) '
-
 -- Ordinal Definable Set
 
--- o∋  : {n : Level} → {A : Ordinal {n}} → (OrdinalDefinable {n} A ) → (x : Ordinal {n} ) → (x o< A) → Set n
--- o∋ a x x<A  = def a x x<A
-
--- TC u : Transitive Closure of OD u
---
---    all elements of u or elements of elements of u, etc...
---
--- TC Zero = u
--- TC (suc n) = ∪ (TC n)
---
--- TC u = TC ω u = ∪ ( TC n ) n ∈ ω
--- 
---     u ∪ ( ∪ u ) ∪ ( ∪ (∪ u ) ) ....
---
--- Heritic Ordinal Definable
---
---    ( HOD = {x | TC x ⊆ OD } ) ⊆ OD     x ∈ OD here
--- 
-
 record OD {n : Level}  : Set (suc n) where
   field
     def : (x : Ordinal {n} ) → Set n
@@ -95,10 +73,11 @@
    ... | t with t (case2 Φ< )
    c3 lx (Φ .lx) d not | t | ()
    c3 lx (OSuc .lx x₁) d not with not (  record { lv = lx ; ord = OSuc lx x₁ } )
-   ... | t with t (case2 (s< {!!} ) )
---   x d< OSuc lx x is bad on ℵ case
+   ... | t with t (case2 (s< s<refl ) )
    c3 lx (OSuc .lx x₁) d not | t | ()
-   c3 .(Suc lv) (ℵ lv) not = {!!}
+   c3 (Suc lx) (ℵ lx) d not with not ( record { lv = Suc lx ; ord = OSuc (Suc lx) (Φ (Suc lx)) }  )
+   ... | t with t (case2 (s< (ℵΦ< {_} {_} {Φ (Suc lx)}))) 
+   c3 .(Suc lx) (ℵ lx) d not | t | ()
 
 ∅2 : {n : Level} →  od→ord ( od∅ {n} ) ≡ o∅ {n}
 ∅2 {n}  = {!!}
--- a/ordinal.agda	Tue May 21 18:17:24 2019 +0900
+++ b/ordinal.agda	Wed May 22 11:52:49 2019 +0900
@@ -1,3 +1,4 @@
+{-# OPTIONS --allow-unsolved-metas #-}
 open import Level
 module ordinal where
 
@@ -17,11 +18,16 @@
      lv : Nat
      ord : OrdinalD {n} lv
 
+data ¬ℵ  {n : Level} {lx : Nat } : ( x : OrdinalD {n} lx ) → Set where
+    ¬ℵΦ : ¬ℵ (Φ lx) 
+    ¬ℵs : {x : OrdinalD {n} lx } → ¬ℵ x → ¬ℵ (OSuc lx x) 
+
 data _d<_ {n : Level} :   {lx ly : Nat} → OrdinalD {n} lx  →  OrdinalD {n} ly  → Set n where
    Φ<  : {lx : Nat} → {x : OrdinalD {n} lx}  →  Φ lx d< OSuc lx x
    s<  : {lx : Nat} → {x y : OrdinalD {n} lx}  →  x d< y  → OSuc  lx x d< OSuc  lx y
    ℵΦ< : {lx : Nat} → {x : OrdinalD {n} (Suc lx) } →  Φ  (Suc lx) d< (ℵ lx) 
-   ℵ<  : {lx : Nat} → {x : OrdinalD {n} (Suc lx) } →  OSuc  (Suc lx) x d< (ℵ lx) 
+   ℵ<  : {lx : Nat} → {x : OrdinalD {n} (Suc lx) } → ¬ℵ x  →  OSuc  (Suc lx) x d< (ℵ lx) 
+   ℵs< : {lx : Nat} → (ℵ lx) d< OSuc (Suc lx) (ℵ lx)
 
 open Ordinal
 
@@ -39,13 +45,19 @@
 o∅ : {n : Level} → Ordinal {n}
 o∅  = record { lv = Zero ; ord = Φ Zero }
 
+s<refl : {n : Level } {lx : Nat } { x : OrdinalD {n} lx } → x d< OSuc lx x
+s<refl {n} {lv} {Φ lv}  = Φ<
+s<refl {n} {lv} {OSuc lv x}  = s< s<refl 
+s<refl {n} {Suc lv} {ℵ lv} = ℵs<
+
 
 ≡→¬d< : {n : Level} →  {lv : Nat} → {x  : OrdinalD {n}  lv }  → x d< x → ⊥
 ≡→¬d<  {n} {lx} {OSuc lx y} (s< t) = ≡→¬d< t
 
 trio<> : {n : Level} →  {lx : Nat} {x  : OrdinalD {n} lx } { y : OrdinalD  lx }  →  y d< x → x d< y → ⊥
-trio<>  {n} {lx} {.(OSuc lx _)} {.(OSuc lx _)} (s< s) (s< t) = 
-    trio<> s t
+trio<>  {n} {lx} {.(OSuc lx _)} {.(OSuc lx _)} (s< s) (s< t) = trio<> s t
+trio<> {_} {.(Suc _)} {.(OSuc (Suc _) (ℵ _))} {.(ℵ _)} ℵs< (ℵ< {_} {.(ℵ _)} ())
+trio<> {_} {.(Suc _)} {.(ℵ _)} {.(OSuc (Suc _) (ℵ _))} (ℵ< ()) ℵs<
 
 trio<≡ : {n : Level} →  {lx : Nat} {x  : OrdinalD {n} lx } { y : OrdinalD  lx }  → x ≡ y  → x d< y → ⊥
 trio<≡ refl = ≡→¬d<
@@ -62,9 +74,9 @@
 triOrdd  {_} {lv} (Φ lv) (OSuc lv y) = tri< Φ< (λ ()) ( λ lt → trio<> lt Φ< )
 triOrdd  {_} {.(Suc lv)} (Φ (Suc lv)) (ℵ lv) = tri<  (ℵΦ<  {_} {lv} {Φ (Suc lv)} ) (λ ()) ( λ lt → trio<> lt ((ℵΦ< {_} {lv} {Φ (Suc lv)} )) )
 triOrdd  {_} {Suc lv} (ℵ lv) (Φ (Suc lv)) = tri> ( λ lt → trio<> lt (ℵΦ< {_} {lv} {Φ (Suc lv)} ) ) (λ ()) (ℵΦ<  {_} {lv} {Φ (Suc lv)} )
-triOrdd  {_} {Suc lv} (ℵ lv) (OSuc (Suc lv) y) = tri> ( λ lt → trio<> lt (ℵ< {_} {lv} {y} )  ) (λ ()) (ℵ< {_} {lv} {y} )
+triOrdd  {_} {Suc lv} (ℵ lv) (OSuc (Suc lv) y) = tri> ( λ lt → trio<> lt (ℵ< {_} {lv} {y} {!!})  ) (λ ()) (ℵ< {_} {lv} {y} {!!})
 triOrdd  {_} {lv} (OSuc lv x) (Φ lv) = tri> (λ lt → trio<> lt Φ<) (λ ()) Φ<
-triOrdd  {_} {.(Suc lv)} (OSuc (Suc lv) x) (ℵ lv) = tri< ℵ< (λ ()) (λ lt → trio<> lt ℵ< )
+triOrdd  {_} {.(Suc lv)} (OSuc (Suc lv) x) (ℵ lv) = tri< (ℵ< {!!}) (λ ()) (λ lt → trio<> lt (ℵ< {!!}) )
 triOrdd  {_} {lv} (OSuc lv x) (OSuc lv y) with triOrdd x y
 triOrdd  {_} {lv} (OSuc lv x) (OSuc lv y) | tri< a ¬b ¬c = tri< (s< a) (λ tx=ty → trio<≡ tx=ty (s< a) )  (  λ lt → trio<> lt (s< a) )
 triOrdd  {_} {lv} (OSuc lv x) (OSuc lv x) | tri≈ ¬a refl ¬c = tri≈ ≡→¬d< refl ≡→¬d<
@@ -74,15 +86,22 @@
 d<→lv Φ< = refl
 d<→lv (s< lt) = refl
 d<→lv ℵΦ< = refl
-d<→lv ℵ< = refl
+d<→lv (ℵ< _) = refl
+d<→lv ℵs< = refl
 
 orddtrans : {n : Level} {lx : Nat} {x y z : OrdinalD {n}  lx }   → x d< y → y d< z → x d< z
 orddtrans {_} {lx} {.(Φ lx)} {.(OSuc lx _)} {.(OSuc lx _)} Φ< (s< y<z) = Φ< 
-orddtrans {_} {Suc lx} {Φ (Suc lx)} {OSuc (Suc lx) y} {ℵ lx} Φ< ℵ< = ℵΦ< {_} {lx} {y}
+orddtrans {_} {Suc lx} {Φ (Suc lx)} {OSuc (Suc lx) y} {ℵ lx} Φ< (ℵ< _) = ℵΦ< {_} {lx} {y}
 orddtrans {_} {lx} {.(OSuc lx _)} {.(OSuc lx _)} {.(OSuc lx _)} (s< x<y) (s< y<z) = s< ( orddtrans x<y y<z )
-orddtrans {_} {Suc lx} {.(OSuc (Suc lx) _)} {.(OSuc (Suc lx) _)} {.(ℵ _)} (s< x<y) ℵ< = ℵ<
-orddtrans {_} {Suc lx} {Φ (Suc lx)} {.(ℵ _)} {z} ℵΦ< ()
-orddtrans {_} {Suc lx} {OSuc (Suc lx) _} {.(ℵ _)} {z} ℵ< ()
+orddtrans {_} {Suc lx} {.(OSuc (Suc lx) _)} {.(OSuc (Suc lx) (Φ (Suc lx)))} {.(ℵ lx)} (s< ()) (ℵ< ¬ℵΦ)
+orddtrans {_} {Suc lx} {OSuc (Suc lx) x} {OSuc (Suc lx) (OSuc (Suc lx) y)} {.(ℵ lx)} (s< x<y) (ℵ< (¬ℵs nℵ)) = ℵ< lemma where
+   lemma : ¬ℵ x
+   lemma = {!!}
+orddtrans ℵΦ< ℵs< = {!!}
+orddtrans (ℵ< ¬ℵΦ) ℵs< = {!!}
+orddtrans (ℵ< (¬ℵs nℵ)) ℵs< = {!!}
+orddtrans ℵs< (s< ℵs<) = {!!}
+orddtrans ℵs< (ℵ< ())
 
 max : (x y : Nat) → Nat
 max Zero Zero = Zero
--- a/zf.agda	Tue May 21 18:17:24 2019 +0900
+++ b/zf.agda	Wed May 22 11:52:49 2019 +0900
@@ -33,15 +33,6 @@
 infixr  140 _∨_
 infixr  150 _⇔_
 
-record Func {n m : Level } (ZFSet : Set n) (_≈_ : Rel ZFSet m) : Set (n ⊔ suc m) where
-  field
-     rel : Rel ZFSet m
-     dom : ( y : ZFSet ) → ∀ { x : ZFSet } → rel x y
-     fun-eq : { x y z : ZFSet } →  ( rel  x  y  ∧ rel  x  z  ) → y ≈ z 
-
-open Func
-
-
 record IsZF {n m : Level }
      (ZFSet : Set n)
      (_∋_ : ( A x : ZFSet  ) → Set m)