Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison 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 |
comparison
equal
deleted
inserted
replaced
409:3fba5f805e50 | 410:6dcea4c7cba1 |
---|---|
263 y<nx = osuc< (sym eq) | 263 y<nx = osuc< (sym eq) |
264 | 264 |
265 omax<next : {x y : Ordinal} → x o< y → omax x y o< next y | 265 omax<next : {x y : Ordinal} → x o< y → omax x y o< next y |
266 omax<next {x} {y} x<y = subst (λ k → k o< next y ) (omax< _ _ x<y ) (osuc<nx x<nx) | 266 omax<next {x} {y} x<y = subst (λ k → k o< next y ) (omax< _ _ x<y ) (osuc<nx x<nx) |
267 | 267 |
268 x<ny→≡next : {x y : Ordinal} → x o< y → y o< next x → next x ≡ next y | |
269 x<ny→≡next {x} {y} x<y y<nx with trio< (next x) (next y) | |
270 x<ny→≡next {x} {y} x<y y<nx | tri< a ¬b ¬c = -- x < y < next x < next y ∧ next x = osuc z | |
271 ⊥-elim ( ¬nx<nx y<nx a (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) | |
272 x<ny→≡next {x} {y} x<y y<nx | tri≈ ¬a b ¬c = b | |
273 x<ny→≡next {x} {y} x<y y<nx | tri> ¬a ¬b c = -- x < y < next y < next x | |
274 ⊥-elim ( ¬nx<nx (ordtrans x<y x<nx) c (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) | |
275 | |
276 ≤next : {x y : Ordinal} → x o< y → next x o≤ next y | |
277 ≤next {x} {y} x<y with trio< (next x) y | |
278 ≤next {x} {y} x<y | tri< a ¬b ¬c = ordtrans a (ordtrans x<nx <-osuc ) | |
279 ≤next {x} {y} x<y | tri≈ ¬a refl ¬c = (ordtrans x<nx <-osuc ) | |
280 ≤next {x} {y} x<y | tri> ¬a ¬b c = o≤-refl (x<ny→≡next x<y c) | |
281 | |
282 x<ny→≤next : {x y : Ordinal} → x o< next y → next x o≤ next y | |
283 x<ny→≤next {x} {y} x<ny with trio< x y | |
284 x<ny→≤next {x} {y} x<ny | tri< a ¬b ¬c = ≤next a | |
285 x<ny→≤next {x} {y} x<ny | tri≈ ¬a refl ¬c = o≤-refl refl | |
286 x<ny→≤next {x} {y} x<ny | tri> ¬a ¬b c = o≤-refl (sym ( x<ny→≡next c x<ny )) | |
287 | |
288 omax<nomax : {x y : Ordinal} → omax x y o< next (omax x y ) | |
289 omax<nomax {x} {y} with trio< x y | |
290 omax<nomax {x} {y} | tri< a ¬b ¬c = subst (λ k → osuc y o< k ) nexto≡ (osuc<nx x<nx ) | |
291 omax<nomax {x} {y} | tri≈ ¬a refl ¬c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) | |
292 omax<nomax {x} {y} | tri> ¬a ¬b c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) | |
293 | |
294 omax<nx : {x y z : Ordinal} → x o< next z → y o< next z → omax x y o< next z | |
295 omax<nx {x} {y} {z} x<nz y<nz with trio< x y | |
296 omax<nx {x} {y} {z} x<nz y<nz | tri< a ¬b ¬c = osuc<nx y<nz | |
297 omax<nx {x} {y} {z} x<nz y<nz | tri≈ ¬a refl ¬c = osuc<nx y<nz | |
298 omax<nx {x} {y} {z} x<nz y<nz | tri> ¬a ¬b c = osuc<nx x<nz | |
299 | |
268 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where | 300 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where |
269 field | 301 field |
270 os→ : (x : Ordinal) → x o< maxordinal → Ordinal | 302 os→ : (x : Ordinal) → x o< maxordinal → Ordinal |
271 os← : Ordinal → Ordinal | 303 os← : Ordinal → Ordinal |
272 os←limit : (x : Ordinal) → os← x o< maxordinal | 304 os←limit : (x : Ordinal) → os← x o< maxordinal |