comparison src/zorn.agda @ 637:c17d46ecb051

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 21 Jun 2022 11:21:27 +0900
parents 844eb13a5a39
children 75578f19ed3c
comparison
equal deleted inserted replaced
636:844eb13a5a39 637:c17d46ecb051
680 postulate 680 postulate
681 TFcomm : { ψ : Ordinal → Set (Level.suc n) } 681 TFcomm : { ψ : Ordinal → Set (Level.suc n) }
682 → (ind : (x : Ordinal) → ( (y : Ordinal ) → y o< x → ψ y ) → ψ x ) 682 → (ind : (x : Ordinal) → ( (y : Ordinal ) → y o< x → ψ y ) → ψ x )
683 → ∀ (x : Ordinal) → ind x (λ y _ → TransFinite ind y ) ≡ TransFinite ind x 683 → ∀ (x : Ordinal) → ind x (λ y _ → TransFinite ind y ) ≡ TransFinite ind x
684 684
685 record ZChain1 ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where 685 record ZChain1 ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) : Set (Level.suc n) where
686 field 686 field
687 zc : ZChain A y f z 687 zc : ZChain A y f (& A)
688 supf = ZChain.supf zc 688 supf = ZChain.supf zc
689 field 689 field
690 chain-mono : {x y : Ordinal} → x o≤ y → y o≤ z → supf x ⊆' supf y 690 chain-mono : {x y : Ordinal} → x o≤ y → supf x ⊆' supf y
691 f-total : {x : Ordinal} → x o≤ z → IsTotalOrderSet (supf x) 691 f-total : {x : Ordinal} → IsTotalOrderSet (supf x)
692 692
693 SZ1 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} → (ay : odef A y) 693 SZ1 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} → (ay : odef A y)
694 → (z : Ordinal) → ZChain1 f mf ay z 694 → ZChain1 f mf ay
695 SZ1 f mf {y} ay z = record { zc = TransFinite {λ z → ZChain A y f z } (ind f mf ay ) z 695 SZ1 f mf {y} ay = record { zc = TransFinite {λ z → ZChain A y f z } (ind f mf ay ) (& A)
696 ; chain-mono = mono sf ; f-total = {!!} } where -- TransFinite {λ w → ZChain1 f mf ay w} indp z where 696 ; chain-mono = mono sf ; f-total = {!!} } where -- TransFinite {λ w → ZChain1 f mf ay w} indp z where
697 sf : Ordinal → HOD 697 sf : Ordinal → HOD
698 sf x = ZChain.supf (TransFinite (ind f mf ay) z) x 698 sf x = ZChain.supf (TransFinite (ind f mf ay) (& A)) x
699 mono : {x : Ordinal} {w : Ordinal} (sf : Ordinal → HOD) → x o≤ w → w o≤ z → sf x ⊆' sf w 699 mono : {x : Ordinal} {w : Ordinal} (sf : Ordinal → HOD) → x o≤ w → sf x ⊆' sf w
700 mono {a} {b} sf a≤b b≤z = TransFinite0 {λ b → a o≤ b → b o≤ z → sf a ⊆' sf b } {!!} b a≤b b≤z 700 mono {a} {b} sf a≤b = TransFinite0 {λ b → a o≤ b → sf a ⊆' sf b } mind b a≤b where
701 mind : (x : Ordinal) → ((y₁ : Ordinal) → y₁ o< x → a o≤ y₁ → sf a ⊆' sf y₁) → a o≤ x → sf a ⊆' sf x
702 mind = {!!}
703
701 704
702 zorn00 : Maximal A 705 zorn00 : Maximal A
703 zorn00 with is-o∅ ( & HasMaximal ) -- we have no Level (suc n) LEM 706 zorn00 with is-o∅ ( & HasMaximal ) -- we have no Level (suc n) LEM
704 ... | no not = record { maximal = ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ; A∋maximal = zorn01 ; ¬maximal<x = zorn02 } where 707 ... | no not = record { maximal = ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ; A∋maximal = zorn01 ; ¬maximal<x = zorn02 } where
705 -- yes we have the maximal 708 -- yes we have the maximal
714 nmx : ¬ Maximal A 717 nmx : ¬ Maximal A
715 nmx mx = ∅< {HasMaximal} zc5 ( ≡o∅→=od∅ ¬Maximal ) where 718 nmx mx = ∅< {HasMaximal} zc5 ( ≡o∅→=od∅ ¬Maximal ) where
716 zc5 : odef A (& (Maximal.maximal mx)) ∧ (( y : Ordinal ) → odef A y → ¬ (* (& (Maximal.maximal mx)) < * y)) 719 zc5 : odef A (& (Maximal.maximal mx)) ∧ (( y : Ordinal ) → odef A y → ¬ (* (& (Maximal.maximal mx)) < * y))
717 zc5 = ⟪ Maximal.A∋maximal mx , (λ y ay mx<y → Maximal.¬maximal<x mx (subst (λ k → odef A k ) (sym &iso) ay) (subst (λ k → k < * y) *iso mx<y) ) ⟫ 720 zc5 = ⟪ Maximal.A∋maximal mx , (λ y ay mx<y → Maximal.¬maximal<x mx (subst (λ k → odef A k ) (sym &iso) ay) (subst (λ k → k < * y) *iso mx<y) ) ⟫
718 zorn04 : ZChain A (& s) (cf nmx) (& A) 721 zorn04 : ZChain A (& s) (cf nmx) (& A)
719 zorn04 = ZChain1.zc ( SZ1 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as ) (& A)) 722 zorn04 = ZChain1.zc ( SZ1 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as ) )
720 total : IsTotalOrderSet (ZChain.chain zorn04) 723 total : IsTotalOrderSet (ZChain.chain zorn04)
721 total = ZChain1.f-total (SZ1 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as) (& A)) o≤-refl 724 total = ZChain1.f-total (SZ1 (cf nmx) (cf-is-≤-monotonic nmx) (subst (λ k → odef A k ) &iso as) )
722 725
723 -- usage (see filter.agda ) 726 -- usage (see filter.agda )
724 -- 727 --
725 -- _⊆'_ : ( A B : HOD ) → Set n 728 -- _⊆'_ : ( A B : HOD ) → Set n
726 -- _⊆'_ A B = (x : Ordinal ) → odef A x → odef B x 729 -- _⊆'_ A B = (x : Ordinal ) → odef A x → odef B x