diff OD.agda @ 304:2c111bfcc89a

HOD using <maxod
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 29 Jun 2020 18:31:56 +0900
parents 7963b76df6e1
children 4804f3f3485f
line wrap: on
line diff
--- a/OD.agda	Mon Jun 29 17:56:06 2020 +0900
+++ b/OD.agda	Mon Jun 29 18:31:56 2020 +0900
@@ -77,7 +77,8 @@
 record HOD : Set (suc n) where
   field
     od : OD
-    ¬odmax : ¬ (od ≡ Ords)
+    odmax : Ordinal
+    <odmax : {x : Ordinal} → def od x → x o< odmax
 
 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where
   field
@@ -89,12 +90,9 @@
 
 open HOD
 
--- HOD→OD : {x : Ordinal} → HOD x → OD
--- HOD→OD hod = record { def = hdef {!!} }
-
 record ODAxiom : Set (suc n) where      
-  -- OD can be iso to a subset of Ordinal ( by means of Godel Set )
  field
+  -- HOD is isomorphic to Ordinal (by means of Goedel number)
   od→ord : HOD  → Ordinal 
   ord→od : Ordinal  → HOD  
   c<→o<  :  {x y : HOD  }   → def (od y) ( od→ord x ) → od→ord x o< od→ord y
@@ -114,22 +112,23 @@
 -- maxod : {x : OD} → od→ord x o< od→ord Ords
 -- maxod {x} = c<→o< OneObj
 
--- we have to avoid this contradiction
-
+-- we have not this contradiction
 -- bad-bad : ⊥
--- bad-bad = osuc-< <-osuc (c<→o< { record { def = λ x → One }} OneObj)
+-- bad-bad = osuc-< <-osuc (c<→o< { record { od = record { def = λ x → One };  <odmax = {!!} } } OneObj)
 
 -- Ordinal in OD ( and ZFSet ) Transitive Set
 Ord : ( a : Ordinal  ) → HOD 
-Ord  a = record { od = record { def = λ y → y o< a } ; ¬odmax = ? }
+Ord  a = record { od = record { def = λ y → y o< a } ; odmax = a ; <odmax = lemma } where
+   lemma :  {x : Ordinal} → x o< a → x o< a
+   lemma {x} lt = lt
 
 od∅ : HOD  
 od∅  = Ord o∅ 
 
 sup-o  :  ( HOD → Ordinal ) →  Ordinal 
-sup-o  = ?
+sup-o  = {!!}
 sup-o< :  { ψ : HOD →  Ordinal } → ∀ {x : HOD } → ψ x  o<  sup-o ψ 
-sup-o< = ?
+sup-o< = {!!}
 
 odef : HOD → Ordinal → Set n
 odef A x = def ( od A ) x
@@ -148,7 +147,7 @@
 x c< a = a ∋ x 
 
 cseq : {n : Level} →  HOD  →  HOD 
-cseq x = record { od = record { def = λ y → odef x (osuc y) } ; ¬odmax = ? } where
+cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = {!!} ; <odmax = {!!} } where
 
 odef-subst :  {Z : HOD } {X : Ordinal  }{z : HOD } {x : Ordinal  }→ odef Z X → Z ≡ z  →  X ≡ x  →  odef z x
 odef-subst df refl refl = df
@@ -216,18 +215,18 @@
 is-o∅ x | tri> ¬a ¬b c = no ¬b
 
 _,_ : HOD  → HOD  → HOD 
-x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; ¬odmax = ? }  --  Ord (omax (od→ord x) (od→ord y))
+x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; odmax = {!!} ; <odmax = {!!} }  --  Ord (omax (od→ord x) (od→ord y))
 
 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 
 -- postulate f-extensionality : { n : Level}  → Relation.Binary.PropositionalEquality.Extensionality n (suc n)
 
 in-codomain : (X : HOD  ) → ( ψ : HOD  → HOD  ) → HOD 
