Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1291:255b9708a308
it is a bad idea to use & ( * x , * x ) = osuc x
go back to original ho< restriction
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 01 Jun 2023 18:52:00 +0900 |
parents | 8bf6db0b82df |
children | |
files | src/OD.agda |
diffstat | 1 files changed, 36 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/src/OD.agda Mon May 29 15:50:25 2023 +0900 +++ b/src/OD.agda Thu Jun 01 18:52:00 2023 +0900 @@ -454,7 +454,11 @@ -- {_} : ZFSet → ZFSet -- { x } = ( x , x ) -- better to use (x , x) directly - +-- (x , y ) ∋ z x ≡ z ∨ y ≡ z +-- (x , x ) x ≡ z ∨ x ≡ z --- {x} a set which contains x only +-- od∅ {od∅} {od∅,{od∅}} ..... +-- Ordinal o∅ osuc o∅ osuc (osuc o∅) .... o< ω = next o∅ +-- (* x , * y ) ≡ omax x y data infinite-d : ( x : Ordinal ) → Set n where iφ : infinite-d o∅ @@ -472,14 +476,8 @@ infinite-od : OD infinite-od = record { def = λ x → infinite-d x } -ux=osucx : {x : Ordinal} → infinite-d x → Union (* x , (* x , * x )) ≡ (* x , * x) -- looks like wrong -ux=osucx {.(Ordinals.o∅ O)} iφ = ? -ux=osucx {.(& (Union (* x , (* x , * x))))} (isuc {x} ix) = ==→o≡ record { eq→ = ? ; eq← = ? } where - lemma10 : Union (* x , (* x , * x )) ≡ (* x , * x) - lemma10 = ux=osucx ix - -nat=Ord : {x : Ordinal} → infinite-d x → (Union (* x , (* x , * x ))) ≡ Ord (osuc x) -nat=Ord {.(Ordinals.o∅ O)} iφ = ==→o≡ record { eq→ = lemma10 ; eq← = lemma11 } where +nat⊆Ord : {x : Ordinal} → infinite-d x → (Union (* x , (* x , * x ))) ⊆ Ord (osuc x) +nat⊆Ord {.(Ordinals.o∅ O)} iφ = lemma10 where lemma10 : {x : Ordinal} → Own (* o∅ , (* o∅ , * o∅)) x → x o< osuc o∅ lemma10 {x} record { owner = owner ; ao = (case1 eq) ; ox = ox } = ⊥-elim (o<¬≡ (sym &iso) (∈∅< lemma4)) where lemma4 : odef (* o∅) x @@ -491,7 +489,7 @@ lemma11 {x} lt with osuc-≡< lt ... | case1 eq = record { owner = _ ; ao = case2 refl ; ox = subst (λ k → odef k x) (sym *iso) (case1 (trans eq (sym &iso))) } ... | case2 x<0 = ⊥-elim (¬x<0 x<0) -nat=Ord {.(& (Union (* x , (* x , * x))))} (isuc {x} it) = ==→o≡ record { eq→ = lemma12 ; eq← = lemma14 } where +nat⊆Ord {.(& (Union (* x , (* x , * x))))} (isuc {x} it) = lemma12 where lemma12 : {z : Ordinal} → Own (* (& (Union (* x , (* x , * x)))) , (* (& (Union (* x , (* x , * x)))) , * (& (Union (* x , (* x , * x)))))) z → z o< osuc (& (Union (* x , (* x , * x)))) @@ -503,41 +501,41 @@ lemma12 {z} record { owner = owner ; ao = (case2 eq) ; ox = ox } with (subst (λ k → odef k z) (trans (cong (*) eq) *iso ) ox) ... | case1 eq1 = o≤-refl0 (trans eq1 &iso ) ... | case2 eq1 = o≤-refl0 (trans eq1 &iso ) - lemma14 : {z : Ordinal} → - z o< osuc (& (Union (* x , (* x , * x)))) → - Own (* (& (Union (* x , (* x , * x)))) , (* (& (Union (* x , (* x , * x)))) , * (& (Union (* x , (* x , * x)))))) z - lemma14 {z} lt with osuc-≡< lt - ... | case1 eq = record { owner = _ ; ao = case2 refl ; ox = subst (λ k → odef k z) (sym *iso) ( case2 (trans eq (sym &iso) )) } - ... | case2 z<ux = record { owner = _ ; ao = case1 refl ; ox = lemma17 } where - lemma16 : (Union (* x , (* x , * x ))) ≡ Ord (osuc x) - lemma16 = nat=Ord it - lemma22 : {z : Ordinal} → z o< osuc x → odef (Union (* x , (* x , * x ))) z - lemma22 {z} z<ox = subst (λ k → odef k z) (sym lemma16) z<ox - lemma19 : odef (Union (* x , (* x , * x))) x - lemma19 = record { owner = _ ; ao = case2 refl ; ox = subst₂ (λ j k → odef j k ) (sym *iso) &iso (case1 refl) } - lemma24 : x o< (& (Union (* x , (* x , * x)))) - lemma24 = ? - lemma25 : osuc x ≡ (& (Union (* x , (* x , * x)))) - lemma25 = ? - lemma23 : z o< osuc (& (Union (* x , (* x , * x)))) → z o< osuc x - lemma23 = ? - lemma18 : z o< osuc x - lemma18 = begin - z <⟨ z<ux ⟩ - & (Union (* x , (* x , * x))) ≤⟨ ? ⟩ - x ∎ where open o≤-Reasoning O - lemma21 : odef (Ord (osuc x)) z - lemma21 = lemma18 - lemma17 : odef (* (& (* (& (Union (* x , (* x , * x))))))) z - lemma17 = subst (λ k → odef k z) (trans (sym lemma16) (sym (trans *iso *iso))) lemma18 + +nat⊆Ord' : {x z : Ordinal} → infinite-d x → odef (Union (* x , (* x , * x ))) z → z o< osuc x +nat⊆Ord' {x} {z} ix uxz = nat⊆Ord {x} ix {z} uxz infinite : HOD infinite = record { od = record { def = λ x → infinite-d x } ; odmax = osuc (& (Ord (next o∅))) ; <odmax = lemma } where + lemma0 : {x : Ordinal} → infinite-d x → * x ⊆ Ord (next o∅) + lemma0 {.(Ordinals.o∅ O)} iφ = ? + lemma0 {.(& (Union (* _ , (* _ , * _))))} (isuc {x} ix) = subst (λ k → k ⊆ (Ord (next o∅))) (sym *iso) lemma6 where + lemma2 : * x ⊆ Ord (next o∅) + lemma2 = lemma0 ix + lemma5 : (Union (* x , (* x , * x))) ⊆ Ord (osuc x) + lemma5 = nat⊆Ord ix + lemma6 : (Union (* x , (* x , * x))) ⊆ Ord (next o∅) + lemma6 {z} lt = ordtrans (lemma5 lt ) ? + + lemma-i : {y x : Ordinal} → infinite-d y → odef (* y) x → odef (Ord (next o∅)) x - lemma-i = ? + lemma-i {.(Ordinals.o∅ O)} {x} iφ yz = ⊥-elim (¬x<0 (subst (λ k → odef k x) o∅≡od∅ yz )) + lemma-i {.(& (Union (* _ , (* _ , * _))))} {x} (isuc {z} iy) yz with (subst (λ k → odef k x) *iso yz) + ... | record { owner = owner ; ao = case1 eq ; ox = ox } = ordtrans <-osuc (osuc<nx (lemma-i {z} {x} iy ?) ) + ... | record { owner = owner ; ao = case2 eq ; ox = ox } with (subst (λ k → odef k x) (trans (cong (*) eq) *iso ) ox) + ... | case1 eq1 = subst (λ k → k o< next o∅) ? ( lemma-i {z} {x} iy ? ) + ... | case2 eq1 = ordtrans ( nat⊆Ord iy ? ) ? + -- ordtrans ? ( osuc<nx ? ) lemma : {y : Ordinal} → infinite-d y → y o< osuc (& (Ord (next o∅))) lemma iy = subst₂ (λ j k → j o< k ) &iso refl ( ⊆→o≤ (lemma-i iy) ) + lemma-j : {y : Ordinal} → infinite-d y → odef (Ord (next o∅)) y + lemma-j {.(Ordinals.o∅ O)} iφ = ? + lemma-j {.(& (Union (* _ , (* _ , * _))))} (isuc {z} iy) = ? where + lemma-k : odef (Ord (next o∅)) z + lemma-k = lemma-j iy + lemma-m : osuc (& (Ord (osuc z))) o< & (Ord (next o∅)) + lemma-m = ? pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y )