{-# OPTIONS --allow-unsolved-metas #-} open import Level open import Ordinals module zorn {n : Level } (O : Ordinals {n}) where open import zf open import logic -- open import partfunc {n} O import OD open import Relation.Nullary open import Relation.Binary open import Data.Empty open import Relation.Binary open import Relation.Binary.Core open import Relation.Binary.PropositionalEquality import BAlgbra open inOrdinal O open OD O open OD.OD open ODAxiom odAxiom import OrdUtil import ODUtil open Ordinals.Ordinals O open Ordinals.IsOrdinals isOrdinal open Ordinals.IsNext isNext open OrdUtil O open ODUtil O import ODC open _∧_ open _∨_ open Bool open HOD record Element (A : HOD) : Set (suc n) where field elm : HOD is-elm : A ∋ elm open Element IsPartialOrderSet : ( A : HOD ) → (_<_ : (x y : HOD) → Set n ) → Set (suc n) IsPartialOrderSet A _<_ = IsStrictPartialOrder _≡A_ _ ¬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) ZChain→¬SUP : (z : ZChain A (& A) _<_ ) → ¬ (SUP A (B z) _<_ ) ZChain→¬SUP z sp = ⊥-elim {!!} where z03 : & (SUP.sup sp) o< osuc (& A) z03 = ordtrans (c<→o< (SUP.A∋maximal sp)) <-osuc z02 : (x : HOD) → B z ∋ x → SUP.sup sp < x → ⊥ z02 x xe s ¬a ¬b c with osuc-≡< s ¬a ¬b c with ODC.∋-p O A (* x) ... | no ¬Ax = {!!} where ... | yes ax with is-o∅ (& (Gtx ax)) ... | yes nogt = ⊥-elim (no-maximal nomx x ⟪ subst (λ k → odef A k) &iso ax , x-is-maximal ⟫ ) where -- no larger element, so it is maximal x-is-maximal : (m : Ordinal) → odef A m → ¬ (* x < * m) x-is-maximal m am = ¬x