changeset 1275:e7743ac5a070

OrdBijection (& (ZFP A B)) (& (ZFP B A))
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 05 Apr 2023 08:09:49 +0900
parents b15dd4438d50
children c077532416d9
files src/ZProduct.agda
diffstat 1 files changed, 19 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/ZProduct.agda	Mon Apr 03 15:02:36 2023 +0900
+++ b/src/ZProduct.agda	Wed Apr 05 08:09:49 2023 +0900
@@ -233,22 +233,26 @@
 
 ZFPsym : (A B  : HOD) → OrdBijection (& (ZFP A B)) (& (ZFP B A))
 ZFPsym A B = record {
-       fun←  = λ xy ab → & < * (zπ2 (subst (λ k → odef k xy) *iso ab)) , * (zπ1 (subst (λ k → odef k xy) *iso ab)) > 
-     ; fun→  = λ xy ba → & < * (zπ2 (subst (λ k → odef k xy) *iso ba)) , * (zπ1 (subst (λ k → odef k xy) *iso ba)) > 
-     ; funB  = λ xy ab → subst (λ k → odef k (&
-             < * (zπ2 (subst (λ k → odef k xy) *iso ab)) , * (zπ1 (subst (λ k → odef k xy) *iso ab)) >)) 
-          (sym *iso) ( ab-pair (zp2 (subst (λ k → odef k xy) *iso ab)) (zp1 (subst (λ k → odef k xy) *iso ab))  )
-     ; funA  = λ xy ba → subst (λ k → odef k (&
-             < * (zπ2 (subst (λ k → odef k xy) *iso ba)) , * (zπ1 (subst (λ k → odef k xy) *iso ba)) >)) 
-          (sym *iso) ( ab-pair (zp2 (subst (λ k → odef k xy) *iso ba)) (zp1 (subst (λ k → odef k xy) *iso ba))  )
-     ; fiso← = λ xy ba → trans (cong₂ (λ j k → & < * j , * k > ) (proj2 (zp-iso0 {A} {B} {zπ2 (subst (λ k → odef k xy) *iso ba)} {zπ1 (subst (λ k → odef k xy) *iso ba)} (lemma1 ba) )) 
-       ? ) ( zp-iso (subst (λ k → odef k xy) *iso ba )) 
-     ; fiso→ = λ xy ab → trans (cong₂ (λ j k → & < * j , * k > ) (proj2 (zp-iso0 ? )) (proj1 (zp-iso0 ? ))  ) ( zp-iso (subst (λ k → odef k xy) *iso ab )) 
+       fun←  = λ xy ab → getord ( exchg {A} {B} {zπ1 (subst (λ k → odef k xy) *iso ab)} {zπ2 (subst (λ k → odef k xy) *iso ab)}  {_} refl (subst₂ (λ j k → odef j k) *iso (sym (zp-iso (subst (λ k → odef k xy) *iso ab))) ab ))
+     ; fun→  = λ xy ba → getord ( exchg {B} {A} {zπ1 (subst (λ k → odef k xy) *iso ba)} {zπ2 (subst (λ k → odef k xy) *iso ba)}  {_} refl (subst₂ (λ j k → odef j k) *iso (sym (zp-iso (subst (λ k → odef k xy) *iso ba))) ba ))
+     ; funB  = λ xy ab → subst₂ (λ j k → odef j k ) (sym *iso) refl 
+          (exchg (sym (zp-iso (subst (λ k → odef k xy) *iso ab))) (subst (λ k → odef k xy) *iso ab))
+     ; funA  = λ xy ab → subst₂ (λ j k → odef j k ) (sym *iso) refl 
+          (exchg (sym (zp-iso (subst (λ k → odef k xy) *iso ab))) (subst (λ k → odef k xy) *iso ab))
+     ; fiso← = λ xy ab → trans (cong getord ( HE.≅-to-≡ (exchg² refl (ab-pair ? ? ))) ) (trans ? (is-prod (subst (λ k → odef k xy) *iso ab)) )
+     ; fiso→ = λ xy ab → ?
     } where
-        lemma1 : {A B : HOD} {xy : Ordinal} → (ba : odef (* (& (ZFP B A))) xy) → odef (ZFP A B) (
-                & < * (zπ2 (subst (λ k → odef k xy) *iso ba)) , * (zπ1 (subst (λ k → odef k xy) *iso ba)) >  )
-        lemma1 {A} {B} {xy} ba = ? -- with subst (λ k → odef k xy ) *iso ba
-        -- ... | ab-pair ax by = ?
+        getord : {A B : HOD} {xy : Ordinal} → odef (ZFP A B) xy → Ordinal
+        getord {A} {B} {xy} ab = xy
+        is-prod : {A B : HOD} {xy : Ordinal} → (ab : odef (ZFP A B) xy) → getord ab ≡ xy
+        is-prod {A} {B} {xy} ab = refl
+        exchg : {A B : HOD} {x y xy : Ordinal} → xy ≡ & < * x , * y > → odef (ZFP A B) xy → odef (ZFP B A) (& < * y , * x >) 
+        exchg {A} {B} {x} {y} eq (ab-pair {a} {b} ax by ) = subst (λ k → odef (ZFP B A) k) 
+           (cong₂ (λ j k → & < j , k >) (proj2 (prod-≡ lemma2 )) (proj1 (prod-≡ lemma2 )) ) (ab-pair by ax) where
+             lemma2 : < * a , * b > ≡ < * x , * y >
+             lemma2 = subst₂ (λ j k → j ≡ k ) *iso *iso (cong (*) eq)
+        exchg² : {A B : HOD} {x y xy : Ordinal} → (eq : xy ≡ & < * x , * y >) → (ab : odef (ZFP A B) xy) → exchg refl ( exchg eq ab ) ≅ ab
+        exchg² {A} {B} eq (ab-pair ax by ) = ?
 
 
 ZFP∩  : {A B C : HOD} → ( ZFP (A ∩ B) C ≡ ZFP A C ∩ ZFP B C ) ∧ ( ZFP C (A ∩ B) ≡ ZFP C A  ∩ ZFP C B )