Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 367:f74681db63c7
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 19 Jul 2020 00:26:55 +0900 |
parents | 1a8ca713bc32 |
children | 30de2d9b93c1 |
files | OD.agda OPair.agda filter.agda |
diffstat | 3 files changed, 36 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/OD.agda Sat Jul 18 18:11:13 2020 +0900 +++ b/OD.agda Sun Jul 19 00:26:55 2020 +0900 @@ -103,6 +103,9 @@ ==→o≡ : {x y : HOD } → (od x == od y) → x ≡ y sup-o : (A : HOD) → ( ( x : Ordinal ) → def (od A) x → Ordinal ) → Ordinal sup-o< : (A : HOD) → { ψ : ( x : Ordinal ) → def (od A) x → Ordinal } → ∀ {x : Ordinal } → (lt : def (od A) x ) → ψ x lt o< sup-o A ψ +-- possible order restriction + ho< : {x : HOD} → od→ord x o< next (odmax x) + postulate odAxiom : ODAxiom open ODAxiom odAxiom @@ -117,10 +120,6 @@ odmaxmin : Set (suc n) odmaxmin = (y : HOD) (z : Ordinal) → ((x : Ordinal)→ def (od y) x → x o< z) → odmax y o< osuc z --- possible order restriction -hod-ord< : {x : HOD } → Set n -hod-ord< {x} = od→ord x o< next (odmax x) - -- OD ⇔ Ordinal leads a contradiction, so we need bounded HOD ¬OD-order : ( od→ord : OD → Ordinal ) → ( ord→od : Ordinal → OD ) → ( { x y : OD } → def y ( od→ord x ) → od→ord x o< od→ord y) → ⊥ ¬OD-order od→ord ord→od c<→o< = osuc-< <-osuc (c<→o< {Ords} OneObj ) @@ -374,15 +373,15 @@ -- 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 +-- 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 ; <odmax = <ωmax } infinite : HOD -infinite = record { od = record { def = λ x → infinite-d x } ; odmax = ωmax ; <odmax = <ωmax } - -infinite' : ({x : HOD} → od→ord x o< next (odmax x)) → HOD -infinite' ho< = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma } where +infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma } where u : (y : Ordinal ) → HOD u y = Union (ord→od y , (ord→od y , ord→od y)) -- next< : {x y z : Ordinal} → x o< next z → y o< next x → y o< next z @@ -405,7 +404,7 @@ lemma (isuc {y} x) = next< (lemma x) (next< (subst (λ k → od→ord (ord→od y , (ord→od y , ord→od y)) o< next k) diso lemma71 ) (nexto=n lemma1)) ω<next-o∅ : ({x : HOD} → od→ord x o< next (odmax x)) → {y : Ordinal} → infinite-d y → y o< next o∅ -ω<next-o∅ ho< {y} lt = <odmax (infinite' ho<) lt +ω<next-o∅ ho< {y} lt = <odmax infinite lt nat→ω : Nat → HOD nat→ω Zero = od∅ @@ -418,8 +417,10 @@ lemma (isuc lt) = Suc (lemma lt) ω∋nat→ω : {n : Nat} → def (od infinite) (od→ord (nat→ω n)) -ω∋nat→ω {Zero} = subst (λ k → def (od infinite) k) {!!} iφ -ω∋nat→ω {Suc n} = subst (λ k → def (od infinite) k) {!!} (isuc ( ω∋nat→ω {n})) +ω∋nat→ω {Zero} = subst (λ k → def (od infinite) k) (sym ord-od∅) iφ +ω∋nat→ω {Suc n} = subst (λ k → def (od infinite) k) lemma (isuc ( ω∋nat→ω {n})) where + lemma : od→ord (Union (ord→od (od→ord (nat→ω n)) , (ord→od (od→ord (nat→ω n)) , ord→od (od→ord (nat→ω n))))) ≡ od→ord (nat→ω (Suc n)) + lemma = subst (λ k → od→ord (Union (k , ( k , k ))) ≡ od→ord (nat→ω (Suc n))) (sym oiso) refl _=h=_ : (x y : HOD) → Set n x =h= y = od x == od y
--- a/OPair.agda Sat Jul 18 18:11:13 2020 +0900 +++ b/OPair.agda Sun Jul 19 00:26:55 2020 +0900 @@ -135,6 +135,25 @@ p-pi2 : { x y : HOD } → (p : def ZFProduct (od→ord < x , y >) ) → π2 p ≡ y p-pi2 {x} {y} p = proj2 ( prod-eq ( ord→== (op-iso p))) +ω-pair : {x y : HOD} → infinite ∋ x → infinite ∋ y → od→ord < x , y > o< osuc (next o∅) +ω-pair {x} {y} lx ly with trio< (od→ord x) (od→ord y) +ω-pair {x} {y} lx ly | tri≈ ¬a b ¬c = {!!} +ω-pair {x} {y} lx ly | tri< a ¬b ¬c = {!!} +ω-pair {x} {y} lx ly | tri> ¬a ¬b c = {!!} +-- ω-pair {x} {y} lx ly = begin +-- od→ord < x , y > +-- <⟨ ho< ⟩ +-- next (omax (od→ord (x , x)) (od→ord (x , y))) +-- ≤⟨ {!!} ⟩ +-- next (omax (od→ord (x , x)) (od→ord (x , y))) +-- ≡⟨ cong (λ k → next k ) (sym (omax< _ _ {!!} )) ⟩ +-- next (osuc (od→ord (x , y))) +-- ≤⟨ {!!} ⟩ +-- od→ord < ord→od (next o∅) , ord→od (next o∅) > +-- ≤⟨ {!!} ⟩ +-- next o∅ +-- ∎ where open o≤-Reasoning O + _⊗_ : (A B : HOD) → HOD A ⊗ B = Union ( Replace B (λ b → Replace A (λ a → < a , b > ) )) @@ -151,8 +170,8 @@ product← lt = record { is-pair = {!!} ; π1A = {!!} ; π2B = {!!} } -ZFP : (A B : HOD) → ( {x : HOD } → hod-ord< {x} ) → HOD -ZFP A B hod-ord< = record { od = record { def = λ x → def ZFProduct x ∧ ( { x : Ordinal } → (p : def ZFProduct x ) → checkAB p ) } ; +ZFP : (A B : HOD) → HOD +ZFP A B = record { od = record { def = λ x → def ZFProduct x ∧ ( { x : Ordinal } → (p : def ZFProduct x ) → checkAB p ) } ; odmax = {!!} ; <odmax = {!!} } where checkAB : { p : Ordinal } → def ZFProduct p → Set n checkAB (pair x y) = odef A x ∧ odef B y
--- a/filter.agda Sat Jul 18 18:11:13 2020 +0900 +++ b/filter.agda Sun Jul 19 00:26:55 2020 +0900 @@ -155,10 +155,6 @@ ODSuc : (y : HOD) → infinite ∋ y → HOD ODSuc y lt = Union (y , (y , y)) -postulate - ho< : {x : HOD} → hod-ord< {x} -- : ({x : HOD} → od→ord x o< next (odmax x)) - - data Hω2 : (i : Nat) ( x : Ordinal ) → Set n where hφ : Hω2 0 o∅ h0 : {i : Nat} {x : Ordinal } → Hω2 i x →