Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1417:04bb6152f691
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 30 Jun 2023 21:37:32 +0900 |
parents | 4d9b60eed372 |
children | 51956de51455 |
files | src/cardinal.agda |
diffstat | 1 files changed, 58 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cardinal.agda Fri Jun 30 20:14:26 2023 +0900 +++ b/src/cardinal.agda Fri Jun 30 21:37:32 2023 +0900 @@ -126,10 +126,10 @@ = record { fun← = λ x lt → h lt (cc0 x) ; fun→ = λ x lt → h⁻¹ lt (cc1 x) - ; funB = ? - ; funA = ? - ; fiso← = λ x lt → be72 x lt (cc1 x) - ; fiso→ = λ x lt → be73 x lt (cc0 x) + ; funB = be74 + ; funA = be75 + ; fiso← = λ x lt → be72 x lt (cc11 (a∋fba x lt) (cc20 lt)) + ; fiso→ = λ x lt → be73 x lt (cc10 (b∋fab x lt) (cc21 lt)) } where gf : Injection a a @@ -150,7 +150,16 @@ a-UC : HOD a-UC = record { od = record { def = λ x → odef (* a) x ∧ (¬ gfImage x) } ; odmax = & (* a) ; <odmax = λ lt → odef< (proj1 lt) } - + + nimg : {x : Ordinal } → (ax : odef (* a) x ) → ¬ (odef UC x) → IsImage b a g x + nimg {x} ax ncn with ODC.p∨¬p O (IsImage b a g x) + ... | case1 img = img + ... | case2 nimg = ⊥-elim ( ncn (a-g ax nimg ) ) + + aucimg : {x : Ordinal } → (cx : odef (* (& a-UC)) x ) → IsImage b a g x + aucimg {x} cx with subst (λ k → odef k x ) *iso cx + ... | ⟪ ax , ncn ⟫ = nimg ax ncn + -- UC ⊆ * a -- f : UC → Image f UC is injection -- g : Image f UC → UC is injection @@ -176,22 +185,16 @@ uc00 : gfImage y uc00 = subst (λ k → odef k y) *iso uy - g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : ¬ (¬ IsImage b a g x) ) → Ordinal - g⁻¹ {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x ) - ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = y - ... | case2 ¬ism = ⊥-elim ( nc0 ¬ism ) + g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : IsImage b a g x ) → Ordinal + g⁻¹ {x} ax record { y = y ; ay = ay ; x=fy = x=fy } = y - b∋g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) (nc0 : ¬ (¬ IsImage b a g x )) → odef (* b) (g⁻¹ ax nc0) - b∋g⁻¹ {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x ) - ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = ay - ... | case2 ¬ism = ⊥-elim ( nc0 ¬ism ) + b∋g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) (nc0 : IsImage b a g x ) → odef (* b) (g⁻¹ ax nc0) + b∋g⁻¹ {x} ax record { y = y ; ay = ay ; x=fy = x=fy } = ay - g⁻¹-iso : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : ¬ (¬ IsImage b a g x )) → fba (g⁻¹ ax nc0) (b∋g⁻¹ ax nc0) ≡ x - g⁻¹-iso {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x ) - ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = sym x=fy - ... | case2 ¬ism = ⊥-elim ( nc0 ¬ism ) + g⁻¹-iso : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : IsImage b a g x ) → fba (g⁻¹ ax nc0) (b∋g⁻¹ ax nc0) ≡ x + g⁻¹-iso {x} ax record { y = y ; ay = ay ; x=fy = x=fy } = sym x=fy - g⁻¹-iso1 : {x : Ordinal } → (bx : odef (* b) x) → (nc0 : ¬ (¬ IsImage b a g (fba x bx) )) → g⁻¹ (a∋fba x bx) nc0 ≡ x + g⁻¹-iso1 : {x : Ordinal } → (bx : odef (* b) x) → (nc0 : IsImage b a g (fba x bx) ) → g⁻¹ (a∋fba x bx) nc0 ≡ x g⁻¹-iso1 {x} bx nc0 = inject g _ _ (b∋g⁻¹ (a∋fba x bx) nc0) bx (g⁻¹-iso (a∋fba x bx) nc0) be10 : Injection (& a-UC) (b - (& (Image (& UC) (Injection-⊆ UC⊆a f) )) ) -- g⁻¹ x @@ -199,9 +202,9 @@ be15 : {x : Ordinal } → odef (* (& a-UC)) x → odef (* a) x be15 {x} lt with subst (λ k → odef k x) *iso lt ... | ⟪ ax , ncn ⟫ = ax - be16 : {x : Ordinal } → odef (* (& a-UC)) x → ¬ ( ¬ IsImage b a g x ) - be16 {x} lt nc0 with subst (λ k → odef k x) *iso lt - ... | ⟪ ax , ncn ⟫ = ⊥-elim ( ncn ? ) + be16 : {x : Ordinal } → odef (* (& a-UC)) x → IsImage b a g x + be16 {x} lt with subst (λ k → odef k x) *iso lt + ... | ⟪ ax , ncn ⟫ = nimg ax ncn be17 : (x : Ordinal) (lt : odef (* (& a-UC)) x) → odef (* (b - & (Image (& UC) (Injection-⊆ UC⊆a f)))) (g⁻¹ (be15 lt) (be16 lt)) be17 x lt = subst ( λ k → odef k (g⁻¹ (be15 lt) (be16 lt))) (sym *iso) ⟪ be19 , (λ img → be18 be14 (subst (λ k → odef k (g⁻¹ (be15 lt) (be16 lt))) *iso img) ) ⟫ where @@ -237,8 +240,7 @@ be17 = trans (inject g _ _ (proj1 ( subst (λ k → odef k x) (*iso) lt )) (b∋fab y ay) x=fy) (fab-eq refl) a-UC-iso0 : (x : Ordinal ) → (cx : odef (* (& a-UC)) x ) → i→ be11 ( i→ be10 x cx ) (iB be10 x cx) ≡ x - a-UC-iso0 x cx = trans (fba-eq refl) ( g⁻¹-iso (proj1 ( subst (λ k → odef k x) (*iso) cx )) - (λ cn → ⊥-elim ? )) + a-UC-iso0 x cx = trans (fba-eq refl) ( g⁻¹-iso (proj1 ( subst (λ k → odef k x) (*iso) cx )) (aucimg cx)) a-UC-iso1 : (x : Ordinal ) → (cx : odef (* (b - (& (Image (& UC) (Injection-⊆ UC⊆a f) )))) x ) → i→ be10 ( i→ be11 x cx ) (iB be11 x cx) ≡ x a-UC-iso1 x cx with ODC.p∨¬p O ( IsImage b a g (fba x (proj1 ( subst (λ k → odef k x) (*iso) cx ))) ) @@ -309,6 +311,24 @@ cc1 : (x : Ordinal) → CC1 x cc1 x = ODC.p∨¬p O (odef (Image (& UC) (Injection-⊆ UC⊆a f)) x) + cc20 : {x : Ordinal } → (lt : odef (* b) x) → CC0 (fba x lt ) + cc20 = ? + + cc21 : {x : Ordinal } → (lt : odef (* a) x) → CC1 (fab x lt ) + cc21 = ? + + -- + -- h : * a → * b + -- h⁻¹ : * b → * a + -- + -- it have to accept any alement in a or b + -- it is handle by different function fU or gU with exclusive conditon CC0 (p ∨ ¬ p) + -- in OrdBijection record, LEM rules are used + -- but we cannot use LEM in second function call on iso parts. + -- so we have to do some devices. + -- + -- otherwise not strict positive on gfImage error will happen + h : {x : Ordinal } → (ax : odef (* a) x) → gfImage x ∨ (¬ gfImage x) → Ordinal h {x} ax (case1 cn) = fU x (subst (λ k → odef k x ) (sym *iso) cn ) h {x} ax (case2 ncn) = i→ be10 x (subst (λ k → odef k x ) (sym *iso) ⟪ ax , ncn ⟫ ) @@ -349,10 +369,23 @@ be70-1 = ? cc10 : {x : Ordinal} → (bx : odef (* b) x) → (cc1 : CC1 x) → CC0 (h⁻¹ bx cc1 ) - cc10 = ? + cc10 {x} bx (case1 x₁) = case1 ? + cc10 {x} bx (case2 x₁) = ? cc11 : {x : Ordinal} → (ax : odef (* a) x) → (cc0 : CC0 x) → CC1 (h ax cc0 ) - cc11 = ? + cc11 {x} bx (case1 x₁) = case1 (subst₂ (λ j k → odef j k ) *iso refl (be04 (subst (λ k → odef k x) (sym *iso) x₁))) + cc11 {x} bx (case2 x₁) = ? + + be74 : (x : Ordinal) (ax : odef (* a) x) → odef (* b) (h ax (cc0 x)) + be74 x ax with cc0 x + ... | case1 lt1 = ? + ... | case2 lt1 with iB be10 ? ? + ... | t = ? + + be75 : (x : Ordinal) (bx : odef (* b) x) → odef (* a) (h⁻¹ bx (cc1 x)) + be75 x lt with cc1 x + ... | case1 lt1 = ? + ... | case2 lt1 = ? be72 : (x : Ordinal) (bx : odef (* b) x) → (cc1 : CC1 x) → h (be71 x bx cc1 ) (cc10 bx cc1) ≡ x be72 x bx (case1 x₁) with cc10 bx (case1 x₁)