# HG changeset patch # User Shinji KONO # Date 1595042978 -32400 # Node ID 7f919d6b045b73bc9ef4013d80f45c05f53e020b # Parent 67580311cc8e90a0178d7f47d67c1a1408b4fd46 ... diff -r 67580311cc8e -r 7f919d6b045b LEMC.agda --- a/LEMC.agda Sat Jul 18 11:38:33 2020 +0900 +++ b/LEMC.agda Sat Jul 18 12:29:38 2020 +0900 @@ -31,8 +31,6 @@ is-in : X ∋ a-choice open HOD -_=h=_ : (x y : HOD) → Set n -x =h= y = od x == od y open choiced diff -r 67580311cc8e -r 7f919d6b045b OD.agda --- a/OD.agda Sat Jul 18 11:38:33 2020 +0900 +++ b/OD.agda Sat Jul 18 12:29:38 2020 +0900 @@ -327,357 +327,353 @@ ε-induction-ord : (ox : Ordinal) { oy : Ordinal } → oy o< ox → ψ (ord→od oy) ε-induction-ord ox {oy} lt = TransFinite1 {λ oy → ψ (ord→od oy)} induction oy +Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD +Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = odmax X ; u ¬a ¬b c = ⊥-elim (not c) +_∈_ : ( A B : HOD ) → Set n +A ∈ B = B ∋ A + +OPwr : (A : HOD ) → HOD +OPwr A = Ord ( sup-o (Ord (osuc (od→ord A))) ( λ x A∋x → od→ord ( A ∩ (ord→od x)) ) ) + +Power : HOD → HOD +Power A = Replace (OPwr (Ord (od→ord A))) ( λ x → A ∩ x ) +-- {_} : ZFSet → ZFSet +-- { x } = ( x , x ) -- better to use (x , x) directly + +data infinite-d : ( x : Ordinal ) → Set n where + iφ : infinite-d o∅ + isuc : {x : Ordinal } → infinite-d x → + infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) )) + +-- ω can be diverged in our case, since we have no restriction on the corresponding ordinal of a pair. +-- We simply assumes infinite-d y has a maximum. +-- +-- This means that many of OD may not be HODs because of the od→ord mapping divergence. +-- We should have some axioms to prevent this such as od→ord x o< next (odmax x). +-- +postulate + ωmax : Ordinal + <ωmax : {y : Ordinal} → infinite-d y → y o< ωmax + +infinite : HOD +infinite = record { od = record { def = λ x → infinite-d x } ; odmax = ωmax ; ¬a ¬b c with (incl lt) (o<-subst c (sym diso) refl ) +... | ttt = ⊥-elim ( o<¬≡ refl (o<-subst ttt diso refl )) + +union→ : (X z u : HOD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z +union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx + ; proj2 = subst ( λ k → odef k (od→ord z)) (sym oiso) (proj2 xx) } )) +union← : (X z : HOD) (X∋z : Union X ∋ z) → ¬ ( (u : HOD ) → ¬ ((X ∋ u) ∧ (u ∋ z ))) +union← X z UX∋z = FExists _ lemma UX∋z where + lemma : {y : Ordinal} → odef X y ∧ odef (ord→od y) (od→ord z) → ¬ ((u : HOD) → ¬ (X ∋ u) ∧ (u ∋ z)) + lemma {y} xx not = not (ord→od y) record { proj1 = subst ( λ k → odef X k ) (sym diso) (proj1 xx ) ; proj2 = proj2 xx } + +ψiso : {ψ : HOD → Set n} {x y : HOD } → ψ x → x ≡ y → ψ y +ψiso {ψ} t refl = t +selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) +selection {ψ} {X} {y} = record { + proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } + ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso } + } +sup-c< : (ψ : HOD → HOD) → {X x : HOD} → X ∋ x → od→ord (ψ x) o< (sup-o X (λ y X∋y → od→ord (ψ (ord→od y)))) +sup-c< ψ {X} {x} lt = subst (λ k → od→ord (ψ k) o< _ ) oiso (sup-o< X lt ) +replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x +replacement← {ψ} X x lt = record { proj1 = sup-c< ψ {X} {x} lt ; proj2 = lemma } where + lemma : def (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)) +replacement→ {ψ} X x lt = contra-position lemma (lemma2 (proj2 lt)) where + lemma2 : ¬ ((y : Ordinal) → ¬ odef X y ∧ ((od→ord x) ≡ od→ord (ψ (ord→od y)))) + → ¬ ((y : Ordinal) → ¬ odef X y ∧ (ord→od (od→ord x) =h= ψ (ord→od y))) + lemma2 not not2 = not ( λ y d → not2 y (record { proj1 = proj1 d ; proj2 = lemma3 (proj2 d)})) where + lemma3 : {y : Ordinal } → (od→ord x ≡ od→ord (ψ (ord→od y))) → (ord→od (od→ord x) =h= ψ (ord→od y)) + lemma3 {y} eq = subst (λ k → ord→od (od→ord x) =h= k ) oiso (o≡→== eq ) + lemma : ( (y : HOD) → ¬ (x =h= ψ y)) → ( (y : Ordinal) → ¬ odef X y ∧ (ord→od (od→ord x) =h= ψ (ord→od y)) ) + lemma not y not2 = not (ord→od y) (subst (λ k → k =h= ψ (ord→od y)) oiso ( proj2 not2 )) + +--- +--- Power Set +--- +--- First consider ordinals in HOD +--- +--- A ∩ x = record { def = λ y → odef A y ∧ odef x y } subset of A +-- +-- +∩-≡ : { a b : HOD } → ({x : HOD } → (a ∋ x → b ∋ x)) → a =h= ( b ∩ a ) +∩-≡ {a} {b} inc = record { + eq→ = λ {x} x u ¬a ¬b c = ⊥-elim (not c) - _∈_ : ( A B : ZFSet ) → Set n - A ∈ B = B ∋ A - - OPwr : (A : HOD ) → HOD - OPwr A = Ord ( sup-o (Ord (osuc (od→ord A))) ( λ x A∋x → od→ord ( A ∩ (ord→od x)) ) ) - - Power : HOD → HOD - Power A = Replace (OPwr (Ord (od→ord A))) ( λ x → A ∩ x ) - -- {_} : ZFSet → ZFSet - -- { x } = ( x , x ) -- better to use (x , x) directly - - data infinite-d : ( x : Ordinal ) → Set n where - iφ : infinite-d o∅ - isuc : {x : Ordinal } → infinite-d x → - infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) )) - - -- ω can be diverged in our case, since we have no restriction on the corresponding ordinal of a pair. - -- We simply assumes infinite-d y has a maximum. - -- - -- This means that many of OD may not be HODs because of the od→ord mapping divergence. - -- We should have some axioms to prevent this such as od→ord x o< next (odmax x). - -- - postulate - ωmax : Ordinal - <ωmax : {y : Ordinal} → infinite-d y → y o< ωmax - - infinite : HOD - infinite = record { od = record { def = λ x → infinite-d x } ; odmax = ωmax ; ¬a ¬b c with (incl lt) (o<-subst c (sym diso) refl ) - ... | ttt = ⊥-elim ( o<¬≡ refl (o<-subst ttt diso refl )) - - union→ : (X z u : HOD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z - union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx - ; proj2 = subst ( λ k → odef k (od→ord z)) (sym oiso) (proj2 xx) } )) - union← : (X z : HOD) (X∋z : Union X ∋ z) → ¬ ( (u : HOD ) → ¬ ((X ∋ u) ∧ (u ∋ z ))) - union← X z UX∋z = FExists _ lemma UX∋z where - lemma : {y : Ordinal} → odef X y ∧ odef (ord→od y) (od→ord z) → ¬ ((u : HOD) → ¬ (X ∋ u) ∧ (u ∋ z)) - lemma {y} xx not = not (ord→od y) record { proj1 = subst ( λ k → odef X k ) (sym diso) (proj1 xx ) ; proj2 = proj2 xx } + ; Union = Union + ; Power = Power + ; Select = Select + ; Replace = Replace + ; infinite = infinite + ; isZF = isZF + } + - ψiso : {ψ : HOD → Set n} {x y : HOD } → ψ x → x ≡ y → ψ y - ψiso {ψ} t refl = t - selection : {ψ : HOD → Set n} {X y : HOD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) - selection {ψ} {X} {y} = record { - proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } - ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso } - } - sup-c< : (ψ : HOD → HOD) → {X x : HOD} → X ∋ x → od→ord (ψ x) o< (sup-o X (λ y X∋y → od→ord (ψ (ord→od y)))) - sup-c< ψ {X} {x} lt = subst (λ k → od→ord (ψ k) o< _ ) oiso (sup-o< X lt ) - replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x - replacement← {ψ} X x lt = record { proj1 = sup-c< ψ {X} {x} lt ; proj2 = lemma } where - lemma : def (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)) - replacement→ {ψ} X x lt = contra-position lemma (lemma2 (proj2 lt)) where - lemma2 : ¬ ((y : Ordinal) → ¬ odef X y ∧ ((od→ord x) ≡ od→ord (ψ (ord→od y)))) - → ¬ ((y : Ordinal) → ¬ odef X y ∧ (ord→od (od→ord x) =h= ψ (ord→od y))) - lemma2 not not2 = not ( λ y d → not2 y (record { proj1 = proj1 d ; proj2 = lemma3 (proj2 d)})) where - lemma3 : {y : Ordinal } → (od→ord x ≡ od→ord (ψ (ord→od y))) → (ord→od (od→ord x) =h= ψ (ord→od y)) - lemma3 {y} eq = subst (λ k → ord→od (od→ord x) =h= k ) oiso (o≡→== eq ) - lemma : ( (y : HOD) → ¬ (x =h= ψ y)) → ( (y : Ordinal) → ¬ odef X y ∧ (ord→od (od→ord x) =h= ψ (ord→od y)) ) - lemma not y not2 = not (ord→od y) (subst (λ k → k =h= ψ (ord→od y)) oiso ( proj2 not2 )) - - --- - --- Power Set - --- - --- First consider ordinals in HOD - --- - --- A ∩ x = record { def = λ y → odef A y ∧ odef x y } subset of A - -- - -- - ∩-≡ : { a b : HOD } → ({x : HOD } → (a ∋ x → b ∋ x)) → a =h= ( b ∩ a ) - ∩-≡ {a} {b} inc = record { - eq→ = λ {x} x : (x y : HOD) → HOD < x , y > = (x , x ) , (x , y ) diff -r 67580311cc8e -r 7f919d6b045b filter.agda --- a/filter.agda Sat Jul 18 11:38:33 2020 +0900 +++ b/filter.agda Sat Jul 18 12:29:38 2020 +0900 @@ -71,8 +71,6 @@ q∩q⊆q = record { incl = λ lt → proj1 lt } open HOD -_=h=_ : (x y : HOD) → Set n -x =h= y = od x == od y ----- -- @@ -157,16 +155,9 @@ ODSuc : (y : HOD) → infinite ∋ y → HOD ODSuc y lt = Union (y , (y , y)) -nat→ω : Nat → HOD -nat→ω Zero = od∅ -nat→ω (Suc y) = Union (nat→ω y , (nat→ω y , nat→ω y)) +postulate + ho< : {x : HOD} → hod-ord< {x} -- : ({x : HOD} → od→ord x o< next (odmax x)) -postulate -- we have proved in other module - ω∋nat→ω : {n : Nat} → def (od infinite) (od→ord (nat→ω n)) - ω o< next y lemma0 {n} {y} hw2 inf = nexto=n {!!} odmax0 : {y : Ordinal} → Hω2 y → y o< next o∅ @@ -187,6 +180,22 @@ odmax0 (h1 {y} lt) = next< (odmax0 lt) (subst (λ k → k o< next y ) (cong (λ k → od→ord < k , ord→od y >) oiso ) (lemma0 lt (ω∋nat→ω {1} ))) odmax0 (h2 {y} lt) = next< (odmax0 lt) (subst (λ k → k o< next y ) (cong (λ k → od→ord < k , ord→od y >) oiso ) (lemma0 lt (ω∋nat→ω {2} ))) +HODω2-Filter : Filter HODω2 +HODω2-Filter = record { + filter = {!!} + ; f⊆PL = {!!} + ; filter1 = {!!} + ; filter2 = {!!} + } where + filter0 : HOD + filter0 = {!!} + f⊆PL1 : filter0 ⊆ Power HODω2 + f⊆PL1 = {!!} + filter11 : { p q : HOD } → q ⊆ HODω2 → filter0 ∋ p → p ⊆ q → filter0 ∋ q + filter11 = {!!} + filter12 : { p q : HOD } → filter0 ∋ p → filter0 ∋ q → filter0 ∋ (p ∩ q) + filter12 = {!!} + -- the set of finite partial functions from ω to 2 data Two : Set n where