comparison src/zorn.agda @ 1035:2144ef00cab9

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Dec 2022 11:07:51 +0900
parents 84881efe649b
children 23a8e4d558e0
comparison
equal deleted inserted replaced
1034:84881efe649b 1035:2144ef00cab9
264 ... | case1 eq = trans eq (sym a=b) 264 ... | case1 eq = trans eq (sym a=b)
265 ... | case2 lt = ⊥-elim (<-irr (case1 (cong (λ k → * (f k) ) (sym a=b))) (ftrans<-≤ lt fc00 ) ) where 265 ... | case2 lt = ⊥-elim (<-irr (case1 (cong (λ k → * (f k) ) (sym a=b))) (ftrans<-≤ lt fc00 ) ) where
266 fc00 : b ≤ (f b) 266 fc00 : b ≤ (f b)
267 fc00 = proj1 (mf _ (subst (λ k → odef A k) a=b aa )) 267 fc00 = proj1 (mf _ (subst (λ k → odef A k) a=b aa ))
268 268
269 fc-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) (supf : Ordinal → Ordinal )
270 (order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y)
271 {s s1 a b : Ordinal } ( fa : FClosure A f (supf s) a )( fb : FClosure A f (supf s1) b ) → Tri (* a < * b) (* a ≡ * b) (* b < * a )
272 fc-total A f mf supf order {xa} {xb} {a} {b} ca cb with trio< xa xb
273 ... | tri< a₁ ¬b ¬c with ≤-ftrans (order a₁ ca ) (s≤fc (supf xb) f mf cb )
274 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
275 ct00 : * a ≡ * b
276 ct00 = cong (*) eq1
277 ... | case2 a<b = tri< a<b (λ eq → <-irr (case1 (sym eq)) a<b ) (λ lt → <-irr (case2 a<b ) lt)
278 fc-total A f mf supf order {xa} {xb} {a} {b} ca cb | tri≈ _ refl _ = fcn-cmp _ f mf ca cb
279 fc-total A f mf supf order {xa} {xb} {a} {b} ca cb | tri> ¬a ¬b c with ≤-ftrans (order c cb ) (s≤fc (supf xa) f mf ca )
280 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
281 ct00 : * a ≡ * b
282 ct00 = cong (*) (sym eq1)
283 ... | case2 b<a = tri> (λ lt → <-irr (case2 b<a ) lt) (λ eq → <-irr (case1 eq) b<a ) b<a
284
285 269
286 ∈∧P→o< : {A : HOD } {y : Ordinal} → {P : Set n} → odef A y ∧ P → y o< & A 270 ∈∧P→o< : {A : HOD } {y : Ordinal} → {P : Set n} → odef A y ∧ P → y o< & A
287 ∈∧P→o< {A } {y} p = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) (proj1 p ))) 271 ∈∧P→o< {A } {y} p = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) (proj1 p )))
288 272
289 -- Union of supf z and FClosure A f y 273 -- Union of supf z and FClosure A f y
347 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) 331 record ZChain ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)
348 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where 332 {y : Ordinal} (ay : odef A y) ( z : Ordinal ) : Set (Level.suc n) where
349 field 333 field
350 supf : Ordinal → Ordinal 334 supf : Ordinal → Ordinal
351 335
352 order : {x y w : Ordinal } → x o< y → FClosure A f (supf x) w → w ≤ supf y 336 order : {x y w : Ordinal } → y o≤ z → x o< y → FClosure A f (supf x) w → w ≤ supf y
353 337
354 cfcs : (mf< : <-monotonic-f A f) 338 cfcs : (mf< : <-monotonic-f A f)
355 {a b w : Ordinal } → a o< b → b o≤ z → supf a o< b → FClosure A f (supf a) w → odef (UnionCF A f ay supf b) w 339 {a b w : Ordinal } → a o< b → b o≤ z → supf a o< b → FClosure A f (supf a) w → odef (UnionCF A f ay supf b) w
356 340
357 asupf : {x : Ordinal } → odef A (supf x) 341 asupf : {x : Ordinal } → odef A (supf x)
406 initial {x} x≤z ⟪ aa , ch-init fc ⟫ = s≤fc y f mf fc 390 initial {x} x≤z ⟪ aa , ch-init fc ⟫ = s≤fc y f mf fc
407 initial {x} x≤z ⟪ aa , ch-is-sup u u<x is-sup fc ⟫ = ≤-ftrans (fcy<sup (ordtrans u<x x≤z) (init ay refl)) (s≤fc _ f mf fc) 391 initial {x} x≤z ⟪ aa , ch-is-sup u u<x is-sup fc ⟫ = ≤-ftrans (fcy<sup (ordtrans u<x x≤z) (init ay refl)) (s≤fc _ f mf fc)
408 392
409 f-total : IsTotalOrderSet chain 393 f-total : IsTotalOrderSet chain
410 f-total {a} {b} ⟪ uaa , ch-is-sup ua sua<x sua=ua fca ⟫ ⟪ uab , ch-is-sup ub sub<x sub=ub fcb ⟫ = 394 f-total {a} {b} ⟪ uaa , ch-is-sup ua sua<x sua=ua fca ⟫ ⟪ uab , ch-is-sup ub sub<x sub=ub fcb ⟫ =
411 subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso (fc-total A f mf supf order fca fcb) 395 subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso fc-total where
396 fc-total : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
397 fc-total with trio< ua ub
398 ... | tri< a₁ ¬b ¬c with ≤-ftrans (order (o<→≤ sub<x) a₁ fca ) (s≤fc (supf ub) f mf fcb )
399 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
400 ct00 : * (& a) ≡ * (& b)
401 ct00 = cong (*) eq1
402 ... | case2 a<b = tri< a<b (λ eq → <-irr (case1 (sym eq)) a<b ) (λ lt → <-irr (case2 a<b ) lt)
403 fc-total | tri≈ _ refl _ = fcn-cmp _ f mf fca fcb
404 fc-total | tri> ¬a ¬b c with ≤-ftrans (order (o<→≤ sua<x) c fcb ) (s≤fc (supf ua) f mf fca )
405 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
406 ct00 : * (& a) ≡ * (& b)
407 ct00 = cong (*) (sym eq1)
408 ... | case2 b<a = tri> (λ lt → <-irr (case2 b<a ) lt) (λ eq → <-irr (case1 eq) b<a ) b<a
412 f-total {a} {b} ⟪ uaa , ch-init fca ⟫ ⟪ uab , ch-is-sup ub sub<x sub=ub fcb ⟫ = ft00 where 409 f-total {a} {b} ⟪ uaa , ch-init fca ⟫ ⟪ uab , ch-is-sup ub sub<x sub=ub fcb ⟫ = ft00 where
413 ft01 : (& a) ≤ (& b) → Tri ( a < b) ( a ≡ b) ( b < a ) 410 ft01 : (& a) ≤ (& b) → Tri ( a < b) ( a ≡ b) ( b < a )
414 ft01 (case1 eq) = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym a=b)) lt)) a=b (λ lt → ⊥-elim (<-irr (case1 a=b) lt)) where 411 ft01 (case1 eq) = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym a=b)) lt)) a=b (λ lt → ⊥-elim (<-irr (case1 a=b) lt)) where
415 a=b : a ≡ b 412 a=b : a ≡ b
416 a=b = subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) eq) 413 a=b = subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) eq)
453 450
454 supf-idem : (mf< : <-monotonic-f A f) {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b 451 supf-idem : (mf< : <-monotonic-f A f) {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b
455 supf-idem mf< {b} b≤z sfb≤x = z52 where 452 supf-idem mf< {b} b≤z sfb≤x = z52 where
456 z54 : {w : Ordinal} → odef (UnionCF A f ay supf (supf b)) w → (w ≡ supf b) ∨ (w << supf b) 453 z54 : {w : Ordinal} → odef (UnionCF A f ay supf (supf b)) w → (w ≡ supf b) ∨ (w << supf b)
457 z54 {w} ⟪ aw , ch-init fc ⟫ = fcy<sup b≤z fc 454 z54 {w} ⟪ aw , ch-init fc ⟫ = fcy<sup b≤z fc
458 z54 {w} ⟪ aw , ch-is-sup u u<x su=u fc ⟫ = order su<b fc where 455 z54 {w} ⟪ aw , ch-is-sup u u<x su=u fc ⟫ = order b≤z su<b fc where
459 su<b : u o< b 456 su<b : u o< b
460 su<b = supf-inject (subst (λ k → k o< supf b ) (sym (su=u)) u<x ) 457 su<b = supf-inject (subst (λ k → k o< supf b ) (sym (su=u)) u<x )
461 z52 : supf (supf b) ≡ supf b 458 z52 : supf (supf b) ≡ supf b
462 z52 = sup=u asupf sfb≤x ⟪ record { ax = asupf ; x≤sup = z54 } , IsMinSUP→NotHasPrev asupf z54 ( λ ax → proj1 (mf< _ ax)) ⟫ 459 z52 = sup=u asupf sfb≤x ⟪ record { ax = asupf ; x≤sup = z54 } , IsMinSUP→NotHasPrev asupf z54 ( λ ax → proj1 (mf< _ ax)) ⟫
463 460
853 sfpx≤sp1 = MinSUP.x≤sup sup1 (case2 (init (ZChain.asupf zc {px}) refl )) 850 sfpx≤sp1 = MinSUP.x≤sup sup1 (case2 (init (ZChain.asupf zc {px}) refl ))
854 851
855 m13 : supf0 px o≤ sp1 852 m13 : supf0 px o≤ sp1
856 m13 = IsMinSUP.minsup (ZChain.is-minsup zc o≤-refl ) (MinSUP.as sup1) m14 where 853 m13 = IsMinSUP.minsup (ZChain.is-minsup zc o≤-refl ) (MinSUP.as sup1) m14 where
857 m14 : {z : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) px) z → (z ≡ sp1) ∨ (z << sp1) 854 m14 : {z : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) px) z → (z ≡ sp1) ∨ (z << sp1)
858 m14 {z} ⟪ as , ch-init fc ⟫ = ? 855 m14 {z} ⟪ as , ch-init fc ⟫ = ≤-ftrans (ZChain.fcy<sup zc o≤-refl fc) sfpx≤sp1
859 m14 {z} ⟪ as , ch-is-sup u u<x su=u fc ⟫ = ? 856 m14 {z} ⟪ as , ch-is-sup u u<x su=u fc ⟫ = ≤-ftrans (ZChain.order zc o≤-refl u<x fc) sfpx≤sp1
860 857
861 zc41 : ZChain A f mf ay x 858 zc41 : ZChain A f mf ay x
862 zc41 with zc43 x sp1 859 zc41 with zc43 x sp1
863 zc41 | (case2 sp≤x ) = record { supf = supf1 ; sup=u = ? ; asupf = asupf1 ; supf-mono = supf1-mono ; order = ? 860 zc41 | (case2 sp≤x ) = record { supf = supf1 ; sup=u = ? ; asupf = asupf1 ; supf-mono = supf1-mono ; order = ?
864 ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where 861 ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where
1031 ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ 1028 ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫
1032 ... | case1 ⟪ ua1 , ch-is-sup u u<x su=u fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x su=u (fsuc _ fc₁) ⟫ 1029 ... | case1 ⟪ ua1 , ch-is-sup u u<x su=u fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x su=u (fsuc _ fc₁) ⟫
1033 ... | case2 fc = case2 (fsuc _ fc) 1030 ... | case2 fc = case2 (fsuc _ fc)
1034 zc21 (init asp refl ) = ? 1031 zc21 (init asp refl ) = ?
1035 1032
1036 record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where 1033 is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf1 z) (supf1 z)
1037 field 1034 is-minsup {z} z≤x with osuc-≡< z≤x
1038 tsup : MinSUP A (UnionCF A f ay supf1 z) 1035 ... | case1 z<x = ZChain.is-minsup zc (zc-b<x z<x)
1039 tsup=sup : supf1 z ≡ MinSUP.sup tsup 1036 ... | case2 z=x = ?
1040 1037
1041 sup : {z : Ordinal} → (z≤x : z o≤ x ) → STMP z≤x 1038 order : {a b : Ordinal} {w : Ordinal} →
1042 sup {z} z≤x with trio< z px 1039 b o≤ x → a o< b → FClosure A f (supf1 a) w → w ≤ supf1 b
1043 ... | tri< a ¬b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.as m 1040 order {a} {b} {w} b≤x a<b fc with trio< b px
1044 ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o<→≤ a) ) (ZChain.supf-is-minsup zc (o<→≤ a)) } where 1041 ... | tri< b<px ¬b ¬c = ZChain.order zc (o<→≤ b<px) a<b (fcup fc (o<→≤ (ordtrans a<b b<px) ))
1045 m = ZChain.minsup zc (o<→≤ a) 1042 ... | tri≈ ¬a b=px ¬c = ZChain.order zc (o≤-refl0 b=px) a<b (fcup fc (o<→≤ (subst (λ k → a o< k) b=px a<b )))
1046 ms00 : {x : Ordinal} → odef (UnionCF A f ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m) 1043 ... | tri> ¬a ¬b px<b with trio< a px
1047 ms00 {w} ⟪ az , cp ⟫ = MinSUP.x≤sup m ⟪ az , ? ⟫ 1044 ... | tri< a<px ¬b ¬c = ≤-ftrans (ZChain.order zc o≤-refl a<px fc) sfpx≤sp1 -- supf1 a ≡ supf0 a
1048 ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} → 1045 ... | tri≈ ¬a a=px ¬c = MinSUP.x≤sup sup1 (case2 (subst (λ k → FClosure A f (supf0 k) w) a=px fc ))
1049 odef (UnionCF A f ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2 1046 ... | tri> ¬a ¬b px<a = ⊥-elim (¬p<x<op ⟪ px<a , zc22 ⟫ ) where -- supf1 a ≡ sp1
1050 ms01 {sup2} us P = MinSUP.minsup m us ? 1047 zc22 : a o< osuc px
1051 ... | tri≈ ¬a b ¬c = record { tsup = record { sup = MinSUP.sup m ; asm = MinSUP.as m 1048 zc22 = subst (λ k → a o< k ) (sym (Oprev.oprev=x op)) (ordtrans<-≤ a<b b≤x)
1052 ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o≤-refl0 b) ) (ZChain.supf-is-minsup zc (o≤-refl0 b)) } where
1053 m = ZChain.minsup zc (o≤-refl0 b)
1054 ms00 : {x : Ordinal} → odef (UnionCF A f ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m)
1055 ms00 {x} ux = MinSUP.x≤sup m ?
1056 ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} →
1057 odef (UnionCF A f ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2
1058 ms01 {sup2} us P = MinSUP.minsup m us ?
1059 ... | tri> ¬a ¬b px<z = record { tsup = record { sup = sp1 ; asm = MinSUP.as sup1
1060 ; x≤sup = ms00 ; minsup = ms01 } ; tsup=sup = sf1=sp1 px<z } where
1061 m = sup1
1062 ms00 : {x : Ordinal} → odef (UnionCF A f ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m)
1063 ms00 {x} ux = MinSUP.x≤sup m ?
1064 ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} →
1065 odef (UnionCF A f ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2
1066 ms01 {sup2} us P = MinSUP.minsup m us ?
1067
1068 1049
1069 zc41 | (case1 x<sp ) = record { supf = supf0 ; sup=u = ? ; asupf = ZChain.asupf zc ; supf-mono = ZChain.supf-mono zc ; order = ? 1050 zc41 | (case1 x<sp ) = record { supf = supf0 ; sup=u = ? ; asupf = ZChain.asupf zc ; supf-mono = ZChain.supf-mono zc ; order = ?
1070 ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = cfcs } where 1051 ; supfmax = ? ; sup=u = ? ; is-minsup = ? ; cfcs = cfcs } where
1071 1052
1072 -- supf0 px not is included by the chain 1053 -- supf0 px not is included by the chain
1073 -- supf1 x ≡ supf0 px because of supfmax 1054 -- supf1 x ≡ supf0 px because of supfmax
1074 1055
1075 cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } 1056 cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal }
1170 ... | tri< a ¬b ¬c = zc36 ¬b 1151 ... | tri< a ¬b ¬c = zc36 ¬b
1171 ... | tri> ¬a ¬b c = zc36 ¬b 1152 ... | tri> ¬a ¬b c = zc36 ¬b
1172 ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } where 1153 ... | tri≈ ¬a b ¬c = record { tsup = ? ; tsup=sup = ? } where
1173 zc37 : MinSUP A (UnionCF A f ay supf0 z) 1154 zc37 : MinSUP A (UnionCF A f ay supf0 z)
1174 zc37 = record { sup = ? ; asm = ? ; x≤sup = ? ; minsup = ? } 1155 zc37 = record { sup = ? ; asm = ? ; x≤sup = ? ; minsup = ? }
1156
1157 is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf0 z) (supf0 z)
1158 is-minsup = ?
1159
1175 sup=u : {b : Ordinal} (ab : odef A b) → 1160 sup=u : {b : Ordinal} (ab : odef A b) →
1176 b o≤ x → IsMinSUP A (UnionCF A f ay supf0 b) b ∧ (¬ HasPrev A (UnionCF A f ay supf0 b) f b ) → supf0 b ≡ b 1161 b o≤ x → IsMinSUP A (UnionCF A f ay supf0 b) b ∧ (¬ HasPrev A (UnionCF A f ay supf0 b) f b ) → supf0 b ≡ b
1177 sup=u {b} ab b≤x is-sup with trio< b px 1162 sup=u {b} ab b≤x is-sup with trio< b px
1178 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫ 1163 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫
1179 ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫ 1164 ... | tri≈ ¬a b ¬c = ZChain.sup=u zc ab (o≤-refl0 b) ⟪ record { x≤sup = λ lt → IsMinSUP.x≤sup (proj1 is-sup) lt } , ? ⟫
1187 zc32 : {w : Ordinal } → odef pchainpx w → (w ≡ b) ∨ (w << b) 1172 zc32 : {w : Ordinal } → odef pchainpx w → (w ≡ b) ∨ (w << b)
1188 zc32 = ? 1173 zc32 = ?
1189 1174
1190 ... | no lim with trio< x o∅ 1175 ... | no lim with trio< x o∅
1191 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) 1176 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a )
1192 ... | tri≈ ¬a b ¬c = record { supf = ? } 1177 ... | tri≈ ¬a b ¬c = record { supf = ? ; sup=u = ? ; asupf = ? ; supf-mono = ? ; order = ?
1178 ; supfmax = ? ; is-minsup = ? ; cfcs = ? }
1193 ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf-mono ; order = ? 1179 ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf-mono ; order = ?
1194 ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = cfcs } where 1180 ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where
1195 1181
1196 pzc : {z : Ordinal} → z o< x → ZChain A f mf ay z 1182 pzc : {z : Ordinal} → z o< x → ZChain A f mf ay z
1197 pzc {z} z<x = prev z z<x 1183 pzc {z} z<x = prev z z<x
1198 1184
1199 ysp = MinSUP.sup (ysup f mf ay) 1185 ysp = MinSUP.sup (ysup f mf ay)
1225 ptotalx : IsTotalOrderSet pchainx 1211 ptotalx : IsTotalOrderSet pchainx
1226 ptotalx {a} {b} ia ib = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 1212 ptotalx {a} {b} ia ib = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where
1227 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) ) 1213 uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
1228 uz01 with trio< (IChain.i ia) (IChain.i ib) 1214 uz01 with trio< (IChain.i ia) (IChain.i ib)
1229 ... | tri< ia<ib ¬b ¬c with 1215 ... | tri< ia<ib ¬b ¬c with
1230 ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ib))) ia<ib (ifc≤ ia ib (o<→≤ ia<ib))) (s≤fc _ f mf (IChain.fc ib)) 1216 ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ib))) ? ia<ib (ifc≤ ia ib (o<→≤ ia<ib))) (s≤fc _ f mf (IChain.fc ib))
1231 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where 1217 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
1232 ct00 : * (& a) ≡ * (& b) 1218 ct00 : * (& a) ≡ * (& b)
1233 ct00 = cong (*) eq1 1219 ct00 = cong (*) eq1
1234 ... | case2 lt = tri< lt (λ eq → <-irr (case1 (sym eq)) lt) (λ lt1 → <-irr (case2 lt) lt1) 1220 ... | case2 lt = tri< lt (λ eq → <-irr (case1 (sym eq)) lt) (λ lt1 → <-irr (case2 lt) lt1)
1235 uz01 | tri≈ ¬a ia=ib ¬c = fcn-cmp _ f mf (IChain.fc ia) (subst (λ k → FClosure A f k (& b)) (sym (iceq ia=ib)) (IChain.fc ib)) 1221 uz01 | tri≈ ¬a ia=ib ¬c = fcn-cmp _ f mf (IChain.fc ia) (subst (λ k → FClosure A f k (& b)) (sym (iceq ia=ib)) (IChain.fc ib))
1236 uz01 | tri> ¬a ¬b ib<ia with 1222 uz01 | tri> ¬a ¬b ib<ia with
1237 ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ia))) ib<ia (ifc≤ ib ia (o<→≤ ib<ia))) (s≤fc _ f mf (IChain.fc ia)) 1223 ≤-ftrans (ZChain.order (pzc (ob<x lim (IChain.i<x ia))) ? ib<ia (ifc≤ ib ia (o<→≤ ib<ia))) (s≤fc _ f mf (IChain.fc ia))
1238 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where 1224 ... | case1 eq1 = tri≈ (λ lt → ⊥-elim (<-irr (case1 (sym ct00)) lt)) ct00 (λ lt → ⊥-elim (<-irr (case1 ct00) lt)) where
1239 ct00 : * (& a) ≡ * (& b) 1225 ct00 : * (& a) ≡ * (& b)
1240 ct00 = sym (cong (*) eq1) 1226 ct00 = sym (cong (*) eq1)
1241 ... | case2 lt = tri> (λ lt1 → <-irr (case2 lt) lt1) (λ eq → <-irr (case1 eq) lt) lt 1227 ... | case2 lt = tri> (λ lt1 → <-irr (case2 lt) lt1) (λ eq → <-irr (case1 eq) lt) lt
1242 1228
1284 supf-mono : {x y : Ordinal } → x o≤ y → supf1 x o≤ supf1 y 1270 supf-mono : {x y : Ordinal } → x o≤ y → supf1 x o≤ supf1 y
1285 supf-mono {x} {y} x≤y with trio< y x 1271 supf-mono {x} {y} x≤y with trio< y x
1286 ... | tri< a ¬b ¬c = ? 1272 ... | tri< a ¬b ¬c = ?
1287 ... | tri≈ ¬a b ¬c = ? 1273 ... | tri≈ ¬a b ¬c = ?
1288 ... | tri> ¬a ¬b c = ? 1274 ... | tri> ¬a ¬b c = ?
1275
1276 is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf1 z) (supf1 z)
1277 is-minsup = ?
1289 1278
1290 cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } 1279 cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal }
1291 → a o< b → b o≤ x → supf1 a o< b → FClosure A f (supf1 a) w → odef (UnionCF A f ay supf1 b) w 1280 → a o< b → b o≤ x → supf1 a o< b → FClosure A f (supf1 a) w → odef (UnionCF A f ay supf1 b) w
1292 cfcs mf< {a} {b} {w} a<b b≤x sa<b fc with osuc-≡< b≤x 1281 cfcs mf< {a} {b} {w} a<b b≤x sa<b fc with osuc-≡< b≤x
1293 ... | case1 b=x with trio< a x 1282 ... | case1 b=x with trio< a x
1377 z13 : * (& s) < * sp 1366 z13 : * (& s) < * sp
1378 z13 with MinSUP.x≤sup sp1 ( ZChain.chain∋init zc ? ) 1367 z13 with MinSUP.x≤sup sp1 ( ZChain.chain∋init zc ? )
1379 ... | case1 eq = ⊥-elim ( ne eq ) 1368 ... | case1 eq = ⊥-elim ( ne eq )
1380 ... | case2 lt = lt 1369 ... | case2 lt = lt
1381 z19 : IsSUP A (UnionCF A f ay (ZChain.supf zc) sp) sp 1370 z19 : IsSUP A (UnionCF A f ay (ZChain.supf zc) sp) sp
1382 z19 = record { x≤sup = z20 } where 1371 z19 = record { ax = ? ; x≤sup = z20 } where
1383 z20 : {y : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) sp) y → (y ≡ sp) ∨ (y << sp) 1372 z20 : {y : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) sp) y → (y ≡ sp) ∨ (y << sp)
1384 z20 {y} zy with MinSUP.x≤sup sp1 1373 z20 {y} zy with MinSUP.x≤sup sp1
1385 (subst (λ k → odef chain k ) (sym &iso) (chain-mono f mf as0 supf (ZChain.supf-mono zc) (o<→≤ z22) zy )) 1374 (subst (λ k → odef chain k ) (sym &iso) (chain-mono f mf as0 supf (ZChain.supf-mono zc) (o<→≤ z22) zy ))
1386 ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso y=p ) 1375 ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso y=p )
1387 ... | case2 y<p = case2 (subst (λ k → * k < _ ) &iso y<p ) 1376 ... | case2 y<p = case2 (subst (λ k → * k < _ ) &iso y<p )