comparison src/zorn.agda @ 490:00c71d1dc316

IsPartialOrder
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 08 Apr 2022 22:03:01 +0900
parents dc7a95dd66c4
children 646831f6b06d
comparison
equal deleted inserted replaced
489:dc7a95dd66c4 490:00c71d1dc316
52 52
53 PartialOrderSet : ( A : HOD ) → (_<_ : (x y : HOD) → Set n ) → Set (suc n) 53 PartialOrderSet : ( A : HOD ) → (_<_ : (x y : HOD) → Set n ) → Set (suc n)
54 PartialOrderSet A _<_ = (a b : Element A) 54 PartialOrderSet A _<_ = (a b : Element A)
55 → (elm a < elm b → ((¬ elm b < elm a) ∧ (¬ (elm a ≡ elm b) ))) ∧ (elm a ≡ elm b → (¬ elm a < elm b) ∧ (¬ elm b < elm a)) 55 → (elm a < elm b → ((¬ elm b < elm a) ∧ (¬ (elm a ≡ elm b) ))) ∧ (elm a ≡ elm b → (¬ elm a < elm b) ∧ (¬ elm b < elm a))
56 56
57 IsPartialOrderSet : ( A : HOD ) → (_<_ : (x y : HOD) → Set n ) → Set (suc n)
58 IsPartialOrderSet A _<_ = IsPartialOrder _<A_ _≡A_ where
59 _<A_ : (x y : Element A ) → Set n
60 x <A y = elm x < elm y
61 _≡A_ : (x y : Element A ) → Set (suc n)
62 x ≡A y = elm x ≡ elm y
63
64 IsTotalOrderSet : ( A : HOD ) → (_<_ : (x y : HOD) → Set n ) → Set (suc n)
65 IsTotalOrderSet A _<_ = IsTotalOrder _<A_ _≡A_ where
66 _<A_ : (x y : Element A ) → Set n
67 x <A y = elm x < elm y
68 _≡A_ : (x y : Element A ) → Set (suc n)
69 x ≡A y = elm x ≡ elm y
70
57 me : { A a : HOD } → A ∋ a → Element A 71 me : { A a : HOD } → A ∋ a → Element A
58 me {A} {a} lt = record { elm = a ; is-elm = lt } 72 me {A} {a} lt = record { elm = a ; is-elm = lt }
59 73
60 record SUP ( A B : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where 74 record SUP ( A B : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where
61 field 75 field
75 record ZChain ( A : HOD ) (y : Ordinal) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where 89 record ZChain ( A : HOD ) (y : Ordinal) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where
76 field 90 field
77 fb : (x : Ordinal ) → x o< y → HOD 91 fb : (x : Ordinal ) → x o< y → HOD
78 A∋fb : (ox : Ordinal ) → (x<y : ox o< y ) → A ∋ fb ox x<y 92 A∋fb : (ox : Ordinal ) → (x<y : ox o< y ) → A ∋ fb ox x<y
79 monotonic : {ox oz : Ordinal } → (x<y : ox o< y ) → (z<y : oz o< y ) → ox o< oz → fb ox x<y < fb oz z<y 93 monotonic : {ox oz : Ordinal } → (x<y : ox o< y ) → (z<y : oz o< y ) → ox o< oz → fb ox x<y < fb oz z<y
80 injection : {ox oz : Ordinal } → (x<y : ox o< y ) → (z<y : oz o< y ) → fb ox x<y ≡ fb oz z<y → ox ≡ oz
81 94
82 Zorn-lemma : { A : HOD } → { _<_ : (x y : HOD) → Set n } 95 Zorn-lemma : { A : HOD } → { _<_ : (x y : HOD) → Set n }
83 → o∅ o< & A 96 → o∅ o< & A
84 → PartialOrderSet A _<_ 97 → PartialOrderSet A _<_
85 → ( ( B : HOD) → (B⊆A : B ⊆ A) → TotalOrderSet B _<_ → SUP A B _<_ ) -- SUP condition 98 → ( ( B : HOD) → (B⊆A : B ⊆ A) → TotalOrderSet B _<_ → SUP A B _<_ ) -- SUP condition
129 → obx z x ≡ obx z y → bx<A z x ≅ bx<A z y 142 → obx z x ≡ obx z y → bx<A z x ≅ bx<A z y
130 z12 z {a} {b} x y eq = {!!} 143 z12 z {a} {b} x y eq = {!!}
131 bx-inject : (z : ZChain A (& A) _<_ ) → {x y : Element (B z)} → BX.bx (is-elm x) ≡ BX.bx (is-elm y) → elm x ≡ elm y 144 bx-inject : (z : ZChain A (& A) _<_ ) → {x y : Element (B z)} → BX.bx (is-elm x) ≡ BX.bx (is-elm y) → elm x ≡ elm y
132 bx-inject z {x} {y} eq = begin 145 bx-inject z {x} {y} eq = begin
133 elm x ≡⟨ {!!} ⟩ 146 elm x ≡⟨ {!!} ⟩
134 {!!} ≡⟨ cong (λ k → {!!} ) ( ZChain.injection z {!!} {!!} ? ) ⟩ 147 {!!} ≡⟨ cong (λ k → {!!} ) {!!} ⟩
135 {!!} ≡⟨ {!!} ⟩ 148 {!!} ≡⟨ {!!} ⟩
136 elm y ∎ where open ≡-Reasoning 149 elm y ∎ where open ≡-Reasoning
137 B-is-total : (z : ZChain A (& A) _<_ ) → TotalOrderSet (B z) _<_ 150 B-is-total : (z : ZChain A (& A) _<_ ) → TotalOrderSet (B z) _<_
138 B-is-total z x y with trio< (obx z (is-elm x)) (obx z (is-elm y)) 151 B-is-total z x y with trio< (obx z (is-elm x)) (obx z (is-elm y))
139 ... | tri< a ¬b ¬c = tri< z10 (λ eq → proj1 (proj2 (PO-B z x y) eq ) z10) (λ ¬c → proj1 (proj1 (PO-B z y x) ¬c ) z10) where 152 ... | tri< a ¬b ¬c = tri< z10 (λ eq → proj1 (proj2 (PO-B z x y) eq ) z10) (λ ¬c → proj1 (proj1 (PO-B z y x) ¬c ) z10) where
140 z10 : elm x < elm y 153 z10 : elm x < elm y
141 z10 = bx-monotonic z {x} {y} a 154 z10 = bx-monotonic z {x} {y} a
142 ... | tri≈ ¬a b ¬c = tri≈ {!!} {!!} {!!} 155 ... | tri≈ ¬a b ¬c = tri≈ {!!} (bx-inject z {x} {y} b) {!!}
143 ... | tri> ¬a ¬b c = tri> (λ ¬a → proj1 (proj1 (PO-B z x y) ¬a ) (bx-monotonic z {y} {x} c) ) (λ eq → proj2 (proj2 (PO-B z x y) eq ) (bx-monotonic z {y} {x} c)) (bx-monotonic z {y} {x} c) 156 ... | tri> ¬a ¬b c = tri> (λ ¬a → proj1 (proj1 (PO-B z x y) ¬a ) (bx-monotonic z {y} {x} c) ) (λ eq → proj2 (proj2 (PO-B z x y) eq ) (bx-monotonic z {y} {x} c)) (bx-monotonic z {y} {x} c)
144 ZChain→¬SUP : (z : ZChain A (& A) _<_ ) → ¬ (SUP A (B z) _<_ ) 157 ZChain→¬SUP : (z : ZChain A (& A) _<_ ) → ¬ (SUP A (B z) _<_ )
145 ZChain→¬SUP z sp = ⊥-elim {!!} where 158 ZChain→¬SUP z sp = ⊥-elim {!!} where
146 z03 : & (SUP.sup sp) o< osuc (& A) 159 z03 : & (SUP.sup sp) o< osuc (& A)
147 z03 = ordtrans (c<→o< (SUP.A∋maximal sp)) <-osuc 160 z03 = ordtrans (c<→o< (SUP.A∋maximal sp)) <-osuc