# HG changeset patch # User Shinji KONO # Date 1687858721 -32400 # Node ID ac854f01352bf55336cd670730c55aedbacb9c72 # Parent e39c2bffb86ed0212b2a89a601017d93fe65cfc4 ... diff -r e39c2bffb86e -r ac854f01352b src/cardinal.agda --- a/src/cardinal.agda Tue Jun 27 10:50:07 2023 +0900 +++ b/src/cardinal.agda Tue Jun 27 18:38:41 2023 +0900 @@ -178,8 +178,14 @@ fba-refl : {x : Ordinal } → {bx bx1 : odef (* b) x} → fba x bx ≡ fba x bx1 fba-refl {x} {bx} {bx1} = cong (λ k → fba x k) ( HE.≅-to-≡ ( ∋-irr {* b} bx bx1 )) + fab-eq : {x y : Ordinal } → {ax : odef (* a) x} {ax1 : odef (* a) y} → x ≡ y → fab x ax ≡ fab y ax1 + fab-eq {x} {x} {ax} {ax1} refl = cong (λ k → fab x k) ( HE.≅-to-≡ ( ∋-irr {* a} ax ax1 )) + + fba-eq : {x y : Ordinal } → {bx : odef (* b) x} {bx1 : odef (* b) y} → x ≡ y → fba x bx ≡ fba y bx1 + fba-eq {x} {x} {bx} {bx1} refl = cong (λ k → fba x k) ( HE.≅-to-≡ ( ∋-irr {* b} bx bx1 )) + be10 : Injection (& b-UC) (& (Image (& b-UC) {a} (Injection-⊆ b-UC⊆b g) )) - be10 = record { i→ = be12 ; iB = be13 ; inject = ? } where + be10 = record { i→ = be12 ; iB = be13 ; inject = be14 } where be12 : (x : Ordinal) → odef (* (& b-UC)) x → Ordinal be12 x lt = i→ g x (proj1 be02) where be02 : odef (* b) x ∧ ( ¬ CN x ) @@ -188,15 +194,35 @@ be13 x lt = subst (λ k → odef k (be12 x lt)) (sym *iso) record { y = x ; ay = subst (λ k → odef k x) (sym *iso) be02 ; x=fy = fba-refl } where be02 : odef (* b) x ∧ ( ¬ CN x ) be02 = subst (λ k → odef k x) *iso lt - + be14 : (x y : Ordinal) (ltx : odef (* (& b-UC)) x) (lty : odef (* (& b-UC)) y) → be12 x ltx ≡ be12 y lty → x ≡ y + be14 x y ltx lty eq = inject g _ _ (proj1 (subst (λ k → odef k x) *iso ltx)) (proj1 (subst (λ k → odef k y) *iso lty)) eq be11 : Injection (& (Image (& b-UC) {a} (Injection-⊆ b-UC⊆b g) )) (& b-UC) - be11 = record { i→ = be13 ; iB = ? ; inject = ? } where + be11 = record { i→ = be13 ; iB = be14 ; inject = be15 } where be13 : (x : Ordinal) → odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x → Ordinal be13 x lt with subst (λ k → odef k x) *iso lt - ... | record { y = y ; ay = ay ; x=fy = x=fy } = y where -- x=fy : x ≡ fba y (proj1 (subst (λ k → OD.def (od k) y) *iso ay)) - be02 : odef (* b) y ∧ ( ¬ CN y ) - be02 = subst (λ k → odef k y) *iso ay + ... | record { y = y ; ay = ay ; x=fy = x=fy } = y -- g⁻¹ x=fy : x ≡ fba y (proj1 (subst (λ k → OD.def (od k) y) *iso ay)) + be14 : (x : Ordinal) (lt : odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x) → odef (* (& b-UC)) (be13 x lt) + be14 x lt with subst (λ k → odef k x) *iso lt + ... | record { y = y ; ay = ay ; x=fy = x=fy } = ay + be15 : (x y : Ordinal) (ltx : odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x) + (lty : odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) y) → + be13 x ltx ≡ be13 y lty → x ≡ y + be15 x y ltx lty eq with subst (λ k → odef k x) *iso ltx | subst (λ k → odef k y) *iso lty + ... | record { y = ix ; ay = aix ; x=fy = x=fix } | record { y = iy ; ay = aiy ; x=fy = x=fiy } + = trans x=fix (trans ( fba-eq eq ) (sym x=fiy ) ) + + b-UC-iso0 : (x : Ordinal ) → (cx : odef (* (& b-UC)) x ) → i→ be11 ( i→ be10 x cx ) (iB be10 x cx) ≡ x + b-UC-iso0 x cx with subst (λ k → odef k ( i→ be10 x cx ) ) *iso (iB be10 x cx) + ... | record { y = y ; ay = ay ; x=fy = x=fy } = inject g _ _ (proj1 be03) (proj1 be02) (sym x=fy) where + be02 : odef (* b) x ∧ ( ¬ CN x ) + be02 = subst (λ k → odef k x) *iso cx + be03 : odef (* b) y ∧ ( ¬ CN y ) + be03 = subst (λ k → odef k y) *iso ay + + b-UC-iso1 : (x : Ordinal ) → (cx : odef (* (& (Image (& b-UC) {a} (Injection-⊆ b-UC⊆b g)))) x ) → i→ be10 ( i→ be11 x cx ) (iB be11 x cx) ≡ x + b-UC-iso1 x cx with subst (λ k → odef k x ) *iso cx + ... | record { y = y ; ay = ay ; x=fy = x=fy } = sym x=fy fUC = & (Image (& UC) {b} (Injection-⊆ UC⊆a f) ) -- C n → f (C n) @@ -243,21 +269,44 @@ ay = a∋gfImage (suc j) (next-gf gfyi iy ) + -- f (C n) → g (f (C n) ) ≡ C (suc i) Uf : Injection (& (Image (& UC) {b} (Injection-⊆ UC⊆a f))) (& UC) Uf = record { i→ = be00 ; iB = be01 ; inject = ? } where be00 : (x : Ordinal) → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x → Ordinal be00 x lt with subst (λ k → odef k x ) *iso lt ... | record { y = y ; ay = ay ; x=fy = x=fy } = fba x (subst (λ k → odef (* b) k ) (trans fab-refl (sym x=fy)) (b∋fab y (UC⊆a ay) ) ) be01 : (x : Ordinal) → (lt : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ) → odef (* (& UC)) (be00 x lt) - be01 x lt with subst (λ k → odef k x) *iso lt - ... | record { y = y ; ay = ay ; x=fy = x=fy } = subst₂ (λ j k → odef j k ) (sym *iso) fba-refl be02 where + be01 x lt with subst (λ k → odef k x) *iso lt + ... | record { y = y ; ay = ay ; x=fy = x=fy } = subst₂ (λ j k → odef j k ) (sym *iso) fba-refl + record { i = suc (CN.i be04 ) ; gfix = next-gf (CN.gfix be04) record { y = y ; ay = a∋gfImage (CN.i be04) (CN.gfix be04) ; x=fy = be06 } } + where be04 : CN y be04 = subst (λ k → odef k y) *iso ay - be02 : CN (be00 x lt) - be02 = record { i = suc (CN.i be04 ) ; gfix = next-gf (CN.gfix be04) record { y = ? ; ay = ? ; x=fy = ? } } - be03 : x ≡ fab y (a∋gfImage (CN.i be04) (CN.gfix be04)) - be03 = x=fy - + bx : odef (* b) x + bx = subst (λ k → odef (* b) k ) (sym x=fy) ( b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04))) + be06 : fba x bx ≡ fba (fab y (a∋gfImage (CN.i be04) (CN.gfix be04))) (b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04)) ) + be06 = fba-eq x=fy + be02 : (x y : Ordinal) (ltx : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) x) + (lty : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) y) → + be00 x ltx ≡ be00 y lty → x ≡ y + be02 x y ltx lty eq with subst (λ k → odef k x) *iso ltx | subst (λ k → odef k y) *iso lty + ... | record { y = ix ; ay = aix ; x=fy = x=fix } | record { y = iy ; ay = aiy ; x=fy = x=fiy } + = inject g _ _ bx by (trans fba-refl (trans eq fba-refl )) where + be04 : CN ix + be04 = subst (λ k → odef k ix) *iso aix + be06 : CN iy + be06 = subst (λ k → odef k iy) *iso aiy + bx : odef (* b) x + bx = subst (λ k → odef (* b) k ) (sym x=fix) ( b∋fab ix (a∋gfImage (CN.i be04) (CN.gfix be04))) + by : odef (* b) y + by = subst (λ k → odef (* b) k ) (sym x=fiy) ( b∋fab iy (a∋gfImage (CN.i be06) (CN.gfix be06))) + + UC-iso0 : (x : Ordinal ) → (cx : odef (* (& UC)) x ) → i→ Uf ( i→ fU x cx ) (iB fU x cx) ≡ x + UC-iso0 x cx = ? + + UC-iso1 : (x : Ordinal ) → (cx : odef (* (& (Image (& UC) {b} (Injection-⊆ UC⊆a f)))) x ) → i→ fU ( i→ Uf x cx ) (iB Uf x cx) ≡ x + UC-iso1 = ? + be00 : OrdBijection a b be00 with trio< a b