Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1016:aeda5d0537d7
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 24 Nov 2022 08:48:38 +0900 |
parents | c804e302f110 |
children | ffdfd8d1303a |
files | src/zorn.agda |
diffstat | 1 files changed, 57 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Wed Nov 23 19:30:29 2022 +0900 +++ b/src/zorn.agda Thu Nov 24 08:48:38 2022 +0900 @@ -537,13 +537,6 @@ z52 : supf (supf b) ≡ supf b z52 = sup=u asupf sfb≤x ⟪ record { x≤sup = z54 } , IsMinSUP→NotHasPrev asupf z54 ( λ ax → proj1 (mf< _ ax)) ⟫ - fc-inject : {x y : Ordinal } → (mf< : <-monotonic-f A f) → x o≤ z → y o≤ z → supf x o< z → supf y o< z - → { wx wy : Ordinal} → FClosure A f (supf x) wx → FClosure A f (supf y) wy → wx ≡ wy → supf x ≡ supf y - fc-inject mf< x≤z y≤z sx<z sy<z = ? where - z53 : {x y : Ordinal } → supf x o< supf y → FClosure A f (supf x) wx → wx << supf y - z53 = ? - - supf-unique : ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y xa xb : Ordinal} → (ay : odef A y) → (xa o≤ xb ) → (za : ZChain A f mf ay xa ) (zb : ZChain A f mf ay xb ) → {z : Ordinal } → z o≤ xa → ZChain.supf za z ≡ ZChain.supf zb z @@ -779,7 +772,7 @@ -- maximality of chain -- -- supf is fixed for z ≡ & A , we can prove order and is-max - -- + -- we have supf-unique now, it is provable in the first Tranfinte induction SZ1 : ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) (mf< : <-monotonic-f A f) {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) (x : Ordinal) → x o≤ & A → ZChain1 A f mf ay zc x @@ -1341,7 +1334,7 @@ ... | refl = ⊥-elim ( proj2 is-sup record { ax = HasPrev.ax hasPrev ; y = HasPrev.y hasPrev ; ay = ? ; x=fy = HasPrev.x=fy hasPrev } ) - ... | no lim = zc5 where + ... | no lim = ? where pzc : {z : Ordinal} → z o< x → ZChain A f mf ay z pzc {z} z<x = prev z z<x @@ -1428,53 +1421,61 @@ ... | tri≈ ¬a b ¬c = ? ... | tri> ¬a ¬b c = ? - zc5 : ZChain A f mf ay x - zc5 = ? where - cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } - → a o< b → b o≤ x → supf1 a o< x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w - cfcs mf< {a} {b} {w} a<b b≤x sa<x fc with trio< a x - ... | tri< a<x ¬b ¬c = zc40 where - sa = ZChain.supf (pzc (ob<x lim a<x)) a - m = omax a sa - m<x : m o< x - m<x with trio< a sa | inspect (omax a) sa - ... | tri< a<sa ¬b ¬c | record { eq = eq } = ob<x lim sa<x - ... | tri≈ ¬a a=sa ¬c | record { eq = eq } = subst (λ k → k o< x) eq zc41 where - zc41 : omax a sa o< x - zc41 = osucprev ( begin - osuc ( omax a sa ) ≡⟨ cong (λ k → osuc (omax a k)) (sym a=sa) ⟩ - osuc ( omax a a ) ≡⟨ cong osuc (omxx _) ⟩ - osuc ( osuc a ) ≤⟨ o<→≤ (ob<x lim (ob<x lim a<x)) ⟩ - x ∎ ) where open o≤-Reasoning O - ... | tri> ¬a ¬b c | record { eq = eq } = ob<x lim a<x - sam = ZChain.supf (pzc (ob<x lim m<x)) a - zc42 : osuc a o≤ osuc m - zc42 = osucc (o<→≤ ( omax-x _ _ ) ) - sam<m : sam o< m - sam<m = subst (λ k → k o< m ) (supf-unique A f mf ay zc42 (pzc (ob<x lim a<x)) (pzc (ob<x lim m<x)) (o<→≤ <-osuc)) ( omax-y _ _ ) - fcm : FClosure A f (ZChain.supf (pzc (ob<x lim m<x)) a) w - fcm = subst (λ k → FClosure A f k w ) (zeq (ob<x lim a<x) (ob<x lim m<x) zc42 (o<→≤ <-osuc) ) fc - zc40 : odef (UnionCF A f mf ay supf1 b) w - zc40 with ZChain.cfcs (pzc (ob<x lim m<x)) mf< (o<→≤ (omax-x _ _)) o≤-refl (o<→≤ sam<m) fcm - ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ - ... | ⟪ az , ch-is-sup u u<x is-sup fc1 ⟫ = ⟪ az , ch-is-sup u u<b ? fc2 ⟫ where -- u o< px → u o< b ? - zc55 : u o< osuc m - zc55 = u<x - zc56 : u ≡ supf1 a - zc56 = ? - u<b : u o< b -- b o≤ u → b o≤ a -- u ≡ supf1 a - u<b = ? - fc1m : FClosure A f (ZChain.supf (pzc (ob<x lim m<x)) u) w - fc1m = fc1 - fc2 : FClosure A f (supf1 u) w - fc2 = subst (λ k → FClosure A f k w) (trans (sym (zeq _ _ zc57 (o<→≤ <-osuc))) (sym (sf1=sf (ordtrans≤-< u<x m<x))) ) fc1 where - zc57 : osuc u o≤ osuc m - zc57 = osucc u<x - fc1a : FClosure A f (ZChain.supf (pzc (ob<x lim a<x)) a) w - fc1a = fc - ... | tri≈ ¬a b ¬c = ⊥-elim ( ¬a (ordtrans<-≤ a<b b≤x)) - ... | tri> ¬a ¬b c = ⊥-elim ( ¬a (ordtrans<-≤ a<b b≤x)) - + cfcs : (mf< : <-monotonic-f A f) {a b w : Ordinal } + → a o< b → b o≤ x → supf1 a o< x → FClosure A f (supf1 a) w → odef (UnionCF A f mf ay supf1 b) w + cfcs mf< {a} {b} {w} a<b b≤x sa<x fc with osuc-≡< b≤x + ... | case1 b=x with trio< a x + ... | tri< a<x ¬b ¬c = zc40 where + sa = ZChain.supf (pzc (ob<x lim a<x)) a + m = omax a sa + m<x : m o< x + m<x with trio< a sa | inspect (omax a) sa + ... | tri< a<sa ¬b ¬c | record { eq = eq } = ob<x lim sa<x + ... | tri≈ ¬a a=sa ¬c | record { eq = eq } = subst (λ k → k o< x) eq zc41 where + zc41 : omax a sa o< x + zc41 = osucprev ( begin + osuc ( omax a sa ) ≡⟨ cong (λ k → osuc (omax a k)) (sym a=sa) ⟩ + osuc ( omax a a ) ≡⟨ cong osuc (omxx _) ⟩ + osuc ( osuc a ) ≤⟨ o<→≤ (ob<x lim (ob<x lim a<x)) ⟩ + x ∎ ) where open o≤-Reasoning O + ... | tri> ¬a ¬b c | record { eq = eq } = ob<x lim a<x + sam = ZChain.supf (pzc (ob<x lim m<x)) a + zc42 : osuc a o≤ osuc m + zc42 = osucc (o<→≤ ( omax-x _ _ ) ) + sam<m : sam o< m + sam<m = subst (λ k → k o< m ) (supf-unique A f mf ay zc42 (pzc (ob<x lim a<x)) (pzc (ob<x lim m<x)) (o<→≤ <-osuc)) ( omax-y _ _ ) + fcm : FClosure A f (ZChain.supf (pzc (ob<x lim m<x)) a) w + fcm = subst (λ k → FClosure A f k w ) (zeq (ob<x lim a<x) (ob<x lim m<x) zc42 (o<→≤ <-osuc) ) fc + zcm : odef (UnionCF A f mf ay (ZChain.supf (pzc (ob<x lim m<x))) (osuc (omax a sa))) w + zcm = ZChain.cfcs (pzc (ob<x lim m<x)) mf< (o<→≤ (omax-x _ _)) o≤-refl (o<→≤ sam<m) fcm + zc40 : odef (UnionCF A f mf ay supf1 b) w + zc40 with ZChain.cfcs (pzc (ob<x lim m<x)) mf< (o<→≤ (omax-x _ _)) o≤-refl (o<→≤ sam<m) fcm + ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ + ... | ⟪ az , ch-is-sup u u<x is-sup fc1 ⟫ = ⟪ az , ch-is-sup u u<b ? fc2 ⟫ where -- u o< px → u o< b ? + zc55 : u o< osuc m + zc55 = u<x + zc56 : u ≡ supf1 a + zc56 = ? + u<b : u o< b -- b o≤ u → b o≤ a -- u ≡ supf1 a + u<b = ? + fc1m : FClosure A f (ZChain.supf (pzc (ob<x lim m<x)) u) w + fc1m = fc1 + fc1a : FClosure A f (ZChain.supf (pzc (ob<x lim a<x)) a) w + fc1a = fc + fc2 : FClosure A f (supf1 u) w + fc2 = subst (λ k → FClosure A f k w) (trans (sym (zeq _ _ zc57 (o<→≤ <-osuc))) (sym (sf1=sf (ordtrans≤-< u<x m<x))) ) fc1 where + zc57 : osuc u o≤ osuc m + zc57 = osucc u<x + ... | tri≈ ¬a b ¬c = ⊥-elim ( ¬a (ordtrans<-≤ a<b b≤x)) + ... | tri> ¬a ¬b c = ⊥-elim ( ¬a (ordtrans<-≤ a<b b≤x)) + cfcs mf< {a} {b} {w} a<b b≤x sa<x fc | case2 b<x = zc40 where + zcb : odef (UnionCF A f mf ay (ZChain.supf (pzc (ob<x lim b<x))) b) w + zcb = ZChain.cfcs (pzc (ob<x lim b<x)) mf< ? ? ? ? + zc40 : odef (UnionCF A f mf ay supf1 b) w + zc40 with zcb + ... | ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ + ... | ⟪ az , ch-is-sup u u<x is-sup fc1 ⟫ = ⟪ az , ch-is-sup u ? ? ? ⟫ + --- --- the maximum chain has fix point of any ≤-monotonic function ---