comparison src/zorn.agda @ 795:408e7e8a3797

csupf depends on order cyclicly
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 05 Aug 2022 16:21:46 +0900
parents 0acbc2b102e9
children 171123c92007
comparison
equal deleted inserted replaced
794:0acbc2b102e9 795:408e7e8a3797
308 initial : {z : Ordinal } → odef chain z → * y ≤ * z 308 initial : {z : Ordinal } → odef chain z → * y ≤ * z
309 f-next : {a : Ordinal } → odef chain a → odef chain (f a) 309 f-next : {a : Ordinal } → odef chain a → odef chain (f a)
310 f-total : IsTotalOrderSet chain 310 f-total : IsTotalOrderSet chain
311 311
312 sup : {x : Ordinal } → x o≤ z → SUP A (UnionCF A f mf ay supf x) 312 sup : {x : Ordinal } → x o≤ z → SUP A (UnionCF A f mf ay supf x)
313 supf-is-sup : {x : Ordinal } → (x<z : x o≤ z) → supf x ≡ & (SUP.sup (sup x<z) )
314 sup=u : {b : Ordinal} → (ab : odef A b) → b o< z → IsSup A (UnionCF A f mf ay supf (osuc b)) ab → supf b ≡ b 313 sup=u : {b : Ordinal} → (ab : odef A b) → b o< z → IsSup A (UnionCF A f mf ay supf (osuc b)) ab → supf b ≡ b
315 csupf : {b : Ordinal } → b o≤ z → odef (UnionCF A f mf ay supf b) (supf b) 314 supf-is-sup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ & (SUP.sup (sup x≤z) )
316 supf-mono : {x y : Ordinal } → x o< y → supf x o≤ supf y
317 fcy<sup : {u w : Ordinal } → u o< z → FClosure A f y w → (w ≡ supf u ) ∨ ( w << supf u ) -- different from order because y o< supf 315 fcy<sup : {u w : Ordinal } → u o< z → FClosure A f y w → (w ≡ supf u ) ∨ ( w << supf u ) -- different from order because y o< supf
318 fcy<sup {u} {w} u<z fc with SUP.x<sup (sup (o<→≤ u<z)) ⟪ subst (λ k → odef A k ) (sym &iso) (A∋fc {A} y f mf fc) 316 fcy<sup {u} {w} u<z fc with SUP.x<sup (sup (o<→≤ u<z)) ⟪ subst (λ k → odef A k ) (sym &iso) (A∋fc {A} y f mf fc)
319 , ch-init (subst (λ k → FClosure A f y k) (sym &iso) fc ) ⟫ 317 , ch-init (subst (λ k → FClosure A f y k) (sym &iso) fc ) ⟫
320 ... | case1 eq = case1 (subst (λ k → k ≡ supf u ) &iso (trans (cong (&) eq) (sym (supf-is-sup (o<→≤ u<z) ) ) )) 318 ... | case1 eq = case1 (subst (λ k → k ≡ supf u ) &iso (trans (cong (&) eq) (sym (supf-is-sup (o<→≤ u<z) ) ) ))
321 ... | case2 lt = case2 (subst (λ k → * w < k ) (subst (λ k → k ≡ _ ) *iso (cong (*) (sym (supf-is-sup (o<→≤ u<z) ))) ) lt ) 319 ... | case2 lt = case2 (subst (λ k → * w < k ) (subst (λ k → k ≡ _ ) *iso (cong (*) (sym (supf-is-sup (o<→≤ u<z) ))) ) lt )
320
321 csupf : {b : Ordinal } → b o< z → odef (UnionCF A f mf ay supf b) (supf b)
322 csupf {b} b<z = ⟪ asb , ch-is-sup b o≤-refl is-sup (init asb refl) ⟫ where
323 asb : odef A (supf b)
324 asb = subst (λ k → odef A k ) (sym (supf-is-sup ? )) (SUP.A∋maximal (sup ? ))
325 is-sup : ChainP A f mf ay supf b
326 is-sup = record { fcy<sup = fcy<sup b<z ; order = ? ; supu=u = ? }
327 supf-mono : {x y : Ordinal } → x o< y → supf x o≤ supf y
328 supf-mono = ?
329 -- supf-is-sup {x} x≤z = ? where
330 -- zc51 : * (supf x) ≡ SUP.sup (sup x≤z )
331 -- zc51 = ==→o≡ record { eq→ ? ; eq← = ? }
332 -- zc50 : supf x ≡ & (SUP.sup (sup x<z) )
333 -- zc50 = ?
322 order : {b s z1 : Ordinal} → b o< z → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b) 334 order : {b s z1 : Ordinal} → b o< z → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b)
323 order {b} {s} {z1} b<z sf<sb fc = zc04 where 335 order {b} {s} {z1} b<z sf<sb fc = zc04 where
324 zc01 : {z1 : Ordinal } → FClosure A f (supf s) z1 → UnionCF A f mf ay supf b ∋ * z1 336 zc01 : {z1 : Ordinal } → FClosure A f (supf s) z1 → UnionCF A f mf ay supf b ∋ * z1
325 zc01 (init x refl ) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc03 where 337 zc01 (init x refl ) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc03 where
326 s<b : s o< b 338 s<b : s o< b
331 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sf<sb ) 343 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sf<sb )
332 ... | case2 lt = ⊥-elim ( o<> lt sf<sb ) 344 ... | case2 lt = ⊥-elim ( o<> lt sf<sb )
333 s<z : s o< z 345 s<z : s o< z
334 s<z = ordtrans s<b b<z 346 s<z = ordtrans s<b b<z
335 zc03 : odef (UnionCF A f mf ay supf b) (supf s) 347 zc03 : odef (UnionCF A f mf ay supf b) (supf s)
336 zc03 with csupf (o<→≤ s<z) 348 zc03 with csupf s<z
337 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫ 349 ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc ⟫
338 ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ as , ch-is-sup u (ordtrans u≤x (osucc s<b)) is-sup fc ⟫ 350 ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ as , ch-is-sup u (ordtrans u≤x (osucc s<b)) is-sup fc ⟫
339 zc01 (fsuc x fc) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc04 where 351 zc01 (fsuc x fc) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc04 where
340 zc04 : odef (UnionCF A f mf ay supf b) (f x) 352 zc04 : odef (UnionCF A f mf ay supf b) (f x)
341 zc04 with subst (λ k → odef (UnionCF A f mf ay supf b) k ) &iso (zc01 fc ) 353 zc04 with subst (λ k → odef (UnionCF A f mf ay supf b) k ) &iso (zc01 fc )
880 subst (λ k → UChain A f mf ay supf x k ) 892 subst (λ k → UChain A f mf ay supf x k )
881 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc)) ⟫ 893 (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc)) ⟫
882 894
883 no-extension : ¬ spu ≡ x → ZChain A f mf ay x 895 no-extension : ¬ spu ≡ x → ZChain A f mf ay x
884 no-extension ¬sp=x = record { initial = pinit ; chain∋init = pcy ; supf = supf1 ; sup=u = {!!} 896 no-extension ¬sp=x = record { initial = pinit ; chain∋init = pcy ; supf = supf1 ; sup=u = {!!}
885 ; supf-is-sup = ? 897 ; sup = ? ; supf-is-sup = ?
886 ; csupf = ? ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; supf-mono = ? } where 898 ; csupf = ? ; chain⊆A = pchain⊆A ; f-next = pnext ; f-total = ptotal ; supf-mono = ? } where
887 UnionCF⊆ : UnionCF A f mf ay supf1 x ⊆' UnionCF A f mf ay ? x 899 supfu : {u : Ordinal } → ( a : u o< x ) → (z : Ordinal) → Ordinal
888 900 supfu {u} a z = ZChain.supf (pzc (osuc u) (ob<x lim a)) z
901 UnionCF⊆ : {u : Ordinal} → (a : u o< x ) → UnionCF A f mf ay supf1 x ⊆' UnionCF A f mf ay (supfu a) x
902 UnionCF⊆ = ?
889 zc5 : ZChain A f mf ay x 903 zc5 : ZChain A f mf ay x
890 zc5 with ODC.∋-p O A (* x) 904 zc5 with ODC.∋-p O A (* x)
891 ... | no noax = no-extension ? -- ¬ A ∋ p, just skip 905 ... | no noax = no-extension ? -- ¬ A ∋ p, just skip
892 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f ) 906 ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f )
893 -- we have to check adding x preserve is-max ZChain A y f mf x 907 -- we have to check adding x preserve is-max ZChain A y f mf x
894 ... | case1 pr = no-extension ? 908 ... | case1 pr = no-extension ?
895 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax ) 909 ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax )
896 ... | case1 is-sup = record { initial = {!!} ; chain∋init = {!!} ; supf = supf1 ; sup=u = {!!} 910 ... | case1 is-sup = record { initial = {!!} ; chain∋init = {!!} ; supf = supf1 ; sup=u = {!!}
897 ; supf-is-sup = ? 911 ; sup = ? ; supf-is-sup = ?
898 ; chain⊆A = {!!} ; f-next = {!!} ; f-total = {!!} ; csupf = ? ; supf-mono = ? } where -- x is a sup of (zc ?) 912 ; chain⊆A = {!!} ; f-next = {!!} ; f-total = {!!} ; csupf = ? ; supf-mono = ? } where -- x is a sup of (zc ?)
899 ... | case2 ¬x=sup = no-extension ? -- x is not f y' nor sup of former ZChain from y -- no extention 913 ... | case2 ¬x=sup = no-extension ? -- x is not f y' nor sup of former ZChain from y -- no extention
900 914
901 SZ : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → ZChain A f mf ay (& A) 915 SZ : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → ZChain A f mf ay (& A)
902 SZ f mf {y} ay = TransFinite {λ z → ZChain A f mf ay z } (λ x → ind f mf ay x ) (& A) 916 SZ f mf {y} ay = TransFinite {λ z → ZChain A f mf ay z } (λ x → ind f mf ay x ) (& A)