changeset 1001:5861128f1e49

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 09 Mar 2021 12:50:52 +0900
parents 3ef1b472e9f9
children 471f9b977920
files src/yoneda.agda
diffstat 1 files changed, 64 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/yoneda.agda	Tue Mar 09 02:10:14 2021 +0900
+++ b/src/yoneda.agda	Tue Mar 09 12:50:52 2021 +0900
@@ -275,12 +275,10 @@
      → SetsAop [ F2Nat  {a'} {FObj YonedaFunctor  a} f ≈ FMap YonedaFunctor  f ]
 YonedaLemma1 {a} {a'} {f} = refl
 
--- full (injective )
 YonedaIso0 :  {a a' : Obj A } {f : FObj (FObj YonedaFunctor  a) a' } 
      → Nat2F ( FMap YonedaFunctor  f ) ≡ f
 YonedaIso0 {a} {a'} {f} = ≈-≡ A (≈-Reasoning.idR A)
 
--- faithful (surjective)
 YonedaIso1 : {a a' : Obj A } →  (ha : Hom SetsAop  (y-obj  a) (y-obj a'))
      →  SetsAop  [ FMap YonedaFunctor (Nat2F  {a} ha) ≈ ha ]
 YonedaIso1 {a} {a'} ha = Nat2F→F2Nat ha 
@@ -313,7 +311,6 @@
 _^ : {a a' b : Obj A } → (f : Hom A a  a' )  → Hom A b a →  Hom A b a' 
 _^ {a} {a'} {b} f g = (FMap (FObj YonedaFunctor a') g) f
 
-
 f-unique : {a a' b : Obj A } (f : Hom A a  a' ) →  f ^ ≡ TMap  (FMap YonedaFunctor  f) b
 f-unique {a} {a'} {b} f  =  extensionality A  (λ g → begin
              (f ^ ) g ≡⟨⟩
@@ -324,6 +321,70 @@
 f-u : {a a' b : Obj A } (f : FObj (FObj YonedaFunctor a') a  ) → Sets [  f ^ ≈   TMap (FMap YonedaFunctor f ) b ]
 f-u = f-unique
 
+-- faithful (injective )
+Yoneda-injective : {a b : Obj A } → {x y : Obj SetsAop} → (g h : Hom SetsAop y (FObj YonedaFunctor a))  (f : Hom A a b )
+    → SetsAop [ SetsAop [ FMap YonedaFunctor f o g ] ≈ SetsAop [ FMap YonedaFunctor f o h ] ]
+    → SetsAop [  g ≈ h ]
+Yoneda-injective {a} {b} {x} {y} g h f yg=yh = begin
+             TMap g _ ≈⟨  {!!} ⟩
+             -- {!!} ≈⟨  {!!} ⟩   -- Hom Sets (FObj y x₁) (FObj (FObj YonedaFunctor a) x₁)
+             TMap h _ ∎  where
+     open ≈-Reasoning Sets
+     hoge : (x₁ : Obj A) → FObj y x₁ -- Hom Sets (FObj y x₁) (FObj (FObj YonedaFunctor a) x₁)
+     hoge x₁ = Nat2F {x₁} {y} {!!}
+     ylem11 : {x : Obj A}  (z : FObj y x) → A [ f  o TMap g _ z ] ≡ A [ f o TMap h _ z ]
+     ylem11  z = (cong (λ k → k z ) yg=yh )
+
+-- full (surjective)
+
+record CatSurjective { c₁ c₂ ℓ c₁' c₂' ℓ' : Level} ( A : Category c₁ c₂ ℓ ) ( B : Category c₁' c₂' ℓ' ) (F : Functor A B)
+         : Set (suc (c₁ ⊔ c₂ ⊔ ℓ ⊔ c₁' ⊔ c₂' ⊔ ℓ')) where
+     field 
+       sur :        {a a' : Obj A} (g : Hom B (FObj F a) (FObj F a')) → Hom A a a'
+       surjective : {a a' : Obj A} (g : Hom B (FObj F a) (FObj F a')) → B [ FMap F (sur g) ≈ g ]
+
+CatEpiR : { c₁ c₂ ℓ c₁' c₂' ℓ' : Level} ( A : Category c₁ c₂ ℓ ) ( B : Category c₁' c₂' ℓ' ) (F : Functor A B)
+    → {a a' : Obj A } {b : Obj B} (g h : Hom B (FObj F a') b) 
+    → ( f : Hom A a a' )
+    → (B [ B [ g o FMap F f ] ≈  B [ h o FMap F f ] ] → B [ g  ≈ h ])
+    → CatSurjective A B F 
+CatEpiR A B F g h f eq = record { sur = {!!} ; surjective = {!!} }
+
+CatEpi : { c₁ c₂ ℓ c₁' c₂' ℓ' : Level} ( A : Category c₁ c₂ ℓ ) ( B : Category c₁' c₂' ℓ' ) (F : Functor A B)
+    → CatSurjective A B F
+    → {a a' : Obj A } {b : Obj B} (g h : Hom B (FObj F a') b)
+    → ( f : (g h : Hom B (FObj F a') b) → Hom A a a' )
+    → B [ B [ g o FMap F ( f g h ) ] ≈  B [ h o FMap F (f g h ) ] ] → B [ g  ≈ h ]
+CatEpi A B F s g h f gf=hf = begin
+     g ≈⟨ {!!} ⟩
+     h ∎ 
+  where
+     open ≈-Reasoning B
+     sj : B [ FMap F ( CatSurjective.sur s (FMap F (f g h))) ≈ FMap F (f g h) ]
+     sj  = CatSurjective.surjective s (FMap F (f g h)) 
+
+Yoneda-surjective : CatSurjective A SetsAop YonedaFunctor 
+Yoneda-surjective  = record { sur = λ {a} {a'} g → f g ; surjective = λ g → 
+  begin
+     TMap (FMap YonedaFunctor (f g) ) _ ≈⟨ YonedaIso1 g ⟩
+     TMap g _ ∎ 
+ } where
+     open ≈-Reasoning Sets
+     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 ] ]
+    → SetsAop [  g ≈ h ]
+Yoneda-surjective' {a} {b} {x} {y} g h f yg=yh = begin
+         TMap g _ ≈⟨ {!!} ⟩
+         TMap h _
+         ∎ where
+             open ≈-Reasoning (Sets) 
+             s : CatSurjective A SetsAop YonedaFunctor 
+             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'