Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/OrdUtil.agda @ 1286:619e68271cf8
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 22 May 2023 19:06:25 +0900 |
parents | a8d6ac036d88 |
children |
comparison
equal
deleted
inserted
replaced
1285:302cfb533201 | 1286:619e68271cf8 |
---|---|
257 nexto∅ {x} with trio< o∅ x | 257 nexto∅ {x} with trio< o∅ x |
258 nexto∅ {x} | tri< a ¬b ¬c = ordtrans a x<nx | 258 nexto∅ {x} | tri< a ¬b ¬c = ordtrans a x<nx |
259 nexto∅ {x} | tri≈ ¬a b ¬c = subst (λ k → k o< next x) (sym b) x<nx | 259 nexto∅ {x} | tri≈ ¬a b ¬c = subst (λ k → k o< next x) (sym b) x<nx |
260 nexto∅ {x} | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c ) | 260 nexto∅ {x} | tri> ¬a ¬b c = ⊥-elim ( ¬x<0 c ) |
261 | 261 |
262 next< : {x y z : Ordinal} → x o< next z → y o< next x → y o< next z | |
263 next< {x} {y} {z} x<nz y<nx with trio< y (next z) | |
264 next< {x} {y} {z} x<nz y<nx | tri< a ¬b ¬c = a | |
265 next< {x} {y} {z} x<nz y<nx | tri≈ ¬a b ¬c = ⊥-elim (¬nx<nx x<nz (subst (λ k → k o< next x) b y<nx) | |
266 (λ w nz=ow → o<¬≡ nz=ow (subst₂ (λ j k → j o< k ) (sym nz=ow) nz=ow (osuc<nx (subst (λ k → w o< k ) (sym nz=ow) <-osuc) )))) | |
267 next< {x} {y} {z} x<nz y<nx | tri> ¬a ¬b c = ⊥-elim (¬nx<nx x<nz (ordtrans c y<nx ) | |
268 (λ w nz=ow → o<¬≡ (sym nz=ow) (osuc<nx (subst (λ k → w o< k ) (sym nz=ow) <-osuc )))) | |
269 | |
270 osuc< : {x y : Ordinal} → osuc x ≡ y → x o< y | 262 osuc< : {x y : Ordinal} → osuc x ≡ y → x o< y |
271 osuc< {x} {y} refl = <-osuc | 263 osuc< {x} {y} refl = <-osuc |
272 | 264 |
273 nexto=n : {x y : Ordinal} → x o< next (osuc y) → x o< next y | 265 nexto=n : {x y : Ordinal} → x o< next (osuc y) → x o< next y |
274 nexto=n {x} {y} x<noy = next< (osuc<nx x<nx) x<noy | 266 nexto=n {x} {y} lt = subst (λ k → x o< k ) (sym nexto≡) lt |
275 | |
276 nexto≡ : {x : Ordinal} → next x ≡ next (osuc x) | |
277 nexto≡ {x} with trio< (next x) (next (osuc x) ) | |
278 -- next x o< next (osuc x ) -> osuc x o< next x o< next (osuc x) -> next x ≡ osuc z -> z o o< next x -> osuc z o< next x -> next x o< next x | |
279 nexto≡ {x} | tri< a ¬b ¬c = ⊥-elim (¬nx<nx (osuc<nx x<nx ) a | |
280 (λ z eq → o<¬≡ (sym eq) (osuc<nx (osuc< (sym eq))))) | |
281 nexto≡ {x} | tri≈ ¬a b ¬c = b | |
282 -- next (osuc x) o< next x -> osuc x o< next (osuc x) o< next x -> next (osuc x) ≡ osuc z -> z o o< next (osuc x) ... | |
283 nexto≡ {x} | tri> ¬a ¬b c = ⊥-elim (¬nx<nx (ordtrans <-osuc x<nx) c | |
284 (λ z eq → o<¬≡ (sym eq) (osuc<nx (osuc< (sym eq))))) | |
285 | 267 |
286 next-is-limit : {x y : Ordinal} → ¬ (next x ≡ osuc y) | 268 next-is-limit : {x y : Ordinal} → ¬ (next x ≡ osuc y) |
287 next-is-limit {x} {y} eq = o<¬≡ (sym eq) (osuc<nx y<nx) where | 269 next-is-limit {x} {y} eq = o<¬≡ (sym eq) (osuc<nx y<nx) where |
288 y<nx : y o< next x | 270 y<nx : y o< next x |
289 y<nx = osuc< (sym eq) | 271 y<nx = osuc< (sym eq) |
290 | 272 |
291 omax<next : {x y : Ordinal} → x o< y → omax x y o< next y | 273 omax<next : {x y : Ordinal} → x o< y → omax x y o< next y |
292 omax<next {x} {y} x<y = subst (λ k → k o< next y ) (omax< _ _ x<y ) (osuc<nx x<nx) | 274 omax<next {x} {y} x<y = subst (λ k → k o< next y ) (omax< _ _ x<y ) (osuc<nx x<nx) |
293 | 275 |
294 x<ny→≡next : {x y : Ordinal} → x o< y → y o< next x → next x ≡ next y | 276 -- x<ny→≡next : {x y : Ordinal} → x o< y → y o< next x → next x ≡ next y |
295 x<ny→≡next {x} {y} x<y y<nx with trio< (next x) (next y) | 277 -- x<ny→≡next {x} {y} x<y y<nx with trio< (next x) (next y) |
296 x<ny→≡next {x} {y} x<y y<nx | tri< a ¬b ¬c = -- x < y < next x < next y ∧ next x = osuc z | 278 -- x<ny→≡next {x} {y} x<y y<nx | tri< a ¬b ¬c = -- x < y < next x < next y ∧ next x = osuc z |
297 ⊥-elim ( ¬nx<nx y<nx a (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) | 279 -- ⊥-elim ( ¬nx<nx y<nx a (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) |
298 x<ny→≡next {x} {y} x<y y<nx | tri≈ ¬a b ¬c = b | 280 -- x<ny→≡next {x} {y} x<y y<nx | tri≈ ¬a b ¬c = b |
299 x<ny→≡next {x} {y} x<y y<nx | tri> ¬a ¬b c = -- x < y < next y < next x | 281 -- x<ny→≡next {x} {y} x<y y<nx | tri> ¬a ¬b c = -- x < y < next y < next x |
300 ⊥-elim ( ¬nx<nx (ordtrans x<y x<nx) c (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) | 282 -- ⊥-elim ( ¬nx<nx (ordtrans x<y x<nx) c (λ z eq → o<¬≡ (sym eq) (osuc<nx (subst (λ k → z o< k ) (sym eq) <-osuc )))) |
301 | 283 |
302 ≤next : {x y : Ordinal} → x o≤ y → next x o≤ next y | 284 -- ≤next : {x y : Ordinal} → x o≤ y → next x o≤ next y |
303 ≤next {x} {y} x≤y with trio< (next x) y | 285 -- ≤next {x} {y} x≤y with trio< (next x) y |
304 ≤next {x} {y} x≤y | tri< a ¬b ¬c = ordtrans a (ordtrans x<nx <-osuc ) | 286 -- ≤next {x} {y} x≤y | tri< a ¬b ¬c = ordtrans a (ordtrans x<nx <-osuc ) |
305 ≤next {x} {y} x≤y | tri≈ ¬a refl ¬c = (ordtrans x<nx <-osuc ) | 287 -- ≤next {x} {y} x≤y | tri≈ ¬a refl ¬c = (ordtrans x<nx <-osuc ) |
306 ≤next {x} {y} x≤y | tri> ¬a ¬b c with osuc-≡< x≤y | 288 -- ≤next {x} {y} x≤y | tri> ¬a ¬b c with osuc-≡< x≤y |
307 ≤next {x} {y} x≤y | tri> ¬a ¬b c | case1 refl = o≤-refl -- x = y < next x | 289 -- ≤next {x} {y} x≤y | tri> ¬a ¬b c | case1 refl = o≤-refl -- x = y < next x |
308 ≤next {x} {y} x≤y | tri> ¬a ¬b c | case2 x<y = o≤-refl0 (x<ny→≡next x<y c) -- x ≤ y < next x | 290 -- ≤next {x} {y} x≤y | tri> ¬a ¬b c | case2 x<y = o≤-refl0 (x<ny→≡next x<y c) -- x ≤ y < next x |
309 | 291 |
310 x<ny→≤next : {x y : Ordinal} → x o< next y → next x o≤ next y | 292 -- x<ny→≤next : {x y : Ordinal} → x o< next y → next x o≤ next y |
311 x<ny→≤next {x} {y} x<ny with trio< x y | 293 -- x<ny→≤next {x} {y} x<ny with trio< x y |
312 x<ny→≤next {x} {y} x<ny | tri< a ¬b ¬c = ≤next (ordtrans a <-osuc ) | 294 -- x<ny→≤next {x} {y} x<ny | tri< a ¬b ¬c = ≤next (ordtrans a <-osuc ) |
313 x<ny→≤next {x} {y} x<ny | tri≈ ¬a refl ¬c = o≤-refl | 295 -- x<ny→≤next {x} {y} x<ny | tri≈ ¬a refl ¬c = o≤-refl |
314 x<ny→≤next {x} {y} x<ny | tri> ¬a ¬b c = o≤-refl0 (sym ( x<ny→≡next c x<ny )) | 296 -- x<ny→≤next {x} {y} x<ny | tri> ¬a ¬b c = o≤-refl0 (sym ( x<ny→≡next c x<ny )) |
315 | 297 |
316 omax<nomax : {x y : Ordinal} → omax x y o< next (omax x y ) | 298 -- omax<nomax : {x y : Ordinal} → omax x y o< next (omax x y ) |
317 omax<nomax {x} {y} with trio< x y | 299 -- omax<nomax {x} {y} with trio< x y |
318 omax<nomax {x} {y} | tri< a ¬b ¬c = subst (λ k → osuc y o< k ) nexto≡ (osuc<nx x<nx ) | 300 -- omax<nomax {x} {y} | tri< a ¬b ¬c = subst (λ k → osuc y o< k ) nexto≡ (osuc<nx x<nx ) |
319 omax<nomax {x} {y} | tri≈ ¬a refl ¬c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) | 301 -- omax<nomax {x} {y} | tri≈ ¬a refl ¬c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) |
320 omax<nomax {x} {y} | tri> ¬a ¬b c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) | 302 -- omax<nomax {x} {y} | tri> ¬a ¬b c = subst (λ k → osuc x o< k ) nexto≡ (osuc<nx x<nx ) |
321 | 303 |
322 omax<nx : {x y z : Ordinal} → x o< next z → y o< next z → omax x y o< next z | 304 omax<nx : {x y z : Ordinal} → x o< next z → y o< next z → omax x y o< next z |
323 omax<nx {x} {y} {z} x<nz y<nz with trio< x y | 305 omax<nx {x} {y} {z} x<nz y<nz with trio< x y |
324 omax<nx {x} {y} {z} x<nz y<nz | tri< a ¬b ¬c = osuc<nx y<nz | 306 omax<nx {x} {y} {z} x<nz y<nz | tri< a ¬b ¬c = osuc<nx y<nz |
325 omax<nx {x} {y} {z} x<nz y<nz | tri≈ ¬a refl ¬c = osuc<nx y<nz | 307 omax<nx {x} {y} {z} x<nz y<nz | tri≈ ¬a refl ¬c = osuc<nx y<nz |
326 omax<nx {x} {y} {z} x<nz y<nz | tri> ¬a ¬b c = osuc<nx x<nz | 308 omax<nx {x} {y} {z} x<nz y<nz | tri> ¬a ¬b c = osuc<nx x<nz |
327 | 309 |
328 nn<omax : {x nx ny : Ordinal} → x o< next nx → x o< next ny → x o< next (omax nx ny) | 310 -- nn<omax : {x nx ny : Ordinal} → x o< next nx → x o< next ny → x o< next (omax nx ny) |
329 nn<omax {x} {nx} {ny} xnx xny with trio< nx ny | 311 -- nn<omax {x} {nx} {ny} xnx xny with trio< nx ny |
330 nn<omax {x} {nx} {ny} xnx xny | tri< a ¬b ¬c = subst (λ k → x o< k ) nexto≡ xny | 312 -- nn<omax {x} {nx} {ny} xnx xny | tri< a ¬b ¬c = subst (λ k → x o< k ) nexto≡ xny |
331 nn<omax {x} {nx} {ny} xnx xny | tri≈ ¬a refl ¬c = subst (λ k → x o< k ) nexto≡ xny | 313 -- nn<omax {x} {nx} {ny} xnx xny | tri≈ ¬a refl ¬c = subst (λ k → x o< k ) nexto≡ xny |
332 nn<omax {x} {nx} {ny} xnx xny | tri> ¬a ¬b c = subst (λ k → x o< k ) nexto≡ xnx | 314 -- nn<omax {x} {nx} {ny} xnx xny | tri> ¬a ¬b c = subst (λ k → x o< k ) nexto≡ xnx |
333 | 315 |
334 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where | 316 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where |
335 field | 317 field |
336 os→ : (x : Ordinal) → x o< maxordinal → Ordinal | 318 os→ : (x : Ordinal) → x o< maxordinal → Ordinal |
337 os← : Ordinal → Ordinal | 319 os← : Ordinal → Ordinal |