changeset 97:f2b579106770

power set using sup on Def
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 09 Jun 2019 19:41:53 +0900
parents f239ffc27fd0
children 1ff0ddc991ac
files ordinal-definable.agda ordinal.agda
diffstat 2 files changed, 39 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/ordinal-definable.agda	Sat Jun 08 22:17:40 2019 +0900
+++ b/ordinal-definable.agda	Sun Jun 09 19:41:53 2019 +0900
@@ -248,19 +248,23 @@
 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 
 -- postulate f-extensionality : { n : Level}  → Relation.Binary.PropositionalEquality.Extensionality (suc n) (suc (suc n))
 
+csuc :  {n : Level} →  OD {suc n} → OD {suc n}
+csuc x = ord→od ( osuc ( od→ord x ))
+
 -- Power Set of X ( or constructible by λ y → def X (od→ord y )
-Def :  {n : Level} →  OD {suc n} → OD {suc n}
-Def {n} A = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x  → def A x }
+
+ZFSubset : {n : Level} → (A x : OD {suc n} ) → OD {suc n}
+ZFSubset A x =  record { def = λ y → def A y ∧  def x y }  
+
+Def :  {n : Level} → (A :  OD {suc n}) → OD {suc n}
+Def {n} A = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) )  
 
 -- Constructible Set on α
-L : {n : Level} →  Ordinal {suc n} → OD {suc n}
-L {n} record { lv = Zero ; ord = (Φ .0) } = od∅
-L {n} record { lv = lx ; ord = (OSuc lv ox) } = Def ( L ( record { lv = lx ; ord = ox } ))
-L {n} record { lv = (Suc lx) ; ord = (Φ (Suc lx)) } = -- Union ( L α )
-    record { def = λ y → osuc y o< (od→ord (L {n} (record { lv = lx ; ord = Φ lx }) )) }
-
-csuc :  {n : Level} →  OD {suc n} → OD {suc n}
-csuc x = ord→od ( osuc ( od→ord x ))
+L : {n : Level} → (α : Ordinal {suc n}) → OD {suc n}
+L {n}  record { lv = Zero ; ord = (Φ .0) } = od∅
+L {n}  record { lv = lx ; ord = (OSuc lv ox) } = Def ( L {n} ( record { lv = lx ; ord = ox } ) ) 
+L {n}  record { lv = (Suc lx) ; ord = (Φ (Suc lx)) } = -- Union ( L α )
+    record { def = λ y → osuc y o< (od→ord (L {n}  (record { lv = lx ; ord = Φ lx }) )) }
 
 -- L∋ord : {n : Level} → (x :  Ordinal {suc n} ) → L (osuc x) ∋ ord→od x
 -- L∋ord {n} record { lv = Zero ; ord = (Φ .0) } = {!!}
@@ -276,8 +280,9 @@
 supP : {n : Level} → (A : OD {suc n} ) → Ordinal {suc n}
 supP A = sup-o ( ord-of A )
 
-L→P : {n : Level} → (A : OD {suc n} ) → L (supP A) ∋ Def A 
-L→P {n} A = {!!}
+L→P : {n : Level} → (A x : OD {suc n} ) → L {n}  (supP A) ∋ ZFSubset A x
+L→P {n} A x with sup-o< (ord-of A) {{!!}}
+... | lt = {!!}
 
 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n}
 OD→ZF {n}  = record { 
@@ -303,7 +308,7 @@
     Union U = record { def = λ y → osuc y o< (od→ord U) }
     -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x →  X ∋ x )
     Power : OD {suc n} → OD {suc n}
-    Power A = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x  → def A x }
+    Power A = Def A
     ZFSet = OD {suc n}
     _∈_ : ( A B : ZFSet  ) → Set (suc n)
     A ∈ B = B ∋ A
@@ -320,7 +325,7 @@
     isZF = record {
            isEquivalence  = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans }
        ;   pair  = pair
-       ;   union-u = union-u
+       ;   union-u = λ _ z _ → csuc z
        ;   union→ = union→
        ;   union← = union←
        ;   empty = empty
@@ -341,14 +346,25 @@
          proj2 (pair A B ) = omax-y {n} (od→ord A) (od→ord B)
          empty : (x : OD {suc n} ) → ¬  (od∅ ∋ x)
          empty x ()
