diff Ordinals.agda @ 411:6eaab908130e

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 29 Jul 2020 21:51:00 +0900
parents 6dcea4c7cba1
children aa306f5dab9b
line wrap: on
line diff
--- a/Ordinals.agda	Wed Jul 29 12:42:05 2020 +0900
+++ b/Ordinals.agda	Wed Jul 29 21:51:00 2020 +0900
@@ -172,6 +172,14 @@
         omax<  x y lt | tri≈ ¬a b ¬c = ⊥-elim (¬a lt )
         omax<  x y lt | tri> ¬a ¬b c = ⊥-elim (¬a lt )
 
+        omax≤ :  ( x y : Ordinal  ) → x o≤ y → osuc y ≡ omax x y
+        omax≤  x y le with trio< x y
+        omax≤  x y le | tri< a ¬b ¬c = refl
+        omax≤  x y le | tri≈ ¬a refl ¬c = refl
+        omax≤  x y le | tri> ¬a ¬b c with osuc-≡< le
+        omax≤ x y le | tri> ¬a ¬b c | case1 eq = ⊥-elim (¬b eq)
+        omax≤ x y le | tri> ¬a ¬b c | case2 x<y = ⊥-elim (¬a x<y)
+
         omax≡ :  ( x y : Ordinal  ) → x ≡ y → osuc y ≡ omax x y
         omax≡  x y eq with trio< x y
         omax≡  x y eq | tri< a ¬b ¬c = ⊥-elim (¬b eq )
@@ -273,15 +281,17 @@
         x<ny→≡next {x} {y} x<y y<nx | tri> ¬a ¬b c =          -- x < y < next y < next x
              ⊥-elim ( ¬nx<nx (ordtrans x<y x<nx) c (λ z eq →  o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) 
 
-        ≤next : {x y : Ordinal} → x o< y → next x o≤ next y
-        ≤next {x} {y} x<y with trio< (next x) y
-        ≤next {x} {y} x<y | tri< a ¬b ¬c = ordtrans a (ordtrans x<nx <-osuc )
-        ≤next {x} {y} x<y | tri≈ ¬a refl ¬c = (ordtrans x<nx <-osuc )
-        ≤next {x} {y} x<y | tri> ¬a ¬b c = o≤-refl (x<ny→≡next x<y c)
+        ≤next : {x y : Ordinal} → x o≤ y → next x o≤ next y
+        ≤next {x} {y} x≤y with trio< (next x) y
+        ≤next {x} {y} x≤y | tri< a ¬b ¬c = ordtrans a (ordtrans x<nx <-osuc )
+        ≤next {x} {y} x≤y | tri≈ ¬a refl ¬c = (ordtrans x<nx <-osuc )
+        ≤next {x} {y} x≤y | tri> ¬a ¬b c with osuc-≡< x≤y
+        ≤next {x} {y} x≤y | tri> ¬a ¬b c | case1 refl = o≤-refl refl   -- x = y < next x
+        ≤next {x} {y} x≤y | tri> ¬a ¬b c | case2 x<y = o≤-refl (x<ny→≡next x<y c) -- x ≤ y < next x 
 
         x<ny→≤next : {x y : Ordinal} → x o< next y → next x o≤ next y
         x<ny→≤next {x} {y} x<ny with trio< x y
-        x<ny→≤next {x} {y} x<ny | tri< a ¬b ¬c =  ≤next a
+        x<ny→≤next {x} {y} x<ny | tri< a ¬b ¬c =  ≤next (ordtrans a <-osuc )
         x<ny→≤next {x} {y} x<ny | tri≈ ¬a refl ¬c =  o≤-refl refl
         x<ny→≤next {x} {y} x<ny | tri> ¬a ¬b c = o≤-refl (sym ( x<ny→≡next c x<ny ))