changeset 992:4aaecae58da5

... x < & A ?
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 17 Nov 2022 02:22:39 +0900
parents c190f708862a
children e11c244d7eac
files src/zorn.agda
diffstat 1 files changed, 31 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Thu Nov 17 00:22:58 2022 +0900
+++ b/src/zorn.agda	Thu Nov 17 02:22:39 2022 +0900
@@ -116,6 +116,9 @@
 ≤-monotonic-f : (A : HOD) → ( Ordinal → Ordinal ) → Set (Level.suc n)
 ≤-monotonic-f A f = (x : Ordinal ) → odef A x → ( * x ≤ * (f x) ) ∧  odef A (f x )
 
+<-monotonic-f : (A : HOD) → ( Ordinal → Ordinal ) → Set n
+<-monotonic-f A f = (x : Ordinal ) → odef A x → ( * x < * (f x) ) ∧  odef A (f x )
+
 data FClosure (A : HOD) (f : Ordinal → Ordinal ) (s : Ordinal) : Ordinal → Set n where
    init : {s1 : Ordinal } → odef A s → s ≡ s1  → FClosure A f s s1
    fsuc : (x : Ordinal) ( p :  FClosure A f s x ) → FClosure A f s (f x)
@@ -660,9 +663,9 @@
      --     supf is fixed for z ≡ & A , we can prove order and is-max
      --
 
-     SZ1 : ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f)
+     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)   → ZChain1 A f mf ay zc x
-     SZ1 f mf {y} ay zc x = TransFinite { λ x →  ZChain1 A f mf ay zc x } zc1 x where
+     SZ1 f mf mf< {y} ay zc x = ? where
         chain-mono1 :  {a b c : Ordinal} → a o≤ b
             → odef (UnionCF A f mf ay (ZChain.supf zc) a) c → odef (UnionCF A f mf ay (ZChain.supf zc) b) c
         chain-mono1  {a} {b} {c} a≤b = chain-mono f mf ay (ZChain.supf zc) (ZChain.supf-mono zc) a≤b
@@ -709,8 +712,8 @@
           ... | case1 eq = case1 (subst₂ (λ j k → j ≡ k ) refl (sym (ZChain.supf-is-minsup zc (o<→≤ b<z))  ) eq )
           ... | case2 lt = case2 (subst₂ (λ j k → j < * k ) refl (sym (ZChain.supf-is-minsup zc (o<→≤ b<z) )) lt )
 
