changeset 1014:8025c5d01153

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 23 Nov 2022 18:03:23 +0900
parents 2362c2d89d36
children c804e302f110
files src/zorn.agda
diffstat 1 files changed, 28 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Wed Nov 23 16:12:51 2022 +0900
+++ b/src/zorn.agda	Wed Nov 23 18:03:23 2022 +0900
@@ -475,6 +475,12 @@
    ... | tri≈ ¬a b ¬c = o≤-refl0 b
    ... | tri> ¬a ¬b c = ⊥-elim (<-irr (case2 sx<sy ) (supf-< c) )
 
+   supf-<inject : {x y : Ordinal } → supf x << supf  y → supf x o< supf y
+   supf-<inject {x} {y} sx<sy with trio< (supf x) (supf y)
+   ... | tri< a ¬b ¬c = a
+   ... | tri≈ ¬a b ¬c = ⊥-elim (<-irr (case1 (cong (*) (sym b)) ) sx<sy )
+   ... | tri> ¬a ¬b c = ⊥-elim (<-irr (case2 sx<sy ) (supf-< c) )
+
    supf-inject : {x y : Ordinal } → supf x o< supf y → x o<  y
    supf-inject {x} {y} sx<sy with trio< x y
    ... | tri< a ¬b ¬c = a
@@ -531,14 +537,29 @@
        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 :    ( {a : Ordinal } → odef A a → a << f a )
-      →  {x y wx wy  : Ordinal} →  FClosure A f (supf x) wx  →  FClosure A f (supf y) wy → wx ≡ wy → supf x ≡ supf y
-   fc-inject mf< (init xa eqa) (init ya eqb) refl = trans eqa (sym eqb)
-   fc-inject mf< {x} (init xa eqx) (fsuc ya fcy) eq = ⊥-elim ( supf-¬hp ? mf< record { ax = asupf ; y = ya ; ay = ? ; x=fy = trans eqx eq } ) where
+   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 (init xa eqa) (init ya eqb) refl = trans eqa (sym eqb)
+   fc-inject {x} {y} mf< x≤z y≤z sx<z sy<z (init xa eqx) (fsuc ya fcy) eq = 
+     ⊥-elim ( supf-¬hp x≤z (λ xa → proj1 (mf< _ xa)) record { ax = asupf ; y = ya ; ay = z53 ; x=fy = trans eqx eq } ) where
+        sy<sx : supf y << supf x
+        sy<sx =  ftrans<=-<  (≤to<= (s≤fc (supf y) f mf fcy)) (subst₂ (λ j k → j << k ) refl (trans (sym eq) (sym eqx)) 
+            (proj1 ( mf< _ (A∋fc (supf y) f mf fcy) )))
         z53 : odef (UnionCF A f mf ay supf x) ya
-        z53 = cfcs ? ? ? ? fcy
-   fc-inject mf< (fsuc xa fcx) (init ya eqy) eq = ?
-   fc-inject mf< (fsuc xa fcx) (fsuc ya fcy) eq = fc-inject mf< fcx fcy ? 
+        z53 = cfcs mf< (supf-inject (supf-<inject sy<sx)) x≤z sy<z fcy
+   fc-inject {x} {y} mf< x≤z y≤z sx<z sy<z (fsuc xa fcx) (init ya eqy) eq = 
+     ⊥-elim ( supf-¬hp y≤z (λ xa → proj1 (mf< _ xa)) record { ax = asupf ; y = xa ; ay = z53 ; x=fy = trans eqy (sym eq) } ) where
+        sx<sy : supf x << supf y
+        sx<sy =  ftrans<=-<  (≤to<= (s≤fc (supf x) f mf fcx)) (subst₂ (λ j k → j << k ) refl (trans eq (sym eqy)) 
+            (proj1 ( mf< _ (A∋fc (supf x) f mf fcx) )))
+        z53 : odef (UnionCF A f mf ay supf y) xa
+        z53 = cfcs mf< (supf-inject (supf-<inject sx<sy))  y≤z sx<z fcx
+   fc-inject mf< x≤z y≤z sx<z sy<z (fsuc xa fcx) (fsuc ya fcy) eq = fc-inject mf< x≤z y≤z sx<z sy<z  fcx fcy (z54 eq)  where
+        z54 : f xa ≡ f ya  → xa ≡ ya
+        z54 fa=fb with trio< xa ya
+        ... | tri< a ¬b ¬c = ?
+        ... | tri≈ ¬a b ¬c = b
+        ... | tri> ¬a ¬b c = ?
 
 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 )