Mercurial > hg > Members > kono > Proof > ZF-in-agda
diff Ordinals.agda @ 410:6dcea4c7cba1
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 Jul 2020 12:42:05 +0900 |
parents | 43b0a6ca7602 |
children | 6eaab908130e |
line wrap: on
line diff
--- a/Ordinals.agda Wed Jul 29 00:25:07 2020 +0900 +++ b/Ordinals.agda Wed Jul 29 12:42:05 2020 +0900 @@ -265,6 +265,38 @@ omax<next : {x y : Ordinal} → x o< y → omax x y o< next y omax<next {x} {y} x<y = subst (λ k → k o< next y ) (omax< _ _ x<y ) (osuc<nx x<nx) + x<ny→≡next : {x y : Ordinal} → x o< y → y o< next x → next x ≡ next y + x<ny→≡next {x} {y} x<y y<nx with trio< (next x) (next y) + x<ny→≡next {x} {y} x<y y<nx | tri< a ¬b ¬c = -- x < y < next x < next y ∧ next x = osuc z + ⊥-elim ( ¬nx<nx y<nx a (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) + x<ny→≡next {x} {y} x<y y<nx | tri≈ ¬a b ¬c = b + 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) + + 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 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 )) + + omax<nomax : {x y : Ordinal} → omax x y o< next (omax x y ) + omax<nomax {x} {y} with trio< x y + omax<nomax {x} {y} | tri< a ¬b ¬c = subst (λ k → osuc y o< k ) nexto≡ (osuc<nx x<nx ) + omax<nomax {x} {y} | tri≈ ¬a refl ¬c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) + omax<nomax {x} {y} | tri> ¬a ¬b c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) + + omax<nx : {x y z : Ordinal} → x o< next z → y o< next z → omax x y o< next z + omax<nx {x} {y} {z} x<nz y<nz with trio< x y + omax<nx {x} {y} {z} x<nz y<nz | tri< a ¬b ¬c = osuc<nx y<nz + omax<nx {x} {y} {z} x<nz y<nz | tri≈ ¬a refl ¬c = osuc<nx y<nz + omax<nx {x} {y} {z} x<nz y<nz | tri> ¬a ¬b c = osuc<nx x<nz + record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where field os→ : (x : Ordinal) → x o< maxordinal → Ordinal