-        zc1 :   (x : Ordinal) → ((y : Ordinal) → y o< x → ZChain1 A f mf ay zc y) → ZChain1 A f mf ay zc x
-        zc1 x prev with Oprev-p x  
+        zc1 :  (x : Ordinal ) → x o< & A →   ZChain1 A f mf ay zc x
+        zc1 x x<A with Oprev-p x  
         ... | yes op = record { is-max = is-max ; order = order  } where
                px = Oprev.oprev op
                is-max :  {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a →
@@ -735,38 +738,19 @@
                   m09 {s} {z} s<b fcz = order b<A s<b fcz
                   m06 : ChainP A f mf ay supf b
                   m06 = record {  fcy<sup = m08  ; order = m09 ; supu=u = m05 }
-               ... | case1 sb=sx = ? where
-                  b<A : b o< & A
-                  b<A = z09 ab
-                  m09 : IsSUP A (UnionCF A f mf ay (ZChain.supf zc) b) ab
-                  m09 = proj2 is-sup
-                  m04 : ¬ HasPrev A (UnionCF A f mf ay supf b) f b
-                  m04 nhp = proj1 is-sup ( record { ax = HasPrev.ax nhp ; y = HasPrev.y nhp ; ay =
-                        chain-mono1 (o<→≤ b<x) (HasPrev.ay  nhp) ; x=fy = HasPrev.x=fy nhp } )
-                  m05 : ZChain.supf zc b ≡ b
-                  m05 = ZChain.sup=u zc ab (o<→≤ (z09 ab) ) ⟪ record { x≤sup = λ {z} uz → IsSUP.x≤sup (proj2 is-sup) uz  }  , m04 ⟫
-                  m07 : MinSUP A (UnionCF A f mf ay supf (supf x)) -- supf z o< supf ( supf x )
-                  m07 = ZChain.minsup zc (o<→≤ (z09 (ZChain.asupf zc)))
-                  m29 : x o≤ & A
-                  m29 = ?
-                  m15 : supf (supf x) ≡ MinSUP.sup m07 
-                  m15 = ZChain.supf-is-minsup zc (o<→≤ (z09 (ZChain.asupf zc)))
+               ... | case1 sb=sx = ⊥-elim (<-irr (case1 (cong (*) m10)) (proj1 (mf< (supf b) (ZChain.asupf zc)))) where
+                  x≤A : x o≤ & A
+                  x≤A = o<→≤ x<A
                   m17 : MinSUP A (UnionCF A f mf ay supf x) -- supf z o< supf ( supf x )
-                  m17 = ZChain.minsup zc m29
+                  m17 = ZChain.minsup zc x≤A
                   m18 : supf x ≡ MinSUP.sup m17 
-                  m18 = ZChain.supf-is-minsup zc m29
+                  m18 = ZChain.supf-is-minsup zc x≤A
                   m10 : f (supf b) ≡ supf b
                   m10 = fc-stop A f mf (ZChain.asupf zc) m11 sb=sx where
                       m11 : {z : Ordinal} → FClosure A f (supf b) z → (z ≡ ZChain.supf zc x) ∨ (z << ZChain.supf zc x)
                       m11 {z} fc = subst (λ k → (z ≡ k) ∨ (z << k)) (sym m18) ( MinSUP.x≤sup m17 m13 ) where
                           m13 :  odef (UnionCF A f mf ay supf x) z
-                          m13 = ZChain.fcs<sup zc b<x m29  fc
-                          m12 :  odef (UnionCF A f mf ay supf (& A)) z
-                          m12 = ZChain.fcs<sup zc ? ?  fc
-                          -- m14 :  odef (UnionCF A f mf ay supf x) z
-                          -- m14 = ZChain.fcs<sup zc ? ?
-                  m08 : MinSUP A (UnionCF A f mf ay supf b)
-                  m08 = ZChain.minsup zc (o<→≤ (z09 ab))           -- supf z o< supf b
+                          m13 = ZChain.fcs<sup zc b<x x≤A  fc
 
         ... | no lim = record { is-max = is-max ; order = order }  where
                is-max :  {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay supf x) a →
@@ -794,17 +778,19 @@
                   m05 = ZChain.sup=u zc ab (o<→≤  m09) ⟪ record { x≤sup = λ lt → IsSUP.x≤sup (proj2 is-sup) lt } , m04 ⟫    -- ZChain on x
                   m06 : ChainP A f mf ay supf b
                   m06 = record { fcy<sup = m07 ;  order = m08 ; supu=u = m05 }
-               ... | case1 sb=sx = ? where
+               ... | case1 sb=sx = ⊥-elim (<-irr (case1 (cong (*) m10)) (proj1 (mf< (supf b) (ZChain.asupf zc)))) where
+                  x≤A : x o≤ & A
+                  x≤A = o<→≤ x<A
                   m17 : MinSUP A (UnionCF A f mf ay supf x) -- supf z o< supf ( supf x )
-                  m17 = ZChain.minsup zc ?
+                  m17 = ZChain.minsup zc x≤A
                   m18 : supf x ≡ MinSUP.sup m17 
-                  m18 = ZChain.supf-is-minsup zc ?
+                  m18 = ZChain.supf-is-minsup zc x≤A
                   m10 : f (supf b) ≡ supf b
                   m10 = fc-stop A f mf (ZChain.asupf zc) m11 sb=sx where
                       m11 : {z : Ordinal} → FClosure A f (supf b) z → (z ≡ ZChain.supf zc x) ∨ (z << ZChain.supf zc x)
                       m11 {z} fc = subst (λ k → (z ≡ k) ∨ (z << k)) (sym m18) ( MinSUP.x≤sup m17 m13 ) where
                           m13 :  odef (UnionCF A f mf ay supf x) z
-                          m13 = ZChain.fcs<sup zc b<x ?  fc
+                          m13 = ZChain.fcs<sup zc b<x x≤A  fc
 
      uchain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → HOD
      uchain f mf {y} ay = record { od = record { def = λ x → FClosure A f y x } ; odmax = & A ; <odmax =
@@ -836,7 +822,13 @@
             ... | tri< a ¬b ¬c = ?
             ... | tri≈ ¬a b ¬c = MinSUP.sup (ysup f mf ay)
             ... | tri> ¬a ¬b 0<x with Oprev-p x
-            ... | yes op = ?
+            ... | yes op = ? where
+                px = Oprev.oprev  op
+                sfc00 : Ordinal
+                sfc00 with trio< (prev px ? ) (MinSUP.sup (ysup f mf ? ))
+                ... | tri< a ¬b ¬c = ?
+                ... | tri≈ ¬a b ¬c = ?
+                ... | tri> ¬a ¬b c = ?
             ... | no lim = ?
 
      --
@@ -1395,10 +1387,10 @@
          → MinSUP A (UnionCF A f mf ay (ZChain.supf zc) x)
      msp0 f mf {x} ay zc = minsupP (UnionCF A f mf ay (ZChain.supf zc) x) (ZChain.chain⊆A zc) (ZChain.f-total zc)
 
-     fixpoint :  ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f )  (zc : ZChain A f mf as0 (& A) )
+     fixpoint :  ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (mf< : <-monotonic-f A f )  (zc : ZChain A f mf as0 (& A) )
             → (sp1 : MinSUP A (ZChain.chain zc))
             → f (MinSUP.sup sp1)  ≡ MinSUP.sup sp1
-     fixpoint f mf zc sp1 = z14 where
+     fixpoint f mf mf< zc sp1 = z14 where
            chain = ZChain.chain zc
            supf = ZChain.supf zc
            sp : Ordinal
@@ -1408,13 +1400,13 @@
            z10 :  {a b : Ordinal } → (ca : odef chain a ) → b o< (& A) → (ab : odef A b )
               →  HasPrev A chain f b  ∨  IsSUP A (UnionCF A f mf as0 (ZChain.supf zc) b) ab
               → * a < * b  → odef chain b
-           z10 = ZChain1.is-max (SZ1 f mf as0 zc (& A) )
+           z10 = ZChain1.is-max (SZ1 f mf mf< as0 zc (& A) )
            z22 : sp o< & A
            z22 = z09 asp
            z12 : odef chain sp
            z12 with o≡? (& s) sp
            ... | yes eq = subst (λ k → odef chain k) eq ( ZChain.chain∋init zc )
-           ... | no ne = ZChain1.is-max (SZ1 f mf as0 zc (& A)) {& s} {sp} ( ZChain.chain∋init zc ) (z09 asp) asp (case2 z19 ) z13 where
+           ... | no ne = ZChain1.is-max (SZ1 f mf mf< as0 zc (& A)) {& s} {sp} ( ZChain.chain∋init zc ) (z09 asp) asp (case2 z19 ) z13 where
                z13 :  * (& s) < * sp
                z13 with MinSUP.x≤sup sp1 ( ZChain.chain∋init zc )
                ... | case1 eq = ⊥-elim ( ne eq )
@@ -1463,7 +1455,7 @@
      z04 nmx zc = <-irr0  {* (cf nmx c)} {* c}
            (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (MinSUP.asm  msp1 ))))
            (subst (λ k → odef A k) (sym &iso) (MinSUP.asm msp1) )
-           (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) zc msp1  ))) -- x ≡ f x ̄
+           (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) (cf-is-<-monotonic nmx ) zc msp1  ))) -- x ≡ f x ̄
                 (proj1 (cf-is-<-monotonic nmx c (MinSUP.asm msp1 ))) where          -- x < f x
 
           supf = ZChain.supf zc