-in-codomain  X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧  ( x ≡ od→ord (ψ (ord→od y )))))  } ; ¬odmax = ? }
+in-codomain  X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧  ( x ≡ od→ord (ψ (ord→od y )))))  } ; odmax = {!!} ; <odmax = {!!} }
 
 -- Power Set of X ( or constructible by λ y → odef X (od→ord y )
 
 ZFSubset : (A x : HOD  ) → HOD 
-ZFSubset A x =  record { od = record { def = λ y → odef A y ∧  odef x y } ; ¬odmax = ? }  --   roughly x = A → Set 
+ZFSubset A x =  record { od = record { def = λ y → odef A y ∧  odef x y } ; odmax = {!!} ; <odmax = {!!} }  --   roughly x = A → Set 
 
 OPwr :  (A :  HOD ) → HOD 
 OPwr  A = Ord ( sup-o  ( λ x → od→ord ( ZFSubset A x) ) )   
@@ -279,13 +278,13 @@
  } where
     ZFSet = HOD             -- is less than Ords because of maxod
     Select : (X : HOD  ) → ((x : HOD  ) → Set n ) → HOD 
-    Select X ψ = record { od = record { def = λ x →  ( odef X x ∧ ψ ( ord→od x )) } ; ¬odmax = ? }
+    Select X ψ = record { od = record { def = λ x →  ( odef X x ∧ ψ ( ord→od x )) } ; odmax = {!!} ; <odmax = {!!} }
     Replace : HOD  → (HOD  → HOD  ) → HOD 
-    Replace X ψ = record { od = record { def = λ x → (x o< sup-o  ( λ x → od→ord (ψ x))) ∧ odef (in-codomain X ψ) x } ; ¬odmax = ? }
+    Replace X ψ = record { od = record { def = λ x → (x o< sup-o  ( λ x → od→ord (ψ x))) ∧ odef (in-codomain X ψ) x } ; odmax = {!!} ; <odmax = {!!} }
     _∩_ : ( A B : ZFSet  ) → ZFSet
-    A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x }  ; ¬odmax = ? }
+    A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x }  ; odmax = {!!} ; <odmax = {!!} }
     Union : HOD  → HOD   
-    Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x)))  } ; ¬odmax = ? }
+    Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x)))  } ; odmax = {!!} ; <odmax = {!!} }
     _∈_ : ( A B : ZFSet  ) → Set n
     A ∈ B = B ∋ A
     Power : HOD  → HOD 
@@ -299,7 +298,7 @@
                 infinite-d  (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) ))
 
     infinite : HOD 
-    infinite = record { od = record { def = λ x → infinite-d x } ; ¬odmax = ? }
+    infinite = record { od = record { def = λ x → infinite-d x } ; odmax = {!!} ; <odmax = {!!} }
 
     _=h=_ : (x y : HOD) → Set n
     x =h= y  = od x == od y
@@ -364,7 +363,7 @@
             ; proj2 = λ select → record { proj1 = proj1 select  ; proj2 =  ψiso {ψ} (proj2 select) oiso  }
            }
          replacement← : {ψ : HOD → HOD} (X x : HOD) →  X ∋ x → Replace X ψ ∋ ψ x
-         replacement← {ψ} X x lt = record { proj1 =  ? ; proj2 = lemma } where -- sup-c< ψ {x} 
+         replacement← {ψ} X x lt = record { proj1 =  {!!} ; proj2 = lemma } where -- sup-c< ψ {x} 
              lemma : odef (in-codomain X ψ) (od→ord (ψ x))
              lemma not = ⊥-elim ( not ( od→ord x ) (record { proj1 = lt ; proj2 = cong (λ k → od→ord (ψ k)) (sym oiso)} ))
          replacement→ : {ψ : HOD → HOD} (X x : HOD) → (lt : Replace X ψ ∋ x) → ¬ ( (y : HOD) → ¬ (x =h= ψ y))