Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison src/zorn.agda @ 741:adbe43c07ce7
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 21 Jul 2022 03:56:54 +0900 |
parents | 11f46927e3f7 |
children | de9d9c70a0d7 |
comparison
equal
deleted
inserted
replaced
740:11f46927e3f7 | 741:adbe43c07ce7 |
---|---|
247 field | 247 field |
248 sup : HOD | 248 sup : HOD |
249 A∋maximal : A ∋ sup | 249 A∋maximal : A ∋ sup |
250 x<sup : {x : HOD} → B ∋ x → (x ≡ sup ) ∨ (x < sup ) -- B is Total, use positive | 250 x<sup : {x : HOD} → B ∋ x → (x ≡ sup ) ∨ (x < sup ) -- B is Total, use positive |
251 | 251 |
252 record IsSup>b (A : HOD) (b : Ordinal) (p : Ordinal) : Set n where | |
253 field | |
254 x2 : Ordinal | |
255 ax2 : odef A x2 | |
256 b<x2 : b o< x2 | |
257 is-sup>b : IsSup A (* p) ax2 | |
258 -- | 252 -- |
259 -- sup and its fclosure is in a chain HOD | 253 -- sup and its fclosure is in a chain HOD |
260 -- chain HOD is sorted by sup as Ordinal and <-ordered | 254 -- chain HOD is sorted by sup as Ordinal and <-ordered |
261 -- whole chain is a union of separated Chain | 255 -- whole chain is a union of separated Chain |
262 -- minimum index is y not ϕ | 256 -- minimum index is y not ϕ |
265 record ChainP (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal) (u z : Ordinal) : Set n where | 259 record ChainP (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal) (u z : Ordinal) : Set n where |
266 field | 260 field |
267 fcy<sup : {z : Ordinal } → FClosure A f y z → z << supf u | 261 fcy<sup : {z : Ordinal } → FClosure A f y z → z << supf u |
268 csupz : FClosure A f (supf u) z | 262 csupz : FClosure A f (supf u) z |
269 order : {sup1 z1 : Ordinal} → (lt : sup1 o< u ) → FClosure A f (supf sup1 ) z1 → z1 << supf u | 263 order : {sup1 z1 : Ordinal} → (lt : sup1 o< u ) → FClosure A f (supf sup1 ) z1 → z1 << supf u |
270 | |
271 -- u>0 : o∅ o< u -- ¬ ch-init | |
272 -- supf=u : supf u ≡ u | |
273 -- supf-mono : {a b : Ordinal } → a o≤ b → supf a o≤ supf b | |
274 -- supf-< : {a b : Ordinal } → a o≤ b → (supf a ≡ supf b) ∨ (supf a << supf b) | |
275 -- au : odef A u | |
276 -- ¬u=fx : {x : Ordinal} → ¬ ( u ≡ f x ) | |
277 -- asup : (x : Ordinal) → odef A (supf x) | |
278 | |
279 | 264 |
280 data Chain (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal) : Ordinal → Ordinal → Set n where | 265 data Chain (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal) : Ordinal → Ordinal → Set n where |
281 ch-init : (z : Ordinal) → FClosure A f y z → Chain A f mf ay supf o∅ z | 266 ch-init : (z : Ordinal) → FClosure A f y z → Chain A f mf ay supf o∅ z |
282 ch-is-sup : {sup z : Ordinal } | 267 ch-is-sup : {sup z : Ordinal } |
283 → ( is-sup : ChainP A f mf ay supf sup z) | 268 → ( is-sup : ChainP A f mf ay supf sup z) |
311 chain⊆A : chain ⊆' A | 296 chain⊆A : chain ⊆' A |
312 chain∋init : odef chain init | 297 chain∋init : odef chain init |
313 initial : {y : Ordinal } → odef chain y → * init ≤ * y | 298 initial : {y : Ordinal } → odef chain y → * init ≤ * y |
314 f-next : {a : Ordinal } → odef chain a → odef chain (f a) | 299 f-next : {a : Ordinal } → odef chain a → odef chain (f a) |
315 f-total : IsTotalOrderSet chain | 300 f-total : IsTotalOrderSet chain |
316 sup=u : {b : Ordinal} → (ab : odef A b) → IsSup A chain ab → supf b ≡ b | 301 sup=u : {b : Ordinal} → {ab : odef A b} → b o< z → IsSup A chain ab → supf b ≡ b |
317 -- chain<A : {z : Ordinal } → UnionCF A f mf ay supf z ⊆' UnionCF A f mf ay supf (& A) | 302 order : {sup1 b z1 : Ordinal} → b o< z → sup1 o< b → FClosure A f (supf sup1) z1 → z1 << supf b |
318 | 303 |
319 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) | 304 record ZChain1 ( A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) |
320 {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where | 305 {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where |
321 field | 306 field |
322 chain-mono2 : { a b c : Ordinal } → | 307 chain-mono2 : { a b c : Ordinal } → |
323 a o≤ b → b o≤ z → odef (UnionCF A f mf ay (ZChain.supf zc) a) c → odef (UnionCF A f mf ay (ZChain.supf zc) b) c | 308 a o≤ b → b o≤ z → odef (UnionCF A f mf ay (ZChain.supf zc) a) c → odef (UnionCF A f mf ay (ZChain.supf zc) b) c |
324 is-max : {a b : Ordinal } → (ca : odef (UnionCF A f mf ay (ZChain.supf zc) z) a ) → b o< z → (ab : odef A b) | 309 is-max : {a b : Ordinal } → (ca : odef (UnionCF A f mf ay (ZChain.supf zc) z) a ) → b o< z → (ab : odef A b) |
325 → HasPrev A (UnionCF A f mf ay (ZChain.supf zc) z) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) z) ab | 310 → HasPrev A (UnionCF A f mf ay (ZChain.supf zc) z) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) z) ab |
326 → * a < * b → odef ((UnionCF A f mf ay (ZChain.supf zc) z)) b | 311 → * a < * b → odef ((UnionCF A f mf ay (ZChain.supf zc) z)) b |
312 fcy<sup : {u w : Ordinal } → u o< z → FClosure A f init w → w << (ZChain.supf zc) u | |
327 | 313 |
328 record Maximal ( A : HOD ) : Set (Level.suc n) where | 314 record Maximal ( A : HOD ) : Set (Level.suc n) where |
329 field | 315 field |
330 maximal : HOD | 316 maximal : HOD |
331 A∋maximal : A ∋ maximal | 317 A∋maximal : A ∋ maximal |
498 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) a → | 484 is-max : {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) a → |
499 b o< x → (ab : odef A b) → | 485 b o< x → (ab : odef A b) → |
500 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab → | 486 HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab → |
501 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b | 487 * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b |
502 is-max {a} {b} ua b<x ab (case1 has-prev) a<b = is-max-hp x {a} {b} ua b<x ab has-prev a<b | 488 is-max {a} {b} ua b<x ab (case1 has-prev) a<b = is-max-hp x {a} {b} ua b<x ab has-prev a<b |
503 is-max {a} {b} ua b<x ab (case2 is-sup) a<b = chain-mono2 x ? o≤-refl m04 where | 489 is-max {a} {b} ua b<x ab (case2 is-sup) a<b = chain-mono2 x (o<→≤ ob<x) o≤-refl m04 where |
504 m12 : {sup1 z1 : Ordinal} → sup1 o< b → FClosure A f (ZChain.supf zc sup1) z1 → odef (UnionCF A f mf ay (ZChain.supf zc) x) z1 | 490 ob<x : osuc b o< x |
505 m12 = ? | 491 ob<x with trio< (osuc b) x |
506 m11 : {sup1 z1 : Ordinal} → sup1 o< b → FClosure A f (ZChain.supf zc sup1) z1 → z1 << ZChain.supf zc b | 492 ... | tri< a ¬b ¬c = a |
507 m11 {sup1} {z1} s<b fc with IsSup.x<sup is-sup (m12 s<b fc) | 493 ... | tri≈ ¬a ob=x ¬c = ⊥-elim ( lim record { op = b ; oprev=x = ob=x } ) |
508 ... | t = ? | 494 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ b<x , c ⟫ ) |
509 m07 : {z : Ordinal} → FClosure A f y z → z << ZChain.supf zc b | 495 m07 : {z : Ordinal} → FClosure A f y z → z << ZChain.supf zc b |
510 m07 {y} (init ay1) = ? | 496 m07 {z} fc = ZChain1.fcy<sup (prev (osuc b) ob<x) <-osuc fc |
511 m07 {.(f x)} (fsuc x fc) with proj1 (mf x (A∋fc y f mf fc)) | 497 m08 : {sup1 z1 : Ordinal} → sup1 o< b → FClosure A f (ZChain.supf zc sup1) z1 → z1 << ZChain.supf zc b |
512 ... | case1 eq = subst ( λ k → k << ZChain.supf zc b) (subst₂ (λ j k → j ≡ k) &iso &iso (cong (&) eq)) (m07 fc) | 498 m08 = ? |
513 ... | case2 lt with ODC.p∨¬p O ( f x << ZChain.supf zc b ) | |
514 ... | case1 p = p | |
515 ... | case2 np = ? where | |
516 m08 : x << ZChain.supf zc b | |
517 m08 = m07 fc | |
518 m09 : ⊥ | |
519 m09 = fcn-imm y f mf ? ? ⟪ m08 , ? ⟫ | |
520 m10 : ? ∨ ( ? << b ) | |
521 m10 = IsSup.x<sup is-sup ? -- (proj2 (mf x (A∋fc y f mf fc))) | |
522 m05 : b ≡ ZChain.supf zc b | 499 m05 : b ≡ ZChain.supf zc b |
523 m10 : {sup1 z1 : Ordinal} → sup1 o< b → FClosure A f (ZChain.supf zc sup1) z1 → z1 << ZChain.supf zc b | 500 m05 = sym (ZChain.sup=u zc {_} {ab} ? |
524 m05 = sym (ZChain.sup=u ? ab is-sup) -- ZChain on x | 501 record { x<sup = λ lt → IsSup.x<sup is-sup (chain-mono2 x (o<→≤ ob<x) o≤-refl ? )} ) -- ZChain on x |
525 m06 : ChainP A f mf ay (ZChain.supf zc) b b | 502 m06 : ChainP A f mf ay (ZChain.supf zc) b b |
526 m06 = record { fcy<sup = ? ; csupz = subst (λ k → FClosure A f k b ) m05 (init ab) ; order = ? } | 503 m06 = record { fcy<sup = m07 ; csupz = subst (λ k → FClosure A f k b ) m05 (init ab) ; order = m08 } |
527 m04 : odef (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) b | 504 m04 : odef (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) b |
528 m04 = ⟪ ab , record { u = b ; u<x = case1 <-osuc ; uchain = ch-is-sup m06 (subst (λ k → FClosure A f k b) m05 (init ab)) } ⟫ | 505 m04 = ⟪ ab , record { u = b ; u<x = case1 <-osuc ; uchain = ch-is-sup m06 (subst (λ k → FClosure A f k b) m05 (init ab)) } ⟫ |
529 | 506 |
530 --- | 507 --- |
531 --- the maximum chain has fix point of any ≤-monotonic function | 508 --- the maximum chain has fix point of any ≤-monotonic function |