comparison src/zorn.agda @ 1011:66154af40f89

IChain recursive record avoided
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 20 Nov 2022 17:44:21 +0900
parents f80d525e6a6b
children 6f6daf464616
comparison
equal deleted inserted replaced
1010:f80d525e6a6b 1011:66154af40f89
648 ¬maximal<x : {x : HOD} → A ∋ x → ¬ maximal < x -- A is Partial, use negative 648 ¬maximal<x : {x : HOD} → A ∋ x → ¬ maximal < x -- A is Partial, use negative
649 649
650 init-uchain : (A : HOD) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } → (ay : odef A y ) 650 init-uchain : (A : HOD) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal } → (ay : odef A y )
651 { supf : Ordinal → Ordinal } { x : Ordinal } → odef (UnionCF A f mf ay supf x) y 651 { supf : Ordinal → Ordinal } { x : Ordinal } → odef (UnionCF A f mf ay supf x) y
652 init-uchain A f mf ay = ⟪ ay , ch-init (init ay refl) ⟫ 652 init-uchain A f mf ay = ⟪ ay , ch-init (init ay refl) ⟫
653
654 record IChain (A : HOD) ( f : Ordinal → Ordinal ) {x : Ordinal } (supfz : {z : Ordinal } → z o< x → Ordinal) (z : Ordinal ) : Set n where
655 field
656 i : Ordinal
657 i<x : i o< x
658 fc : FClosure A f (supfz i<x) z
653 659
654 Zorn-lemma : { A : HOD } 660 Zorn-lemma : { A : HOD }
655 → o∅ o< & A 661 → o∅ o< & A
656 → ( ( B : HOD) → (B⊆A : B ⊆' A) → IsTotalOrderSet B → SUP A B ) -- SUP condition 662 → ( ( B : HOD) → (B⊆A : B ⊆' A) → IsTotalOrderSet B → SUP A B ) -- SUP condition
657 → Maximal A 663 → Maximal A
1305 ysp = MinSUP.sup (ysup f mf ay) 1311 ysp = MinSUP.sup (ysup f mf ay)
1306 1312
1307 supfz : {z : Ordinal } → z o< x → Ordinal 1313 supfz : {z : Ordinal } → z o< x → Ordinal
1308 supfz {z} z<x = ZChain.supf (pzc (ob<x lim z<x)) z 1314 supfz {z} z<x = ZChain.supf (pzc (ob<x lim z<x)) z
1309 1315
1310 record IChain (supfz : {z : Ordinal } → z o< x → Ordinal) (z : Ordinal ) : Set n where
1311 field
1312 i : Ordinal
1313 i<x : i o< x
1314 fc : FClosure A f (supfz i<x) z
1315
1316 pchainx : HOD 1316 pchainx : HOD
1317 pchainx = record { od = record { def = λ z → IChain supfz z } ; odmax = & A ; <odmax = zc00 } where 1317 pchainx = record { od = record { def = λ z → IChain A f supfz z } ; odmax = & A ; <odmax = zc00 } where
1318 zc00 : {z : Ordinal } → IChain supfz z → z o< & A 1318 zc00 : {z : Ordinal } → IChain A f supfz z → z o< & A
1319 zc00 {z} ic = z09 ( A∋fc (supfz (IChain.i<x ic)) f mf (IChain.fc ic) ) 1319 zc00 {z} ic = z09 ( A∋fc (supfz (IChain.i<x ic)) f mf (IChain.fc ic) )
1320 1320
1321 zeq : {xa xb z : Ordinal } 1321 zeq : {xa xb z : Ordinal }
1322 → (xa<x : xa o< x) → (xb<x : xb o< x) → xa o≤ xb → z o≤ xa 1322 → (xa<x : xa o< x) → (xb<x : xb o< x) → xa o≤ xb → z o≤ xa
1323 → ZChain.supf (pzc xa<x) z ≡ ZChain.supf (pzc xb<x) z 1323 → ZChain.supf (pzc xa<x) z ≡ ZChain.supf (pzc xb<x) z