-         --- Power X = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x  →  def X x }
+         --- ZFSubset A x =  record { def = λ y → def A y ∧  def x y }  
+         --- Power X = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) )
          power→ : (A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → A ∋ x
-         power→ A t P∋t {x} t∋x = P∋t (od→ord x) (subst (λ k → def k (od→ord x)) (sym oiso) t∋x )
+         power→ A t P∋t {x} t∋x = proj1 lemma-s where
+              lemma-t : ZFSubset A {!!} ∋ csuc t
+              lemma-t = record { proj1 = {!!} ; proj2 = {!!} }
+              lemma-s : ZFSubset A {!!} ∋ x
+              lemma-s = {!!} -- transitive {!!} t∋x
+              lemma : od→ord (ZFSubset A (ord→od (od→ord (csuc t))) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x)))
+              lemma = sup-o< {suc n} (  λ x → od→ord ( ZFSubset A (ord→od x ))) 
          power← : (A t : OD) → ({x : OD} → (t ∋ x → A ∋ x)) → Power A ∋ t
-         power← A t t→A z _ = {!!}
-         union-u : (X z : OD {suc n}) → Union X ∋ z → OD {suc n}
-         union-u X z U>z = ord→od ( osuc ( od→ord z ) )
-         union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → union-u X z U>z  ∋ z
+         power← A t t→A  = {!!} where
+              lemma-eq :  ZFSubset A t == t
+              eq→ lemma-eq {z} w = proj2 w 
+              eq← lemma-eq {z} w = record { proj2 = w  ;
+                 proj1 = def-subst {suc n} {_} {_} {A} {z} ( t→A (def-subst {suc n} {_} {_} {t} {od→ord (ord→od z)} w refl (sym diso) )) refl diso  }
+              lemma :  od→ord (ZFSubset A (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x)))
+              lemma = sup-o< {suc n} (  λ x → od→ord ( ZFSubset A (ord→od x ))) 
+         union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → csuc z ∋ z
          union-lemma-u {X} {z} U>z = lemma <-osuc where
              lemma : {oz ooz : Ordinal {suc n}} → oz o< ooz → def (ord→od ooz) oz
              lemma {oz} {ooz} lt = def-subst {suc n} {ord→od  ooz} (o<→c< lt) refl refl
@@ -360,8 +376,8 @@
              lemma : {oX ou ooy : Ordinal {suc n}} →  ou ≡ ooy  → ou o< oX   → ooy  o< oX
              lemma refl lt = lt
          union→ X y u xx | tri> ¬a ¬b c = ordtrans {suc n} {osuc ( od→ord y )} {od→ord u} {od→ord X} c ( c<→o< (proj1 xx )) 
-         union← :  (X z : OD) (X∋z : Union X ∋ z) → (X ∋ union-u X z X∋z) ∧ (union-u X z X∋z ∋ z )
-         union← X z X∋z = record { proj1 = def-subst {suc n} {_} {_} {X} {od→ord (union-u X z X∋z)} (o<→c< X∋z) oiso (sym diso) ; proj2 = union-lemma-u X∋z } 
+         union← :  (X z : OD) (X∋z : Union X ∋ z) → (X ∋ csuc z) ∧ (csuc z ∋ z )
+         union← X z X∋z = record { proj1 = def-subst {suc n} {_} {_} {X} {od→ord (csuc z )} (o<→c< X∋z) oiso (sym diso) ; proj2 = union-lemma-u X∋z } 
          ψiso :  {ψ : OD {suc n} → Set (suc n)} {x y : OD {suc n}} → ψ x → x ≡ y   → ψ y
          ψiso {ψ} t refl = t
          selection : {ψ : OD → Set (suc n)} {X y : OD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y)
--- a/ordinal.agda	Sat Jun 08 22:17:40 2019 +0900
+++ b/ordinal.agda	Sun Jun 09 19:41:53 2019 +0900
@@ -289,3 +289,4 @@
 TransFinite caseΦ caseOSuc record { lv = lv ; ord = (Φ (lv)) } = caseΦ lv
 TransFinite caseΦ caseOSuc record { lv = lx ; ord = (OSuc lx ox) } = 
       caseOSuc lx ox (TransFinite caseΦ caseOSuc  record { lv = lx ; ord = ox })
+