Mercurial > hg > Members > kono > Proof > ZF-in-agda
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) |