comparison src/zorn.agda @ 957:ce42b1c5cf42

MinSup onlu ZChain1 is-max have to be hold all b o< z, by induction
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 03 Nov 2022 19:01:54 +0900
parents a2b13a4b6727
children 33891adf80ea
comparison
equal deleted inserted replaced
956:a2b13a4b6727 957:ce42b1c5cf42
238 ax : odef A x 238 ax : odef A x
239 y : Ordinal 239 y : Ordinal
240 ay : odef B y 240 ay : odef B y
241 x=fy : x ≡ f y 241 x=fy : x ≡ f y
242 242
243 record IsSup (A B : HOD) {x : Ordinal } (xa : odef A x) : Set n where 243 -- record IsSup (A B : HOD) {x : Ordinal } (xa : odef A x) : Set n where
244 -- field
245 -- x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x )
246
247 record IsMinSup (A B : HOD) {x : Ordinal } (xa : odef A x) : Set n where
244 field 248 field
245 x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x ) 249 x≤sup : {y : Ordinal} → odef B y → (y ≡ x ) ∨ (y << x )
246 minsup : { sup1 : Ordinal } → odef A sup1 250 minsup : { sup1 : Ordinal } → odef A sup1
247 → ( {z : Ordinal } → odef B z → (z ≡ sup1 ) ∨ (z << sup1 )) → x o≤ sup1 251 → ( {z : Ordinal } → odef B z → (z ≡ sup1 ) ∨ (z << sup1 )) → x o≤ sup1
248 252
402 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) 406 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)
403 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where 407 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where
404 field 408 field
405 supf : Ordinal → Ordinal 409 supf : Ordinal → Ordinal
406 sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z 410 sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z
407 → IsSup A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) b f) → supf b ≡ b 411 → IsMinSup A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) b f) → supf b ≡ b
408 412
409 asupf : {x : Ordinal } → odef A (supf x) 413 asupf : {x : Ordinal } → odef A (supf x)
410 supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y 414 supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y
411 supf-< : {x y : Ordinal } → supf x o< supf y → supf x << supf y 415 supf-< : {x y : Ordinal } → supf x o< supf y → supf x << supf y
412 supfmax : {x : Ordinal } → z o< x → supf x ≡ supf z 416 supfmax : {x : Ordinal } → z o< x → supf x ≡ supf z
465 469
466 -- ordering is not proved here but in ZChain1 470 -- ordering is not proved here but in ZChain1
467 471
468 IsSup< : {b x : Ordinal } (ab : odef A b ) 472 IsSup< : {b x : Ordinal } (ab : odef A b )
469 → b o< x 473 → b o< x
470 → IsSup A (UnionCF A f mf ay supf x) ab → IsSup A (UnionCF A f mf ay supf b) ab 474 → IsMinSup A (UnionCF A f mf ay supf x) ab → IsMinSup A (UnionCF A f mf ay supf b) ab
471 IsSup< {b} {x} ab b<x is-sup = record { 475 IsSup< {b} {x} ab b<x is-sup = record {
472 x≤sup = λ {z} uz → IsSup.x≤sup is-sup (chain-mono f mf ay supf supf-mono (o<→≤ b<x) uz) 476 x≤sup = λ {z} uz → IsMinSup.x≤sup is-sup (chain-mono f mf ay supf supf-mono (o<→≤ b<x) uz)
473 ; minsup = m07 } where 477 ; minsup = m07 } where
474 m10 : {s : Ordinal } → (odef A s ) 478 m10 : {s : Ordinal } → (odef A s )
475 → ( {w : Ordinal} → odef (UnionCF A f mf ay supf b) w → (w ≡ s) ∨ (w << s) ) 479 → ( {w : Ordinal} → odef (UnionCF A f mf ay supf b) w → (w ≡ s) ∨ (w << s) )
476 → {w : Ordinal} → odef (UnionCF A f mf ay supf x) w → (w ≡ s) ∨ (w << s) 480 → {w : Ordinal} → odef (UnionCF A f mf ay supf x) w → (w ≡ s) ∨ (w << s)
477 m10 {s} as b-is-sup ⟪ aa , ch-init fc ⟫ = ? 481 m10 {s} as b-is-sup ⟪ aa , ch-init fc ⟫ = ?
479 m01 : w <= s 483 m01 : w <= s
480 m01 with trio< (supf u) (supf b) 484 m01 with trio< (supf u) (supf b)
481 ... | tri< a ¬b ¬c = b-is-sup ⟪ aa , ch-is-sup u {w} a is-sup-z fc ⟫ 485 ... | tri< a ¬b ¬c = b-is-sup ⟪ aa , ch-is-sup u {w} a is-sup-z fc ⟫
482 ... | tri≈ ¬a b ¬c = ? 486 ... | tri≈ ¬a b ¬c = ?
483 ... | tri> ¬a ¬b c = ? 487 ... | tri> ¬a ¬b c = ?
484 -- <=-trans (IsSup.x≤sup is-sup ⟪ aa , ch-is-sup u u<x is-sup-z fc ⟫) b<=s 488 -- <=-trans (IsMinSup.x≤sup is-sup ⟪ aa , ch-is-sup u u<x is-sup-z fc ⟫) b<=s
485 m07 : {s : Ordinal} → odef A s → ({z : Ordinal} → 489 m07 : {s : Ordinal} → odef A s → ({z : Ordinal} →
486 odef (UnionCF A f mf ay supf b) z → (z ≡ s) ∨ (z << s)) → b o≤ s 490 odef (UnionCF A f mf ay supf b) z → (z ≡ s) ∨ (z << s)) → b o≤ s
487 m07 {s} as b-is-sup = IsSup.minsup is-sup as (m10 as b-is-sup ) 491 m07 {s} as b-is-sup = IsMinSup.minsup is-sup as (m10 as b-is-sup )
488 492
489 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) 493 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)
490 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where 494 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where
491 supf = ZChain.supf zc 495 supf = ZChain.supf zc
492 field 496 field
493 is-max : {a b : Ordinal } → (ca : odef (UnionCF A f mf ay supf z) a ) → supf b o< supf z → (ab : odef A b) 497 is-max : {a b : Ordinal } → (ca : odef (UnionCF A f mf ay supf z) a ) → supf b o< supf z → (ab : odef A b)
494 → HasPrev A (UnionCF A f mf ay supf z) b f ∨ IsSup A (UnionCF A f mf ay supf z) ab 498 → HasPrev A (UnionCF A f mf ay supf z) b f ∨ IsMinSup A (UnionCF A f mf ay supf b) ab
495 → * a < * b → odef ((UnionCF A f mf ay supf z)) b 499 → * a < * b → odef ((UnionCF A f mf ay supf z)) b
496 order : {b s z1 : Ordinal} → b o< & A → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b) 500 order : {b s z1 : Ordinal} → b o< & A → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b)
497 501
498 502
499 record Maximal ( A : HOD ) : Set (Level.suc n) where 503 record Maximal ( A : HOD ) : Set (Level.suc n) where
665 px = Oprev.oprev op 669 px = Oprev.oprev op
666 zc-b<x : {b : Ordinal } → ZChain.supf zc b o< ZChain.supf zc x → b o< osuc px 670 zc-b<x : {b : Ordinal } → ZChain.supf zc b o< ZChain.supf zc x → b o< osuc px
667 zc-b<x {b} lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) (ZChain.supf-inject zc lt ) 671 zc-b<x {b} lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) (ZChain.supf-inject zc lt )
668 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a → 672 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a →
669 ZChain.supf zc b o< ZChain.supf zc x → (ab : odef A b) → 673 ZChain.supf zc b o< ZChain.supf zc x → (ab : odef A b) →
670 HasPrev A (UnionCF A f mf ay supf x) b f ∨ IsSup A (UnionCF A f mf ay supf x) ab → 674 HasPrev A (UnionCF A f mf ay supf x) b f ∨ IsMinSup A (UnionCF A f mf ay supf b) ab →
671 * a < * b → odef (UnionCF A f mf ay supf x) b 675 * a < * b → odef (UnionCF A f mf ay supf x) b
672 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P 676 is-max {a} {b} ua b<x ab P a<b with ODC.or-exclude O P
673 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b 677 is-max {a} {b} ua b<x ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b
674 is-max {a} {b} ua sb<sx ab P a<b | case2 is-sup 678 is-max {a} {b} ua sb<sx ab P a<b | case2 is-sup
675 = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where 679 = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where
680 m04 : ¬ HasPrev A (UnionCF A f mf ay supf b) b f 684 m04 : ¬ HasPrev A (UnionCF A f mf ay supf b) b f
681 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = 685 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay =
682 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } ) 686 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) ; x=fy = HasPrev.x=fy nhp } )
683 m05 : ZChain.supf zc b ≡ b 687 m05 : ZChain.supf zc b ≡ b
684 m05 = ZChain.sup=u zc ab (o<→≤ (z09 ab) ) 688 m05 = ZChain.sup=u zc ab (o<→≤ (z09 ab) )
685 ⟪ record { x≤sup = λ {z} uz → IsSup.x≤sup (proj2 is-sup) (chain-mono1 (o<→≤ b<x) uz) 689 ⟪ record { x≤sup = λ {z} uz → IsMinSup.x≤sup (proj2 is-sup) ? -- (chain-mono1 (o<→≤ b<x) uz)
686 ; minsup = m07 } , m04 ⟫ where 690 ; minsup = m07 } , m04 ⟫ where
687 m10 : {s : Ordinal } → (odef A s ) 691 m10 : {s : Ordinal } → (odef A s )
688 → ( {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) b) z → (z ≡ s) ∨ (z << s) ) 692 → ( {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) b) z → (z ≡ s) ∨ (z << s) )
689 → {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) z → (z ≡ s) ∨ (z << s) 693 → {z : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) b) z → (z ≡ s) ∨ (z << s)
690 m10 = ? 694 m10 = ?
691 m07 : {s : Ordinal} → odef A s → ({z : Ordinal} → 695 m07 : {s : Ordinal} → odef A s → ({z : Ordinal} →
692 odef (UnionCF A f mf ay (ZChain.supf zc) b) z → (z ≡ s) ∨ (z << s)) → b o≤ s 696 odef (UnionCF A f mf ay (ZChain.supf zc) b) z → (z ≡ s) ∨ (z << s)) → b o≤ s
693 m07 {s} as s-is-sup = IsSup.minsup (proj2 is-sup) as (m10 as s-is-sup) 697 m07 {s} as s-is-sup = ? -- IsSup.minsup (proj2 is-sup) as (m10 as s-is-sup)
694 m08 : {z : Ordinal} → (fcz : FClosure A f y z ) → z <= ZChain.supf zc b 698 m08 : {z : Ordinal} → (fcz : FClosure A f y z ) → z <= ZChain.supf zc b
695 m08 {z} fcz = ZChain.fcy<sup zc (o<→≤ b<A) fcz 699 m08 {z} fcz = ZChain.fcy<sup zc (o<→≤ b<A) fcz
696 m09 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b 700 m09 : {s z1 : Ordinal} → ZChain.supf zc s o< ZChain.supf zc b
697 → FClosure A f (ZChain.supf zc s) z1 → z1 <= ZChain.supf zc b 701 → FClosure A f (ZChain.supf zc s) z1 → z1 <= ZChain.supf zc b
698 m09 {s} {z} s<b fcz = order b<A s<b fcz 702 m09 {s} {z} s<b fcz = order b<A s<b fcz
699 m06 : ChainP A f mf ay supf b 703 m06 : ChainP A f mf ay supf b
700 m06 = record { fcy<sup = m08 ; order = m09 ; supu=u = m05 } 704 m06 = record { fcy<sup = m08 ; order = m09 ; supu=u = m05 }
701 ... | no lim = record { is-max = is-max ; order = order } where 705 ... | no lim = record { is-max = is-max ; order = order } where
702 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a → 706 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a →
703 ZChain.supf zc b o< ZChain.supf zc x → (ab : odef A b) → 707 ZChain.supf zc b o< ZChain.supf zc x → (ab : odef A b) →
704 HasPrev A (UnionCF A f mf ay supf x) b f ∨ IsSup A (UnionCF A f mf ay supf x) ab → 708 HasPrev A (UnionCF A f mf ay supf x) b f ∨ IsMinSup A (UnionCF A f mf ay supf b) ab →
705 * a < * b → odef (UnionCF A f mf ay supf x) b 709 * a < * b → odef (UnionCF A f mf ay supf x) b
706 is-max {a} {b} ua sb<sx ab P a<b with ODC.or-exclude O P 710 is-max {a} {b} ua sb<sx ab P a<b with ODC.or-exclude O P
707 is-max {a} {b} ua sb<sx ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b 711 is-max {a} {b} ua sb<sx ab P a<b | case1 has-prev = is-max-hp x {a} {b} ua ab has-prev a<b
708 is-max {a} {b} ua sb<sx ab P a<b | case2 is-sup with IsSup.x≤sup (proj2 is-sup) (init-uchain A f mf ay ) 712 is-max {a} {b} ua sb<sx ab P a<b | case2 is-sup with IsMinSup.x≤sup (proj2 is-sup) (init-uchain A f mf ay )
709 ... | case1 b=y = ⟪ subst (λ k → odef A k ) b=y ay , ch-init (subst (λ k → FClosure A f y k ) b=y (init ay refl )) ⟫ 713 ... | case1 b=y = ⟪ subst (λ k → odef A k ) b=y ay , ch-init (subst (λ k → FClosure A f y k ) b=y (init ay refl )) ⟫
710 ... | case2 y<b = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where 714 ... | case2 y<b = ⟪ ab , ch-is-sup b sb<sx m06 (subst (λ k → FClosure A f k b) (sym m05) (init ab refl)) ⟫ where
711 m09 : b o< & A 715 m09 : b o< & A
712 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab)) 716 m09 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab))
713 b<x : b o< x 717 b<x : b o< x
721 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay = 725 m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay =
722 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp) 726 chain-mono1 (o<→≤ b<x) (HasPrev.ay nhp)
723 ; x=fy = HasPrev.x=fy nhp } ) 727 ; x=fy = HasPrev.x=fy nhp } )
724 m05 : ZChain.supf zc b ≡ b 728 m05 : ZChain.supf zc b ≡ b
725 m05 = ZChain.sup=u zc ab (o<→≤ m09) 729 m05 = ZChain.sup=u zc ab (o<→≤ m09)
726 ⟪ record { x≤sup = λ lt → IsSup.x≤sup (proj2 is-sup) (chain-mono1 (o<→≤ b<x) lt ) 730 ⟪ record { x≤sup = λ lt → IsMinSup.x≤sup (proj2 is-sup) ? -- (chain-mono1 (o<→≤ b<x) lt )
727 ; minsup = ? } , m04 ⟫ -- ZChain on x 731 ; minsup = ? } , m04 ⟫ -- ZChain on x
728 m06 : ChainP A f mf ay supf b 732 m06 : ChainP A f mf ay supf b
729 m06 = record { fcy<sup = m07 ; order = m08 ; supu=u = m05 } 733 m06 = record { fcy<sup = m07 ; order = m08 ; supu=u = m05 }
730 734
731 uchain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → HOD 735 uchain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → HOD
746 SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; as = SUP.as sup ; x≤sup = λ lt → SUP.x≤sup sup (B⊆C lt) } 750 SUP⊆ {B} {C} B⊆C sup = record { sup = SUP.sup sup ; as = SUP.as sup ; x≤sup = λ lt → SUP.x≤sup sup (B⊆C lt) }
747 751
748 record xSUP (B : HOD) (x : Ordinal) : Set n where 752 record xSUP (B : HOD) (x : Ordinal) : Set n where
749 field 753 field
750 ax : odef A x 754 ax : odef A x
751 is-sup : IsSup A B ax 755 is-sup : IsMinSup A B ax
752 756
753 -- 757 --
754 -- create all ZChains under o< x 758 -- create all ZChains under o< x
755 -- 759 --
756 760
1231 ... | tri> ¬a ¬b c = zc36 ¬b 1235 ... | tri> ¬a ¬b c = zc36 ¬b
1232 ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } where 1236 ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } where
1233 zc37 : MinSUP A (UnionCF A f mf ay supf0 z) 1237 zc37 : MinSUP A (UnionCF A f mf ay supf0 z)
1234 zc37 = record { sup = ? ; asm = ? ; x≤sup = ? } 1238 zc37 = record { sup = ? ; asm = ? ; x≤sup = ? }
1235 sup=u : {b : Ordinal} (ab : odef A b) → 1239 sup=u : {b : Ordinal} (ab : odef A b) →
1236 b o≤ x → IsSup A (UnionCF A f mf ay supf0 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf0 b) b f ) → supf0 b ≡ b 1240 b o≤ x → IsMinSup A (UnionCF A f mf ay supf0 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf0 b) b f ) → supf0 b ≡ b
1237 sup=u {b} ab b≤x is-sup with trio< b px 1241 sup=u {b} ab b≤x is-sup with trio< b px
1238 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsSup.x≤sup (proj1 is-sup) lt ; minsup = ? } , proj2 is-sup ⟫ 1242 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsMinSup.x≤sup (proj1 is-sup) lt ; minsup = ? } , proj2 is-sup ⟫
1239 ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsSup.x≤sup (proj1 is-sup) lt ; minsup = ? } , proj2 is-sup ⟫ 1243 ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsMinSup.x≤sup (proj1 is-sup) lt ; minsup = ? } , proj2 is-sup ⟫
1240 ... | tri> ¬a ¬b px<b = zc31 ? where 1244 ... | tri> ¬a ¬b px<b = zc31 ? where
1241 zc30 : x ≡ b 1245 zc30 : x ≡ b
1242 zc30 with osuc-≡< b≤x 1246 zc30 with osuc-≡< b≤x
1243 ... | case1 eq = sym (eq) 1247 ... | case1 eq = sym (eq)
1244 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) 1248 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ )
1245 zcsup : xSUP (UnionCF A f mf ay supf0 px) x 1249 zcsup : xSUP (UnionCF A f mf ay supf0 px) x
1246 zcsup with zc30 1250 zcsup with zc30
1247 ... | refl = record { ax = ab ; is-sup = record { x≤sup = λ {w} lt → 1251 ... | refl = record { ax = ab ; is-sup = record { x≤sup = λ {w} lt →
1248 IsSup.x≤sup (proj1 is-sup) ? ; minsup = ? } } 1252 IsMinSup.x≤sup (proj1 is-sup) ? ; minsup = ? } }
1249 zc31 : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A (UnionCF A f mf ay supf0 px) x f) → supf0 b ≡ b 1253 zc31 : ( (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A (UnionCF A f mf ay supf0 px) x f) → supf0 b ≡ b
1250 zc31 (case1 ¬sp=x) with zc30 1254 zc31 (case1 ¬sp=x) with zc30
1251 ... | refl = ⊥-elim (¬sp=x zcsup ) 1255 ... | refl = ⊥-elim (¬sp=x zcsup )
1252 zc31 (case2 hasPrev ) with zc30 1256 zc31 (case2 hasPrev ) with zc30
1253 ... | refl = ⊥-elim ( proj2 is-sup record { ax = HasPrev.ax hasPrev ; y = HasPrev.y hasPrev 1257 ... | refl = ⊥-elim ( proj2 is-sup record { ax = HasPrev.ax hasPrev ; y = HasPrev.y hasPrev
1335 sis {z} z≤x with trio< z x 1339 sis {z} z≤x with trio< z x
1336 ... | tri< a ¬b ¬c = {!!} where 1340 ... | tri< a ¬b ¬c = {!!} where
1337 zc8 = ZChain.supf-is-minsup (pzc z a) {!!} 1341 zc8 = ZChain.supf-is-minsup (pzc z a) {!!}
1338 ... | tri≈ ¬a b ¬c = {!!} 1342 ... | tri≈ ¬a b ¬c = {!!}
1339 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) 1343 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x ))
1340 sup=u : {b : Ordinal} (ab : odef A b) → b o≤ x → IsSup A (UnionCF A f mf ay supf1 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf1 b) b f ) → supf1 b ≡ b 1344 sup=u : {b : Ordinal} (ab : odef A b) → b o≤ x → IsMinSup A (UnionCF A f mf ay supf1 b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf1 b) b f ) → supf1 b ≡ b
1341 sup=u {z} ab z≤x is-sup with trio< z x 1345 sup=u {z} ab z≤x is-sup with trio< z x
1342 ... | tri< a ¬b ¬c = ? -- ZChain.sup=u (pzc (osuc b) (ob<x lim a)) ab {!!} record { x≤sup = {!!} } 1346 ... | tri< a ¬b ¬c = ? -- ZChain.sup=u (pzc (osuc b) (ob<x lim a)) ab {!!} record { x≤sup = {!!} }
1343 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?) ?) ab {!!} record { x≤sup = {!!} } 1347 ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?) ?) ab {!!} record { x≤sup = {!!} }
1344 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) 1348 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x ))
1345 1349
1347 zc5 with ODC.∋-p O A (* x) 1351 zc5 with ODC.∋-p O A (* x)
1348 ... | no noax = no-extension {!!} -- ¬ A ∋ p, just skip 1352 ... | no noax = no-extension {!!} -- ¬ A ∋ p, just skip
1349 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain x f ) 1353 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain x f )
1350 -- we have to check adding x preserve is-max ZChain A y f mf x 1354 -- we have to check adding x preserve is-max ZChain A y f mf x
1351 ... | case1 pr = no-extension {!!} 1355 ... | case1 pr = no-extension {!!}
1352 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax ) 1356 ... | case2 ¬fy<x with ODC.p∨¬p O (IsMinSup A pchain ax )
1353 ... | case1 is-sup = ? -- record { supf = supf1 ; sup=u = {!!} 1357 ... | case1 is-sup = ? -- record { supf = supf1 ; sup=u = {!!}
1354 -- ; sup = {!!} ; supf-is-sup = {!!} ; supf-mono = {!!}; asupf = {!!} } -- where -- x is a sup of (zc ?) 1358 -- ; sup = {!!} ; supf-is-sup = {!!} ; supf-mono = {!!}; asupf = {!!} } -- where -- x is a sup of (zc ?)
1355 ... | case2 ¬x=sup = no-extension {!!} -- x is not f y' nor sup of former ZChain from y -- no extention 1359 ... | case2 ¬x=sup = no-extension {!!} -- x is not f y' nor sup of former ZChain from y -- no extention
1356 1360
1357 --- 1361 ---
1385 sp : Ordinal 1389 sp : Ordinal
1386 sp = & (SUP.sup sp1) 1390 sp = & (SUP.sup sp1)
1387 asp : odef A sp 1391 asp : odef A sp
1388 asp = SUP.as sp1 1392 asp = SUP.as sp1
1389 z10 : {a b : Ordinal } → (ca : odef chain a ) → supf b o< supf (& A) → (ab : odef A b ) 1393 z10 : {a b : Ordinal } → (ca : odef chain a ) → supf b o< supf (& A) → (ab : odef A b )
1390 → HasPrev A chain b f ∨ IsSup A chain {b} ab 1394 → HasPrev A chain b f ∨ IsMinSup A (UnionCF A f mf ab (ZChain.supf zc) b) ab
1391 → * a < * b → odef chain b 1395 → * a < * b → odef chain b
1392 z10 = ZChain1.is-max (SZ1 f mf as0 zc (& A) ) 1396 z10 = ? -- ZChain1.is-max (SZ1 f mf as0 zc (& A) )
1393 z22 : sp o< & A 1397 z22 : sp o< & A
1394 z22 = z09 asp 1398 z22 = z09 asp
1395 x≤sup : {x : HOD} → chain ∋ x → (x ≡ SUP.sup sp1 ) ∨ (x < SUP.sup sp1 ) 1399 x≤sup : {x : HOD} → chain ∋ x → (x ≡ SUP.sup sp1 ) ∨ (x < SUP.sup sp1 )
1396 x≤sup bz = SUP.x≤sup sp1 bz 1400 x≤sup bz = SUP.x≤sup sp1 bz
1397 z12 : odef chain sp 1401 z12 : odef chain sp
1401 (case2 z19 ) z13 where 1405 (case2 z19 ) z13 where
1402 z13 : * (& s) < * sp 1406 z13 : * (& s) < * sp
1403 z13 with x≤sup ( ZChain.chain∋init zc ) 1407 z13 with x≤sup ( ZChain.chain∋init zc )
1404 ... | case1 eq = ⊥-elim ( ne (cong (&) eq) ) 1408 ... | case1 eq = ⊥-elim ( ne (cong (&) eq) )
1405 ... | case2 lt = subst₂ (λ j k → j < k ) (sym *iso) (sym *iso) lt 1409 ... | case2 lt = subst₂ (λ j k → j < k ) (sym *iso) (sym *iso) lt
1406 z19 : IsSup A chain {& (SUP.sup sp1)} (SUP.as sp1) 1410 z19 : IsMinSup A (UnionCF A f mf as0 (ZChain.supf zc) sp) asp
1407 z19 = record { x≤sup = z20 ; minsup = ? } where 1411 z19 = record { x≤sup = ? ; minsup = ? } where
1408 z20 : {y : Ordinal} → odef chain y → (y ≡ & (SUP.sup sp1)) ∨ (y << & (SUP.sup sp1)) 1412 z20 : {y : Ordinal} → odef chain y → (y ≡ & (SUP.sup sp1)) ∨ (y << & (SUP.sup sp1))
1409 z20 {y} zy with x≤sup (subst (λ k → odef chain k ) (sym &iso) zy) 1413 z20 {y} zy with x≤sup (subst (λ k → odef chain k ) (sym &iso) zy)
1410 ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso ( cong (&) y=p )) 1414 ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso ( cong (&) y=p ))
1411 ... | case2 y<p = case2 (subst (λ k → * y < k ) (sym *iso) y<p ) 1415 ... | case2 y<p = case2 (subst (λ k → * y < k ) (sym *iso) y<p )
1412 ztotal : IsTotalOrderSet (ZChain.chain zc) 1416 ztotal : IsTotalOrderSet (ZChain.chain zc)
1531 sz<<c : {z : Ordinal } → z o< & A → supf z <= mc 1535 sz<<c : {z : Ordinal } → z o< & A → supf z <= mc
1532 sz<<c z<A = MinSUP.x≤sup msp1 (ZChain.csupf zc (z09 (ZChain.asupf zc) )) 1536 sz<<c z<A = MinSUP.x≤sup msp1 (ZChain.csupf zc (z09 (ZChain.asupf zc) ))
1533 1537
1534 sc=c : supf mc ≡ mc 1538 sc=c : supf mc ≡ mc
1535 sc=c = ZChain.sup=u zc (MinSUP.asm msp1) (o<→≤ (∈∧P→o< ⟪ MinSUP.asm msp1 , lift true ⟫ )) ⟪ is-sup , not-hasprev ⟫ where 1539 sc=c = ZChain.sup=u zc (MinSUP.asm msp1) (o<→≤ (∈∧P→o< ⟪ MinSUP.asm msp1 , lift true ⟫ )) ⟪ is-sup , not-hasprev ⟫ where
1536 is-sup : IsSup A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) mc) (MinSUP.asm msp1) 1540 is-sup : IsMinSup A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) mc) (MinSUP.asm msp1)
1537 is-sup = record { x≤sup = λ zy → MinSUP.x≤sup msp1 (chain-mono (cf nmx) (cf-is-≤-monotonic nmx) as0 supf (ZChain.supf-mono zc) (o<→≤ mc<A) zy ) 1541 is-sup = record { x≤sup = λ zy → MinSUP.x≤sup msp1 (chain-mono (cf nmx) (cf-is-≤-monotonic nmx) as0 supf (ZChain.supf-mono zc) (o<→≤ mc<A) zy )
1538 ; minsup = ? } 1542 ; minsup = ? }
1539 not-hasprev : ¬ HasPrev A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) mc) mc (cf nmx) 1543 not-hasprev : ¬ HasPrev A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) mc) mc (cf nmx)
1540 not-hasprev record { ax = ax ; y = y ; ay = ⟪ ua1 , ch-init fc ⟫ ; x=fy = x=fy } = ⊥-elim ( <-irr z31 z30 ) where 1544 not-hasprev record { ax = ax ; y = y ; ay = ⟪ ua1 , ch-init fc ⟫ ; x=fy = x=fy } = ⊥-elim ( <-irr z31 z30 ) where
1541 z30 : * mc < * (cf nmx mc) 1545 z30 : * mc < * (cf nmx mc)
1551 z32 : * (supf mc) < * (cf nmx (cf nmx y)) 1555 z32 : * (supf mc) < * (cf nmx (cf nmx y))
1552 z32 = ftrans<=-< z31 (subst (λ k → * mc < * k ) (cong (cf nmx) x=fy) z30 ) 1556 z32 = ftrans<=-< z31 (subst (λ k → * mc < * k ) (cong (cf nmx) x=fy) z30 )
1553 z48 : ( * (cf nmx (cf nmx y)) ≡ * (supf mc)) ∨ (* (cf nmx (cf nmx y)) < * (supf mc) ) 1557 z48 : ( * (cf nmx (cf nmx y)) ≡ * (supf mc)) ∨ (* (cf nmx (cf nmx y)) < * (supf mc) )
1554 z48 = <=to≤ (ZChain1.order (SZ1 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc (& A)) mc<A u<x (fsuc _ ( fsuc _ fc ))) 1558 z48 = <=to≤ (ZChain1.order (SZ1 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc (& A)) mc<A u<x (fsuc _ ( fsuc _ fc )))
1555 1559
1556 is-sup : IsSup A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) d) (MinSUP.asm spd) 1560 is-sup : IsMinSup A (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) d) (MinSUP.asm spd)
1557 is-sup = record { x≤sup = z22 ; minsup = ? } where 1561 is-sup = record { x≤sup = z22 ; minsup = ? } where
1558 z23 : {z : Ordinal } → odef (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc) z → (z ≡ MinSUP.sup spd) ∨ (z << MinSUP.sup spd) 1562 z23 : {z : Ordinal } → odef (uchain (cf nmx) (cf-is-≤-monotonic nmx) asc) z → (z ≡ MinSUP.sup spd) ∨ (z << MinSUP.sup spd)
1559 z23 lt = MinSUP.x≤sup spd lt 1563 z23 lt = MinSUP.x≤sup spd lt
1560 z22 : {y : Ordinal} → odef (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) d) y → 1564 z22 : {y : Ordinal} → odef (UnionCF A (cf nmx) (cf-is-≤-monotonic nmx) as0 (ZChain.supf zc) d) y →
1561 (y ≡ MinSUP.sup spd) ∨ (y << MinSUP.sup spd) 1565 (y ≡ MinSUP.sup spd) ∨ (y << MinSUP.sup spd)