Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 1059:bd2a258f309c
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 10 Dec 2022 17:41:17 +0900 |
parents | 12ce8d0224d2 |
children | a09f5e728f92 |
comparison
equal
deleted
inserted
replaced
1058:12ce8d0224d2 | 1059:bd2a258f309c |
---|---|
336 order : {a b w : Ordinal } → b o≤ z → supf a o< supf b → FClosure A f (supf a) w → w ≤ supf b | 336 order : {a b w : Ordinal } → b o≤ z → supf a o< supf b → FClosure A f (supf a) w → w ≤ supf b |
337 | 337 |
338 asupf : {x : Ordinal } → odef A (supf x) | 338 asupf : {x : Ordinal } → odef A (supf x) |
339 supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y | 339 supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y |
340 supfmax : {x : Ordinal } → z o< x → supf x ≡ supf z | 340 supfmax : {x : Ordinal } → z o< x → supf x ≡ supf z |
341 zo≤sz : {x : Ordinal } → x o≤ z → x o≤ supf x | |
341 | 342 |
342 is-minsup : {x : Ordinal } → (x≤z : x o≤ z) → IsMinSUP A (UnionCF A f ay supf x) (supf x) | 343 is-minsup : {x : Ordinal } → (x≤z : x o≤ z) → IsMinSUP A (UnionCF A f ay supf x) (supf x) |
343 sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z | |
344 → IsSUP A (UnionCF A f ay supf b) b → supf b ≡ b | |
345 | 344 |
346 chain : HOD | 345 chain : HOD |
347 chain = UnionCF A f ay supf z | 346 chain = UnionCF A f ay supf z |
348 chain⊆A : chain ⊆' A | 347 chain⊆A : chain ⊆' A |
349 chain⊆A = λ lt → proj1 lt | 348 chain⊆A = λ lt → proj1 lt |
428 ft00 : Tri ( a < b) ( a ≡ b) ( b < a ) | 427 ft00 : Tri ( a < b) ( a ≡ b) ( b < a ) |
429 ft00 = ft01 (≤-ftrans (fcy<sup (o<→≤ sua<x) fcb) (s≤fc {A} _ f mf fca)) | 428 ft00 = ft01 (≤-ftrans (fcy<sup (o<→≤ sua<x) fcb) (s≤fc {A} _ f mf fca)) |
430 f-total {a} {b} ⟪ uaa , ch-init fca ⟫ ⟪ uab , ch-init fcb ⟫ = | 429 f-total {a} {b} ⟪ uaa , ch-init fca ⟫ ⟪ uab , ch-init fcb ⟫ = |
431 subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso (fcn-cmp y f mf fca fcb ) | 430 subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso (fcn-cmp y f mf fca fcb ) |
432 | 431 |
433 supf-idem : {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b | |
434 supf-idem {b} b≤z sfb≤x = z52 where | |
435 z54 : {w : Ordinal} → odef (UnionCF A f ay supf (supf b)) w → (w ≡ supf b) ∨ (w << supf b) | |
436 z54 {w} ⟪ aw , ch-init fc ⟫ = fcy<sup b≤z fc | |
437 z54 {w} ⟪ aw , ch-is-sup u u<x su=u fc ⟫ = order b≤z (subst (λ k → k o< supf b) (sym su=u) u<x) fc where | |
438 u<b : u o< b | |
439 u<b = supf-inject (subst (λ k → k o< supf b ) (sym (su=u)) u<x ) | |
440 z52 : supf (supf b) ≡ supf b | |
441 z52 = sup=u asupf sfb≤x record { ax = asupf ; x≤sup = z54 } | |
442 | |
443 x≤supfx : {x : Ordinal } → x o≤ z → supf x o≤ z → x o≤ supf x | |
444 x≤supfx {x} x≤z sx≤z with x<y∨y≤x (supf x) x | |
445 ... | case2 le = le | |
446 ... | case1 spx<px = ⊥-elim ( <<-irr z45 (proj1 ( mf< (supf x) asupf ))) where | |
447 z46 : odef (UnionCF A f ay supf x) (f (supf x)) | |
448 z46 = ⟪ proj2 ( mf (supf x) asupf ) , ch-is-sup (supf x) spx<px z47 (fsuc _ (init asupf z47 )) ⟫ where | |
449 z47 : supf (supf x) ≡ supf x | |
450 z47 = supf-idem x≤z sx≤z | |
451 z45 : f (supf x) ≤ supf x | |
452 z45 = IsMinSUP.x≤sup (is-minsup x≤z ) z46 | |
453 | |
454 sup=u0 : {b : Ordinal} → (ab : odef A b) → b o≤ z | |
455 → IsSUP A (UnionCF A f ay supf b) b → supf b ≡ b | |
456 sup=u0 {b} ab b≤z is-sup with trio< (supf b) b | |
457 ... | tri< sb<b ¬b ¬c = ⊥-elim ( o≤> z47 sb<b ) where | |
458 z47 : b o≤ supf b | |
459 z47 = x≤supfx b≤z ? | |
460 ... | tri≈ ¬a b ¬c = b | |
461 ... | tri> ¬a ¬b b<sb = ⊥-elim ( o≤> z48 b<sb ) where | |
462 z48 : supf b o≤ b | |
463 z48 = IsMinSUP.minsup (is-minsup b≤z) ab (λ ux → IsSUP.x≤sup is-sup ux ) | |
464 | |
465 supf-mono< : {a b : Ordinal } → b o≤ z → supf a o< supf b → supf a << supf b | 432 supf-mono< : {a b : Ordinal } → b o≤ z → supf a o< supf b → supf a << supf b |
466 supf-mono< {a} {b} b≤z sa<sb with order {a} {b} b≤z sa<sb (init asupf refl) | 433 supf-mono< {a} {b} b≤z sa<sb with order {a} {b} b≤z sa<sb (init asupf refl) |
467 ... | case2 lt = lt | 434 ... | case2 lt = lt |
468 ... | case1 eq = ⊥-elim ( o<¬≡ eq sa<sb ) | 435 ... | case1 eq = ⊥-elim ( o<¬≡ eq sa<sb ) |
469 | 436 |
489 u<a = supf-inject ( osucprev (begin | 456 u<a = supf-inject ( osucprev (begin |
490 osuc (supf u) ≡⟨ cong osuc su=u ⟩ | 457 osuc (supf u) ≡⟨ cong osuc su=u ⟩ |
491 osuc u ≤⟨ osucc (ordtrans<-≤ u<b b≤z ) ⟩ | 458 osuc u ≤⟨ osucc (ordtrans<-≤ u<b b≤z ) ⟩ |
492 z ≤⟨ z≤sa ⟩ | 459 z ≤⟨ z≤sa ⟩ |
493 supf a ∎ )) where open o≤-Reasoning O | 460 supf a ∎ )) where open o≤-Reasoning O |
461 | |
462 sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z | |
463 → IsSUP A (UnionCF A f ay supf b) b → supf b ≡ b | |
464 sup=u {b} ab b≤z is-sup = z50 where | |
465 z48 : supf b o≤ b | |
466 z48 = IsMinSUP.minsup (is-minsup b≤z) ab (λ ux → IsSUP.x≤sup is-sup ux ) | |
467 z50 : supf b ≡ b | |
468 z50 with trio< (supf b) b | |
469 ... | tri< sb<b ¬b ¬c = ⊥-elim ( o≤> z47 sb<b ) where | |
470 z47 : b o≤ supf b | |
471 z47 = zo≤sz b≤z | |
472 ... | tri≈ ¬a b ¬c = b | |
473 ... | tri> ¬a ¬b b<sb = ⊥-elim ( o≤> z48 b<sb ) | |
474 | |
475 supf-idem : {b : Ordinal } → b o≤ z → supf b o≤ z → supf (supf b) ≡ supf b | |
476 supf-idem {b} b≤z sfb≤x = z52 where | |
477 z54 : {w : Ordinal} → odef (UnionCF A f ay supf (supf b)) w → (w ≡ supf b) ∨ (w << supf b) | |
478 z54 {w} ⟪ aw , ch-init fc ⟫ = fcy<sup b≤z fc | |
479 z54 {w} ⟪ aw , ch-is-sup u u<x su=u fc ⟫ = order b≤z (subst (λ k → k o< supf b) (sym su=u) u<x) fc where | |
480 u<b : u o< b | |
481 u<b = supf-inject (subst (λ k → k o< supf b ) (sym (su=u)) u<x ) | |
482 z52 : supf (supf b) ≡ supf b | |
483 z52 = sup=u asupf sfb≤x record { ax = asupf ; x≤sup = z54 } | |
484 | |
485 x≤supfx : {x : Ordinal } → x o≤ z → supf x o≤ z → x o≤ supf x | |
486 x≤supfx {x} x≤z sx≤z with x<y∨y≤x (supf x) x | |
487 ... | case2 le = le | |
488 ... | case1 spx<px = ⊥-elim ( <<-irr z45 (proj1 ( mf< (supf x) asupf ))) where | |
489 z46 : odef (UnionCF A f ay supf x) (f (supf x)) | |
490 z46 = ⟪ proj2 ( mf (supf x) asupf ) , ch-is-sup (supf x) spx<px z47 (fsuc _ (init asupf z47 )) ⟫ where | |
491 z47 : supf (supf x) ≡ supf x | |
492 z47 = supf-idem x≤z sx≤z | |
493 z45 : f (supf x) ≤ supf x | |
494 z45 = IsMinSUP.x≤sup (is-minsup x≤z ) z46 | |
494 | 495 |
495 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf< : <-monotonic-f A f) | 496 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf< : <-monotonic-f A f) |
496 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf< ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where | 497 {y : Ordinal} (ay : odef A y) (zc : ZChain A f mf< ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where |
497 supf = ZChain.supf zc | 498 supf = ZChain.supf zc |
498 field | 499 field |
877 m13 spx<x = IsMinSUP.minsup (ZChain.is-minsup zc o≤-refl ) (MinSUP.as sup1) m14 where | 878 m13 spx<x = IsMinSUP.minsup (ZChain.is-minsup zc o≤-refl ) (MinSUP.as sup1) m14 where |
878 m14 : {z : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) px) z → (z ≡ sp1) ∨ (z << sp1) | 879 m14 : {z : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) px) z → (z ≡ sp1) ∨ (z << sp1) |
879 m14 {z} uz = MinSUP.x≤sup sup1 (case1 uz) | 880 m14 {z} uz = MinSUP.x≤sup sup1 (case1 uz) |
880 | 881 |
881 zc41 : ZChain A f mf< ay x | 882 zc41 : ZChain A f mf< ay x |
882 zc41 = record { supf = supf1 ; sup=u = sup=u ; asupf = asupf1 ; supf-mono = supf1-mono ; order = order | 883 zc41 = record { supf = supf1 ; asupf = asupf1 ; supf-mono = supf1-mono ; order = order |
883 ; supfmax = supfmax ; is-minsup = is-minsup ; cfcs = cfcs } where | 884 ; zo≤sz = zo≤sz ; supfmax = supfmax ; is-minsup = is-minsup ; cfcs = cfcs } where |
884 | 885 |
885 supf1 : Ordinal → Ordinal | 886 supf1 : Ordinal → Ordinal |
886 supf1 z with trio< z px | 887 supf1 z with trio< z px |
887 ... | tri< a ¬b ¬c = supf0 z | 888 ... | tri< a ¬b ¬c = supf0 z |
888 ... | tri≈ ¬a b ¬c = supf0 z | 889 ... | tri≈ ¬a b ¬c = supf0 z |
1115 z25 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = sup ⟪ ua , ch-is-sup u u<x | 1116 z25 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = sup ⟪ ua , ch-is-sup u u<x |
1116 (trans (sf1=sf0 u≤px) su=u) (fcpu fc u≤px) ⟫ where | 1117 (trans (sf1=sf0 u≤px) su=u) (fcpu fc u≤px) ⟫ where |
1117 u≤px : u o≤ px | 1118 u≤px : u o≤ px |
1118 u≤px = ordtrans u<x z≤px | 1119 u≤px = ordtrans u<x z≤px |
1119 | 1120 |
1120 sup=u : {b : Ordinal} (ab : odef A b) → | |
1121 b o≤ x → IsSUP A (UnionCF A f ay supf1 b) b → supf1 b ≡ b | |
1122 sup=u {b} ab b≤x is-sup with trio< b px | |
1123 ... | tri< a ¬b ¬c = ZChain.sup=u zc ab (o<→≤ a) zc40 where | |
1124 zc42 : {w : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) b) w → w ≤ b | |
1125 zc42 {w} ⟪ ua , ch-init fc ⟫ = IsSUP.x≤sup is-sup ⟪ ua , ch-init fc ⟫ | |
1126 zc42 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = IsSUP.x≤sup is-sup ⟪ ua , | |
1127 ch-is-sup u u<x (trans (sf1=sf0 zc44) su=u) (fcpu fc zc44) ⟫ where | |
1128 zc44 : u o≤ px | |
1129 zc44 = ordtrans u<x (o<→≤ a) | |
1130 zc40 : IsSUP A (UnionCF A f ay supf0 b) b | |
1131 zc40 = record { ax = ab ; x≤sup = zc42 } | |
1132 ... | tri≈ ¬a b=px ¬c = ZChain.sup=u zc ab (o≤-refl0 b=px) record { ax = ab ; x≤sup = zc42 } where | |
1133 zc42 : {w : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) b) w → w ≤ b | |
1134 zc42 {w} ⟪ ua , ch-init fc ⟫ = IsSUP.x≤sup is-sup ⟪ ua , ch-init fc ⟫ | |
1135 zc42 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = IsSUP.x≤sup is-sup ⟪ ua , | |
1136 ch-is-sup u u<x (trans (sf1=sf0 zc44) su=u) (fcpu fc zc44) ⟫ where | |
1137 zc44 : u o≤ px | |
1138 zc44 = o<→≤ ( subst (λ k → u o< k ) b=px u<x ) | |
1139 ... | tri> ¬a ¬b px<b = trans zc36 x=b where | |
1140 x=b : x ≡ b | |
1141 x=b with osuc-≡< b≤x | |
1142 ... | case1 eq = sym (eq) | |
1143 ... | case2 b<x = ⊥-elim (¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x ⟫ ) | |
1144 zc31 : sp1 o≤ b | |
1145 zc31 = MinSUP.minsup sup1 ab zc32 where | |
1146 zc32 : {w : Ordinal } → odef pchainpx w → (w ≡ b) ∨ (w << b) | |
1147 zc32 {w} (case1 ⟪ ua , ch-init fc ⟫ ) = IsSUP.x≤sup is-sup ⟪ ua , ch-init fc ⟫ | |
1148 zc32 {w} (case1 ⟪ ua , ch-is-sup u u<x su=u fc ⟫ ) = IsSUP.x≤sup is-sup ⟪ ua , ch-is-sup u z01 z02 z03 ⟫ where | |
1149 z01 : u o< b | |
1150 z01 = ordtrans u<x (subst (λ k → px o< k ) x=b px<x ) | |
1151 z02 : supf1 u ≡ u | |
1152 z02 = trans (sf1=sf0 (o<→≤ u<x)) su=u | |
1153 z03 : FClosure A f (supf1 u) w | |
1154 z03 = fcpu fc (o<→≤ u<x) | |
1155 zc32 {w} (case2 fc) = IsSUP.x≤sup is-sup ⟪ A∋fc _ f mf (proj1 fc) , ch-is-sup (supf0 px) sa<x su=u fc1 ⟫ where | |
1156 su=u : supf1 (supf0 px) ≡ supf0 px | |
1157 su=u = trans (sf1=sf0 (zc-b<x _ (proj2 fc))) ( ZChain.supf-idem zc o≤-refl (zc-b<x _ (proj2 fc)) ) | |
1158 fc1 : FClosure A f (supf1 (supf0 px)) w | |
1159 fc1 = subst (λ k → FClosure A f k w ) (sym su=u) (proj1 fc) | |
1160 sa<x : supf0 px o< b | |
1161 sa<x = subst (λ k → supf0 px o< k ) x=b ( proj2 fc) | |
1162 zc36 : sp1 ≡ x | |
1163 zc36 with osuc-≡< zc31 | |
1164 ... | case1 eq = trans eq (sym x=b) | |
1165 ... | case2 sp1<b = ⊥-elim ( <<-irr zc40 (proj1 ( mf< (supf0 px) (ZChain.asupf zc))) ) where | |
1166 -- sp1 o< x → ⊥ | |
1167 -- supf0 px o≤ sp1 o< x → supf0 px o≤ px | |
1168 -- px o≤ supf0 px → px ≡ spuf0 px o≤ spuf1 x o< x | |
1169 -- px ≡ supf1 x | |
1170 sp1<x : sp1 o< x | |
1171 sp1<x = subst (λ k → sp1 o< k ) (sym x=b) sp1<b | |
1172 zc38 : supf0 px o≤ px | |
1173 zc38 = begin | |
1174 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩ | |
1175 supf1 px ≤⟨ supf1-mono (o<→≤ px<x) ⟩ | |
1176 supf1 x ≡⟨ sf1=sp1 px<x ⟩ | |
1177 sp1 ≤⟨ zc-b<x _ sp1<x ⟩ | |
1178 px ∎ where open o≤-Reasoning O | |
1179 zc37 : supf0 px ≡ px | |
1180 zc37 with trio< (supf0 px) px | |
1181 ... | tri< a ¬b ¬c = ⊥-elim ( o≤> (ZChain.x≤supfx zc o≤-refl zc38) a ) | |
1182 ... | tri≈ ¬a b ¬c = b | |
1183 ... | tri> ¬a ¬b c = ⊥-elim ( o≤> zc38 c ) | |
1184 zc44 : sp1 o≤ supf0 px | |
1185 zc44 = begin | |
1186 sp1 ≤⟨ zc-b<x _ sp1<x ⟩ | |
1187 px ≡⟨ sym zc37 ⟩ | |
1188 supf0 px ∎ where open o≤-Reasoning O | |
1189 zc45 : supf0 px o≤ sp1 | |
1190 zc45 = begin | |
1191 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩ | |
1192 supf1 px ≤⟨ supf1-mono (o<→≤ px<x) ⟩ | |
1193 supf1 x ≡⟨ sf1=sp1 px<x ⟩ | |
1194 sp1 ∎ where open o≤-Reasoning O | |
1195 zc39 : supf0 px ≡ sp1 | |
1196 zc39 with trio< (supf0 px) sp1 | |
1197 ... | tri< a ¬b ¬c = ⊥-elim ( o≤> zc44 a ) --- sp1 o< x ≡ osuc px ≡ osuc (supf0 px) | |
1198 ... | tri≈ ¬a b ¬c = b | |
1199 ... | tri> ¬a ¬b c = ⊥-elim ( o≤> zc45 c ) --- supf0 px o≤ supf1 x ≡ sp1 | |
1200 zc40 : f (supf0 px) ≤ supf0 px | |
1201 zc40 = subst (λ k → f (supf0 px) ≤ k ) (sym zc39) | |
1202 ( MinSUP.x≤sup sup1 (case2 ⟪ fsuc _ (init (ZChain.asupf zc) refl) , subst (λ k → k o< x) (sym zc37) px<x ⟫ )) | |
1203 | |
1204 supfeq1 : {a b : Ordinal } → a o≤ x → b o≤ x → UnionCF A f ay supf1 a ≡ UnionCF A f ay supf1 b → supf1 a ≡ supf1 b | 1121 supfeq1 : {a b : Ordinal } → a o≤ x → b o≤ x → UnionCF A f ay supf1 a ≡ UnionCF A f ay supf1 b → supf1 a ≡ supf1 b |
1205 supfeq1 {a} {b} a≤z b≤z ua=ub with trio< (supf1 a) (supf1 b) | 1122 supfeq1 {a} {b} a≤z b≤z ua=ub with trio< (supf1 a) (supf1 b) |
1206 ... | tri< sa<sb ¬b ¬c = ⊥-elim ( o≤> ( | 1123 ... | tri< sa<sb ¬b ¬c = ⊥-elim ( o≤> ( |
1207 IsMinSUP.minsup (is-minsup b≤z) asupf1 (λ {z} uzb → IsMinSUP.x≤sup (is-minsup a≤z) (subst (λ k → odef k z) (sym ua=ub) uzb)) ) sa<sb ) | 1124 IsMinSUP.minsup (is-minsup b≤z) asupf1 (λ {z} uzb → IsMinSUP.x≤sup (is-minsup a≤z) (subst (λ k → odef k z) (sym ua=ub) uzb)) ) sa<sb ) |
1208 ... | tri≈ ¬a b ¬c = b | 1125 ... | tri≈ ¬a b ¬c = b |
1223 u<a = supf-inject0 supf1-mono ( osucprev (begin | 1140 u<a = supf-inject0 supf1-mono ( osucprev (begin |
1224 osuc (supf1 u) ≡⟨ cong osuc su=u ⟩ | 1141 osuc (supf1 u) ≡⟨ cong osuc su=u ⟩ |
1225 osuc u ≤⟨ osucc (ordtrans<-≤ u<b b≤z ) ⟩ | 1142 osuc u ≤⟨ osucc (ordtrans<-≤ u<b b≤z ) ⟩ |
1226 x ≤⟨ z≤sa ⟩ | 1143 x ≤⟨ z≤sa ⟩ |
1227 supf1 a ∎ )) where open o≤-Reasoning O | 1144 supf1 a ∎ )) where open o≤-Reasoning O |
1145 | |
1146 | |
1147 zo≤sz : {z : Ordinal} → z o≤ x → z o≤ supf1 z | |
1148 zo≤sz {z} z≤x with osuc-≡< z≤x | |
1149 ... | case2 z<x = subst (λ k → z o≤ k) (sym (sf1=sf0 (zc-b<x _ z<x ))) (ZChain.zo≤sz zc (zc-b<x _ z<x )) | |
1150 ... | case1 refl with osuc-≡< (supf1-mono (o<→≤ (px<x))) -- px o≤ supf1 px o≤ supf1 x ≡ sp1 → x o≤ sp1 | |
1151 ... | case2 lt = begin | |
1152 x ≡⟨ sym (Oprev.oprev=x op) ⟩ | |
1153 osuc px ≤⟨ osucc (ZChain.zo≤sz zc o≤-refl) ⟩ | |
1154 osuc (supf0 px) ≡⟨ sym (cong osuc (sf1=sf0 o≤-refl )) ⟩ | |
1155 osuc (supf1 px) ≤⟨ osucc lt ⟩ | |
1156 supf1 x ∎ where open o≤-Reasoning O | |
1157 ... | case1 spx=sx with osuc-≡< ( ZChain.zo≤sz zc o≤-refl ) | |
1158 ... | case2 lt = begin | |
1159 x ≡⟨ sym (Oprev.oprev=x op) ⟩ | |
1160 osuc px ≤⟨ osucc lt ⟩ | |
1161 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩ | |
1162 supf1 px ≤⟨ supf1-mono (o<→≤ px<x) ⟩ | |
1163 supf1 x ∎ where open o≤-Reasoning O | |
1164 ... | case1 px=spx = ⊥-elim ( <<-irr zc40 (proj1 ( mf< (supf0 px) (ZChain.asupf zc))) ) where | |
1165 zc37 : supf0 px ≡ px | |
1166 zc37 = sym px=spx | |
1167 zc39 : supf0 px ≡ sp1 | |
1168 zc39 = begin | |
1169 supf0 px ≡⟨ sym (sf1=sf0 o≤-refl) ⟩ | |
1170 supf1 px ≡⟨ spx=sx ⟩ | |
1171 supf1 x ≡⟨ sf1=sp1 px<x ⟩ | |
1172 sp1 ∎ where open ≡-Reasoning | |
1173 zc40 : f (supf0 px) ≤ supf0 px | |
1174 zc40 = subst (λ k → f (supf0 px) ≤ k ) (sym zc39) | |
1175 ( MinSUP.x≤sup sup1 (case2 ⟪ fsuc _ (init (ZChain.asupf zc) refl) , subst (λ k → k o< x) (sym zc37) px<x ⟫ )) | |
1228 | 1176 |
1229 order : {a b : Ordinal} {w : Ordinal} → | 1177 order : {a b : Ordinal} {w : Ordinal} → |
1230 b o≤ x → supf1 a o< supf1 b → FClosure A f (supf1 a) w → w ≤ supf1 b | 1178 b o≤ x → supf1 a o< supf1 b → FClosure A f (supf1 a) w → w ≤ supf1 b |
1231 order {a} {b} {w} b≤x sa<sb fc = z20 where | 1179 order {a} {b} {w} b≤x sa<sb fc = z20 where |
1232 a<b : a o< b | 1180 a<b : a o< b |
1283 z27 = trans ( supfeq1 a≤x b≤x ( union-max1 (subst (λ k → k o≤ supf1 a) b=x b≤sa) | 1231 z27 = trans ( supfeq1 a≤x b≤x ( union-max1 (subst (λ k → k o≤ supf1 a) b=x b≤sa) |
1284 b≤x (subst (λ k → supf1 a o< k ) (sym sf1b=sp1) sa<sb ) ) ) sf1b=sp1 | 1232 b≤x (subst (λ k → supf1 a o< k ) (sym sf1b=sp1) sa<sb ) ) ) sf1b=sp1 |
1285 | 1233 |
1286 ... | no lim with trio< x o∅ | 1234 ... | no lim with trio< x o∅ |
1287 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) | 1235 ... | tri< a ¬b ¬c = ⊥-elim ( ¬x<0 a ) |
1288 ... | tri≈ ¬a b ¬c = record { supf = λ _ → MinSUP.sup (ysup f mf ay) ; sup=u = ? ; asupf = MinSUP.as (ysup f mf ay) | 1236 ... | tri≈ ¬a b ¬c = record { supf = λ _ → MinSUP.sup (ysup f mf ay) ; asupf = MinSUP.as (ysup f mf ay) |
1289 ; supf-mono = λ _ → o≤-refl ; order = λ _ s<s → ⊥-elim ( o<¬≡ refl s<s ) | 1237 ; supf-mono = λ _ → o≤-refl ; order = λ _ s<s → ⊥-elim ( o<¬≡ refl s<s ) |
1290 ; supfmax = λ _ → refl ; is-minsup = ? ; cfcs = ? } where | 1238 ; zo≤sz = ? ; supfmax = λ _ → refl ; is-minsup = ? ; cfcs = ? } where |
1291 mf : ≤-monotonic-f A f | 1239 mf : ≤-monotonic-f A f |
1292 mf x ax = ⟪ case2 mf00 , proj2 (mf< x ax ) ⟫ where | 1240 mf x ax = ⟪ case2 mf00 , proj2 (mf< x ax ) ⟫ where |
1293 mf00 : * x < * (f x) | 1241 mf00 : * x < * (f x) |
1294 mf00 = proj1 ( mf< x ax ) | 1242 mf00 = proj1 ( mf< x ax ) |
1295 ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf-mono ; order = ? | 1243 ... | tri> ¬a ¬b 0<x = record { supf = supf1 ; asupf = ? ; supf-mono = supf-mono ; order = ? |
1296 ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where | 1244 ; zo≤sz = λ _ → ? ; supfmax = ? ; is-minsup = ? ; cfcs = cfcs } where |
1297 | 1245 |
1298 -- mf : ≤-monotonic-f A f | 1246 -- mf : ≤-monotonic-f A f |
1299 -- mf x ax = ? -- ⟪ case2 ( proj1 (mf< x ax)) , proj2 (mf< x ax ) ⟫ will result memory exhaust | 1247 -- mf x ax = ? -- ⟪ case2 ( proj1 (mf< x ax)) , proj2 (mf< x ax ) ⟫ will result memory exhaust |
1300 | 1248 |
1301 mf : ≤-monotonic-f A f | 1249 mf : ≤-monotonic-f A f |
1472 zc40 : odef (UnionCF A f ay supf1 b) w | 1420 zc40 : odef (UnionCF A f ay supf1 b) w |
1473 zc40 with zcb | 1421 zc40 with zcb |
1474 ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ | 1422 ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ |
1475 ... | ⟪ az , ch-is-sup u u<x su=u fc ⟫ = ⟪ az , ch-is-sup u ? ? ? ⟫ | 1423 ... | ⟪ az , ch-is-sup u u<x su=u fc ⟫ = ⟪ az , ch-is-sup u ? ? ? ⟫ |
1476 | 1424 |
1477 sup=u : {b : Ordinal} (ab : odef A b) → | |
1478 b o≤ x → IsMinSUP A (UnionCF A f ay supf1 b) b → supf1 b ≡ b | |
1479 sup=u {b} ab b≤x is-sup with osuc-≡< b≤x | |
1480 ... | case1 b=x = ? where | |
1481 zc31 : spu o≤ b | |
1482 zc31 = MinSUP.minsup usup ab zc32 where | |
1483 zc32 : {w : Ordinal } → odef pchainx w → (w ≡ b) ∨ (w << b) | |
1484 zc32 = ? | |
1485 ... | case2 b<x = trans (sf1=sf ?) (ZChain.sup=u (pzc (ob<x lim b<x)) ab ? ? ) | |
1486 --- | 1425 --- |
1487 --- the maximum chain has fix point of any ≤-monotonic function | 1426 --- the maximum chain has fix point of any ≤-monotonic function |
1488 --- | 1427 --- |
1489 | 1428 |
1490 SZ : ( f : Ordinal → Ordinal ) → (mf< : <-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → (x : Ordinal) → ZChain A f mf< ay x | 1429 SZ : ( f : Ordinal → Ordinal ) → (mf< : <-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → (x : Ordinal) → ZChain A f mf< ay x |