changeset 1005:fd2d54dd2197

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 10 Mar 2021 09:06:57 +0900
parents e79cb6080c79
children 444d2aba55eb
files src/yoneda.agda
diffstat 1 files changed, 48 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/src/yoneda.agda	Tue Mar 09 14:51:17 2021 +0900
+++ b/src/yoneda.agda	Wed Mar 10 09:06:57 2021 +0900
@@ -335,7 +335,6 @@
      ... | eq = ≈-Reasoning.≈←≡ A ( cong (λ k →  k (id1 A b)) eq )
      open ≈-Reasoning A
 
--- ≈←≡ (cong (λ k → Nat2F {b} {y-obj x} k) ( ≈-≡ SetsAop yg=yh))  ⟩ 
 -- full (surjective)
 
 record CatSurjective { c₁ c₂ ℓ c₁' c₂' ℓ' : Level} ( A : Category c₁ c₂ ℓ ) ( B : Category c₁' c₂' ℓ' ) (F : Functor A B)
@@ -346,26 +345,33 @@
 
 open CatSurjective
 
-CatEpiR : {c : Level } (F : Functor (Sets {c}) (Sets {c}))
-    → {a a' : Obj Sets } {b : Obj Sets} (g h : Hom Sets (FObj F a') b) 
-    → ( f : Hom Sets a a' )
-    → (Sets [ Sets [ g o FMap F f ] ≈  Sets [ h o FMap F f ] ] → Sets [ g  ≈ h ])
-    → CatSurjective Sets Sets F 
-CatEpiR  F g h f eq = record { sur = λ g → {!!}  ;  surjective = {!!} } where
-    ylem22 :  {a a' : Obj Sets} (i : Hom Sets (FObj F a) (FObj F a')) → Sets [ FMap F {!!} ≈ i ]
-    ylem22 i = begin
-     FMap F {!!} ≈⟨ {!!} ⟩
-     i ∎ 
-     where
-       open ≈-Reasoning Sets
+-- CatEpiR : {c : Level } (F : Functor (Sets {c}) (Sets {c}))
+--     → {a a' : Obj Sets } {b : Obj Sets} (g h : Hom Sets (FObj F a') b) 
+--     → ( ( f : {a a' b : Obj Sets} (g : Hom Sets (FObj F a) b) → Hom Sets a a' )
+--         → (Sets [ Sets [ g o FMap F (f  g) ] ≈  Sets [ h o FMap F (f h) ] ] → Sets [ g  ≈ h ]) )
+--     → CatSurjective Sets Sets F 
+-- CatEpiR  F g h eq = record { sur = λ {a} {a'} g →  sur0 {a} {a'} g ;  surjective = ylem22 } where
+--     sur0 : {a a' : Obj Sets} (g : Hom Sets (FObj F a) (FObj F a')) → Hom Sets a a'
+--     sur0 {a} {a'} g = {!!}
+--     ylem22 :  {a a' : Obj Sets} (g : Hom Sets (FObj F a) (FObj F a')) → Sets [ FMap F (sur0 g) ≈ g ]
+--     ylem22 g = begin
+--      FMap F (sur0 g) ≈⟨ {!!} ⟩
+--      Sets [  FMap F {!!} o FMap F {!!} ]  ≈⟨ {!!} ⟩
+--      Sets [ g o Sets [  FMap F {!!} o FMap F {!!} ] ] ≈⟨ {!!} ⟩
+--      g ∎ 
+--      where
+--        open ≈-Reasoning Sets
 
 CatEpi : {c : Level} (F : Functor (Sets {c}) (Sets {c}))
     → (s : CatSurjective Sets Sets F  )
     → {a a' : Obj Sets } {b : Obj Sets} (g h : Hom Sets (FObj F a') b)
