comparison src/zorn.agda @ 1036:23a8e4d558e0

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Dec 2022 15:49:50 +0900
parents 2144ef00cab9
children 23e185ef2737
comparison
equal deleted inserted replaced
1035:2144ef00cab9 1036:23a8e4d558e0
1026 zc21 : {z1 : Ordinal } → FClosure A f (supf1 u) z1 → odef pchainpx z1 1026 zc21 : {z1 : Ordinal } → FClosure A f (supf1 u) z1 → odef pchainpx z1
1027 zc21 {z1} (fsuc z2 fc ) with zc21 fc 1027 zc21 {z1} (fsuc z2 fc ) with zc21 fc
1028 ... | 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₁) ⟫
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₁) ⟫ 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₁) ⟫
1030 ... | case2 fc = case2 (fsuc _ fc) 1030 ... | case2 fc = case2 (fsuc _ fc)
1031 zc21 (init asp refl ) = ? 1031 zc21 (init asp refl ) with trio< (supf0 u) (supf0 px)
1032 ... | tri< a ¬b ¬c = case1 ⟪ asp , ch-is-sup u u<px (trans (sym (sf1=sf0 (o<→≤ u<px))) su=u )(init asp0 (sym (sf1=sf0 (o<→≤ u<px))) ) ⟫ where
1033 u<px : u o< px
1034 u<px = ZChain.supf-inject zc a
1035 asp0 : odef A (supf0 u)
1036 asp0 = ZChain.asupf zc
1037 ... | tri≈ ¬a b ¬c = case2 (init (subst (λ k → odef A k) b (ZChain.asupf zc) )
1038 (sym (trans (sf1=sf0 (zc-b<x _ u<x)) b )))
1039 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ ZChain.supf-inject zc c , subst (λ k → u o< k ) (sym (Oprev.oprev=x op)) u<x ⟫ )
1032 1040
1033 is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf1 z) (supf1 z) 1041 is-minsup : {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf1 z) (supf1 z)
1034 is-minsup {z} z≤x with osuc-≡< z≤x 1042 is-minsup {z} z≤x with osuc-≡< z≤x
1035 ... | case1 z<x = ZChain.is-minsup zc (zc-b<x z<x) 1043 ... | case1 z=x = record { as = zc22 ; x≤sup = z23 ; minsup = z24 } where
1036 ... | case2 z=x = ? 1044 px<z : px o< z
1045 px<z = subst (λ k → px o< k) (sym z=x) px<x
1046 zc22 : odef A (supf1 z)
1047 zc22 = subst (λ k → odef A k ) (sym (sf1=sp1 px<z )) ( MinSUP.as sup1 )
1048 z26 : supf1 px ≤ supf1 x
1049 z26 = subst₂ (λ j k → j ≤ k ) (sym (sf1=sf0 o≤-refl )) (sym (sf1=sp1 px<x )) sfpx≤sp1
1050 z23 : {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ supf1 z
1051 z23 {w} uz with zc11 (subst (λ k → odef (UnionCF A f ay supf1 k) w) z=x uz )
1052 ... | case1 uz = ≤-ftrans z25 (subst₂ (λ j k → j ≤ supf1 k) (sf1=sf0 o≤-refl) (sym z=x) z26 ) where
1053 z25 : w ≤ supf0 px
1054 z25 = IsMinSUP.x≤sup (ZChain.is-minsup zc o≤-refl ) uz
1055 ... | case2 fc = subst (λ k → w ≤ k ) (sym (sf1=sp1 px<z)) ( MinSUP.x≤sup sup1 (case2 fc) )
1056 z24 : {s : Ordinal } → odef A s → ( {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ s )
1057 → supf1 z o≤ s
1058 z24 {s} as sup = subst (λ k → k o≤ s ) (sym (sf1=sp1 px<z)) ( MinSUP.minsup sup1 as z25 ) where
1059 z25 : {w : Ordinal } → odef pchainpx w → w ≤ s
1060 z25 {w} (case2 fc) = sup ⟪ ? , ch-is-sup px px<z z27 (fcpu fc ?) ⟫ where
1061 z27 : supf1 px ≡ px --- sp1 o≤ x
1062 z27 = ?
1063 z25 {w} (case1 ⟪ ua , ch-init fc ⟫) = sup ⟪ ua , ch-init fc ⟫
1064 z25 {w} (case1 ⟪ ua , ch-is-sup u u<x su=u fc ⟫) = sup ⟪ ua , ch-is-sup u u<z
1065 (trans (sf1=sf0 u≤px) su=u) (fcpu fc u≤px) ⟫ where
1066 u≤px : u o< osuc px
1067 u≤px = ordtrans u<x <-osuc
1068 u<z : u o< z
1069 u<z = ordtrans u<x (subst (λ k → px o< k ) (sym z=x) px<x )
1070 ... | case2 z<x = record { as = zc22 ; x≤sup = z23 ; minsup = z24 } where
1071 z≤px = zc-b<x _ z<x
1072 m = ZChain.is-minsup zc z≤px
1073 zc22 : odef A (supf1 z)
1074 zc22 = subst (λ k → odef A k ) (sym (sf1=sf0 z≤px)) ( IsMinSUP.as m )
1075 z23 : {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ supf1 z
1076 z23 {w} ⟪ ua , ch-init fc ⟫ = subst (λ k → w ≤ k ) (sym (sf1=sf0 z≤px)) ( ZChain.fcy<sup zc z≤px fc )
1077 z23 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = subst (λ k → w ≤ k ) (sym (sf1=sf0 z≤px))
1078 (IsMinSUP.x≤sup m ⟪ ua , ch-is-sup u u<x (trans (sym (sf1=sf0 u≤px )) su=u) (fcup fc u≤px ) ⟫ ) where
1079 u≤px : u o≤ px
1080 u≤px = ordtrans u<x z≤px
1081 z24 : {s : Ordinal } → odef A s → ( {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ s )
1082 → supf1 z o≤ s
1083 z24 {s} as sup = subst (λ k → k o≤ s ) (sym (sf1=sf0 z≤px)) ( IsMinSUP.minsup m as z25 ) where
1084 z25 : {w : Ordinal } → odef ( UnionCF A f ay supf0 z ) w → w ≤ s
1085 z25 {w} ⟪ ua , ch-init fc ⟫ = sup ⟪ ua , ch-init fc ⟫
1086 z25 {w} ⟪ ua , ch-is-sup u u<x su=u fc ⟫ = sup ⟪ ua , ch-is-sup u u<x
1087 (trans (sf1=sf0 u≤px) su=u) (fcpu fc u≤px) ⟫ where
1088 u≤px : u o≤ px
1089 u≤px = ordtrans u<x z≤px
1037 1090
1038 order : {a b : Ordinal} {w : Ordinal} → 1091 order : {a b : Ordinal} {w : Ordinal} →
1039 b o≤ x → a o< b → FClosure A f (supf1 a) w → w ≤ supf1 b 1092 b o≤ x → a o< b → FClosure A f (supf1 a) w → w ≤ supf1 b
1040 order {a} {b} {w} b≤x a<b fc with trio< b px 1093 order {a} {b} {w} b≤x a<b fc with trio< b px
1041 ... | tri< b<px ¬b ¬c = ZChain.order zc (o<→≤ b<px) a<b (fcup fc (o<→≤ (ordtrans a<b b<px) )) 1094 ... | tri< b<px ¬b ¬c = ZChain.order zc (o<→≤ b<px) a<b (fcup fc (o<→≤ (ordtrans a<b b<px) ))