Mercurial > hg > Members > kono > Proof > ZF-in-agda
diff src/zorn.agda @ 1007:88fae58f89f5
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 20 Nov 2022 08:36:24 +0900 |
parents | ac182ad5bfd2 |
children | 47c0f8fa7b0c |
line wrap: on
line diff
--- a/src/zorn.agda Sat Nov 19 00:04:35 2022 +0900 +++ b/src/zorn.agda Sun Nov 20 08:36:24 2022 +0900 @@ -525,6 +525,34 @@ z52 : supf (supf b) ≡ supf b z52 = sup=u asupf sfb≤x ⟪ record { x≤sup = z54 } , IsMinSUP→NotHasPrev asupf z54 ( λ ax → proj1 (mf< _ ax)) ⟫ +spuf-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 +spuf-unique A f mf {y} {xa} {xb} ay xa≤xb za zb {z} z≤xa = TransFinite0 {λ z → z o≤ xa → ZChain.supf za z ≡ ZChain.supf zb z } ind z z≤xa where + supfa = ZChain.supf za + supfb = ZChain.supf zb + ind : (x : Ordinal) → ((w : Ordinal) → w o< x → w o≤ xa → supfa w ≡ supfb w) → x o≤ xa → supfa x ≡ supfb x + ind x prev x≤xa = ? where + sax=m : supfa x ≡ MinSUP.sup (ZChain.minsup za x≤xa ) + sax=m = ZChain.supf-is-minsup za x≤xa + sbx=m : supfb x ≡ MinSUP.sup (ZChain.minsup zb (OrdTrans x≤xa xa≤xb )) + sbx=m = ZChain.supf-is-minsup zb (OrdTrans x≤xa xa≤xb ) + sxa=sxb : supfa x ≡ supfb x + sxa=sxb with trio< (supfa x) (supfb x) + ... | tri≈ ¬a b ¬c = b + ... | tri< a ¬b ¬c = ⊥-elim ( o≤> ( + begin + supfb x ≡⟨ ? ⟩ + MinSUP.sup (ZChain.minsup zb (OrdTrans x≤xa xa≤xb )) ≤⟨ MinSUP.minsup ? ? ? ⟩ + MinSUP.sup (ZChain.minsup za x≤xa ) ≡⟨ ? ⟩ + supfa x ∎ ) a ) where open o≤-Reasoning O + ... | tri> ¬a ¬b c = ⊥-elim ( o≤> ( + begin + supfa x ≡⟨ ? ⟩ + MinSUP.sup (ZChain.minsup za x≤xa ) ≤⟨ MinSUP.minsup ? ? ? ⟩ + MinSUP.sup (ZChain.minsup zb (OrdTrans x≤xa xa≤xb )) ≡⟨ ? ⟩ + supfb x ∎ ) c ) where open o≤-Reasoning O + UChain⊆ : ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {z y : Ordinal} (ay : odef A y) { supf supf1 : Ordinal → Ordinal } → (supf-mono : {x y : Ordinal } → x o≤ y → supf x o≤ supf y ) @@ -831,6 +859,12 @@ ax : odef A x is-sup : IsMinSUP A B f ax + zc43 : (x sp1 : Ordinal ) → ( x o< sp1 ) ∨ ( sp1 o≤ x ) + zc43 x sp1 with trio< x sp1 + ... | tri< a ¬b ¬c = case1 a + ... | tri≈ ¬a b ¬c = case2 (o≤-refl0 (sym b)) + ... | tri> ¬a ¬b c = case2 (o<→≤ c) + -- -- create all ZChains under o< x -- @@ -931,14 +965,8 @@ -- supf0 px o≤ sp1 -- - zc43 : (x : Ordinal ) → ( x o< sp1 ) ∨ ( sp1 o≤ x ) - zc43 x with trio< x sp1 - ... | tri< a ¬b ¬c = case1 a - ... | tri≈ ¬a b ¬c = case2 (o≤-refl0 (sym b)) - ... | tri> ¬a ¬b c = case2 (o<→≤ c) - zc41 : ZChain A f mf ay x - zc41 with zc43 x + zc41 with zc43 x sp1 zc41 | (case2 sp≤x ) = record { supf = supf1 ; sup=u = ? ; asupf = ? ; supf-mono = supf1-mono ; supf-< = ? ; supfmax = ? ; minsup = ? ; supf-is-minsup = ? ; cfcs = ? } where @@ -1007,11 +1035,8 @@ -- this is a kind of maximality, so we cannot prove this without <-monotonicity -- - -- supf0 a ≡ px we cannot use previous cfcs + -- supf0 a ≡ px we cannot use previous cfcs, it is in the chain because -- supf0 a ≡ supf0 (supf0 a) ≡ supf0 px o< x - -- supf0 a o< sp1 ≡ x - -- sp1 ≡ px ≡ supf0 a o< x - -- sp1 o< px ≡ supf0 a → ⊥ -- 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 @@ -1255,79 +1280,34 @@ supf1 : Ordinal → Ordinal supf1 z with trio< z x - ... | tri< a ¬b ¬c = ZChain.supf (pzc (osuc z) (ob<x lim a)) z + ... | tri< a ¬b ¬c = ZChain.supf (pzc (osuc z) (ob<x lim a)) z ... | tri≈ ¬a b ¬c = spu ... | tri> ¬a ¬b c = spu pchain1 : HOD pchain1 = UnionCF A f mf ay supf1 x - is-max-hp : (supf : Ordinal → Ordinal) (x : Ordinal) {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a → - b o< x → (ab : odef A b) → - HasPrev A (UnionCF A f mf ay supf x) f b → - * a < * b → odef (UnionCF A f mf ay supf x) b - is-max-hp supf x {a} {b} ua b<x ab has-prev a<b with HasPrev.ay has-prev - ... | ⟪ ab0 , ch-init fc ⟫ = ⟪ ab , ch-init ( subst (λ k → FClosure A f y k) (sym (HasPrev.x=fy has-prev)) (fsuc _ fc )) ⟫ - ... | ⟪ ab0 , ch-is-sup u u<x is-sup fc ⟫ = ? -- ⟪ ab , - -- subst (λ k → UChain A f mf ay supf x k ) - -- (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u<x is-sup (fsuc _ fc)) ⟫ - - zc70 : HasPrev A pchain f x → ¬ xSUP pchain f x - zc70 pr xsup = ? + sfpx<=spu : {z : Ordinal } → supf1 z <= spu + sfpx<=spu {z} = ? -- MinSUP.x≤sup usup (case2 (init (ZChain.asupf zc {px}) refl )) - no-extension : ¬ ( xSUP (UnionCF A f mf ay supf0 x) supf0 x ) → ZChain A f mf ay x - no-extension ¬sp=x = ? where -- record { supf = supf1 ; sup=u = sup=u - -- ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!} ; asupf = ? } where - supfu : {u : Ordinal } → ( a : u o< x ) → (z : Ordinal) → Ordinal - supfu {u} a z = ZChain.supf (pzc (osuc u) (ob<x lim a)) z - pchain0=1 : pchain ≡ pchain1 - pchain0=1 = ==→o≡ record { eq→ = zc10 ; eq← = zc11 } where - zc10 : {z : Ordinal} → OD.def (od pchain) z → OD.def (od pchain1) z - zc10 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ - zc10 {z} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ = zc12 fc where - zc12 : {z : Ordinal} → FClosure A f (supf0 u) z → odef pchain1 z - zc12 (fsuc x fc) with zc12 fc - ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ - ... | ⟪ ua1 , ch-is-sup u u<x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x is-sup (fsuc _ fc₁) ⟫ - zc12 (init asu su=z ) = ⟪ subst (λ k → odef A k) su=z asu , ch-is-sup u ? ? (init ? ? ) ⟫ - zc11 : {z : Ordinal} → OD.def (od pchain1) z → OD.def (od pchain) z - zc11 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ - zc11 {z} ⟪ az , ch-is-sup u u<x is-sup fc ⟫ = zc13 fc where - zc13 : {z : Ordinal} → FClosure A f (supf1 u) z → odef pchain z - zc13 (fsuc x fc) with zc13 fc - ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-init (fsuc _ fc₁) ⟫ - ... | ⟪ ua1 , ch-is-sup u u<x is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1) , ch-is-sup u u<x is-sup (fsuc _ fc₁) ⟫ - zc13 (init asu su=z ) with trio< u x - ... | tri< a ¬b ¬c = ⟪ ? , ch-is-sup u ? ? (init ? ? ) ⟫ - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c = ? -- ⊥-elim ( o≤> u<x c ) - sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf1 z) - sup {z} z≤x with trio< z x - ... | tri< a ¬b ¬c = SUP⊆ ? (ZChain.sup (pzc (osuc z) {!!}) {!!} ) - ... | tri≈ ¬a b ¬c = {!!} - ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) - sis : {z : Ordinal} (x≤z : z o≤ x) → supf1 z ≡ & (SUP.sup (sup {!!})) - sis {z} z≤x with trio< z x - ... | tri< a ¬b ¬c = {!!} where - zc8 = ZChain.supf-is-minsup (pzc z a) {!!} - ... | tri≈ ¬a b ¬c = {!!} - ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) - sup=u : {b : Ordinal} (ab : odef A b) → b o≤ x → IsMinSUP A (UnionCF A f mf ay supf1 b) f ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf1 b) f b ) → supf1 b ≡ b - sup=u {z} ab z≤x is-sup with trio< z x - ... | tri< a ¬b ¬c = ? -- ZChain.sup=u (pzc (osuc b) (ob<x lim a)) ab {!!} record { x≤sup = {!!} } - ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?) ?) ab {!!} record { x≤sup = {!!} } - ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) + sfpx≤spu : {z : Ordinal } → supf1 z o≤ spu + sfpx≤spu {z} = ? -- subst ( λ k → k o≤ spu) (sym (ZChain.supf-is-minsup zc o≤-refl )) + -- ( MinSUP.minsup (ZChain.minsup zc o≤-refl) (MinSUP.asm supu) + -- (λ {x} ux → MinSUP.x≤sup supu (case1 ux)) ) + + supf-mono : {x y : Ordinal } → x o≤ y → supf1 x o≤ supf1 y + supf-mono {x} {y} x≤y = ? zc5 : ZChain A f mf ay x - zc5 with ODC.∋-p O A (* x) - ... | no noax = no-extension {!!} -- ¬ A ∋ p, just skip - ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain f x ) - -- we have to check adding x preserve is-max ZChain A y f mf x - ... | case1 pr = no-extension {!!} - ... | case2 ¬fy<x with ODC.p∨¬p O (IsMinSUP A pchain f ax ) - ... | case1 is-sup = ? -- record { supf = supf1 ; sup=u = {!!} - -- ; sup = {!!} ; supf-is-sup = {!!} ; supf-mono = {!!}; asupf = {!!} } -- where -- x is a sup of (zc ?) - ... | case2 ¬x=sup = no-extension {!!} -- x is not f y' nor sup of former ZChain from y -- no extention + zc5 with zc43 x spu + zc5 | (case2 sp≤x ) = ? 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 = ? + zc5 | (case1 x<sp ) = ? 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 = ? --- --- the maximum chain has fix point of any ≤-monotonic function