-    → (f : {a a' : Obj Sets } {b : Obj Sets} (g h : Hom Sets (FObj F a') b) → Hom Sets a a' )
-    → Sets [ Sets [ g o FMap F (f {a} {a'} g h ) ] ≈  Sets [ h o FMap F (f g h )] ] → Sets [ g  ≈ h ]
-CatEpi F s g h f eq = begin
-     g ≈⟨ {!!} ⟩
+    → Sets [ Sets [ g o FMap F ( sur s (id1 Sets _)) ] ≈  Sets [ h o FMap F ( sur s (id1 Sets _)) ] ]  → Sets [ g  ≈ h ]
+CatEpi F s g h  eq = begin
+     g ≈↑⟨ idR ⟩
+     Sets [ g o id1  Sets _ ]  ≈↑⟨ cdr (surjective s (id1 Sets _) ) ⟩
+     Sets [ g o  FMap F (sur s (id1 Sets _)) ]  ≈⟨ eq ⟩
+     Sets [ h o  FMap F (sur s (id1 Sets _)) ]  ≈⟨ cdr (surjective s (id1 Sets _) ) ⟩
+     Sets [ h o id1  Sets _ ]  ≈⟨ idR ⟩
      h ∎ 
   where
      open ≈-Reasoning Sets
@@ -382,12 +388,16 @@
      f : {a a' : Obj A } → (g : Hom SetsAop (FObj YonedaFunctor a) (FObj YonedaFunctor a')) → Hom A a a'
      f g = Nat2F g
 
--- epi
-Yoneda-surjective' : {a b : Obj A } → {x y : Obj SetsAop} → (g h : Hom SetsAop (FObj YonedaFunctor b) y) (f : Hom A a b )
-    → SetsAop [ SetsAop [ g o FMap YonedaFunctor f ] ≈ SetsAop [ h o FMap YonedaFunctor f ] ]
+Yoneda-epi : { b : Obj A } {x y : Obj SetsAop} → (g h : Hom SetsAop (FObj YonedaFunctor b) y)
+    → ( {a : Obj A } (f : Hom A a b ) → SetsAop [ SetsAop [ g o FMap YonedaFunctor f ] ≈ SetsAop [ h o FMap YonedaFunctor f ] ] )
     → SetsAop [  g ≈ h ]
-Yoneda-surjective' {a} {b} {x} {y} g h f yg=yh = begin
-         TMap g _ ≈⟨ {!!} ⟩
+Yoneda-epi {b} {x} {y} g h yg=yh = begin
+         TMap g _ ≈↑⟨ idR ⟩
+         Sets [ TMap g _  o id1  Sets _ ] ≈↑⟨  cdr (surjective Yoneda-surjective (id1 SetsAop _)) ⟩
+         Sets [ TMap g _  o (λ z → A [ sur Yoneda-surjective (id1 SetsAop _) o z ] ) ]   ≈⟨⟩
+         (λ z → TMap g _ (A [ id1 A _  o z ] ))   ≈⟨ yg=yh (id1 A b) ⟩
+         Sets [ TMap h _  o (λ z → A [ sur Yoneda-surjective (id1 SetsAop _) o z ] ) ] ≈⟨  cdr (surjective Yoneda-surjective (id1 SetsAop _)) ⟩
+         Sets [ TMap h _  o id1  Sets _ ] ≈⟨ idR ⟩
          TMap h _
          ∎ where
              open ≈-Reasoning Sets
@@ -395,16 +405,25 @@
              s = Yoneda-surjective 
 
 
-postulate
-        eqObj1 : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) → {a a' b b' : Obj A}  → Hom A a b ≡ Hom A a' b' → b ≡ b'
+data [_]_~_ {c₁ c₂ ℓ} (C : Category c₁ c₂ ℓ) {A B : Obj C} (f : Hom C A B)
+     : ∀{X Y : Obj C} → Hom C X Y → Set (suc (c₁ ⊔ c₂ ⊔ ℓ)) where
+  refl : {g : Hom C A B} → (eqv : C [ f ≈ g ]) → [ C ] f ~ g
+
+≃→a=a : {c₁ ℓ : Level}  (B : Category c₁ c₁ ℓ ) → {a b a' b' : Obj B }
+     → ( f : Hom B a b )
+     → ( g : Hom B a' b' )
+     → [_]_~_ B f g → a ≡ a'
+≃→a=a B f g (refl eqv) = refl
+
+a2 : {a : Obj A } → [ A ] id1 A a ~ id1 A a
+a2 = refl (≈-Reasoning.refl-hom A)
+
+postule
+   eqObj1 : {a b a' b' : Obj A } → Hom A a b ≡ Hom A a' b' → b ≡ b'
+--  eqObj1 = ≃→a=a A ? ? a2    close but ...
 
 open import  Relation.Binary.HeterogeneousEquality as HE using (_≅_) 
 
--- eqObj2 : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) → {a b : Obj A}  → Hom A a a ≡ Hom A a b → a ≡ b
--- eqObj2 A {a} {b}  eq = eqObj3  eq refl where
---      eqObj3 : {a  b : Obj A} {f : Hom A a a } {g : Hom A b b } → a ≡ b → id1 A a ≅ id1 A b 
---      eqObj3 refl = HE.refl
-
 a1 : { c₁ : Level} {A B : Set c₁ } {a : A } { b : B } → a ≅ b → A ≡ B 
 a1 HE.refl = refl