changeset 702:d16327b48b83

Monoidal Functor ( two functor remains )
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 22 Nov 2017 02:55:36 +0900
parents 7a729bb62ce3
children df3f1aae984f
files monoidal.agda
diffstat 1 files changed, 40 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/monoidal.agda	Wed Nov 22 02:09:22 2017 +0900
+++ b/monoidal.agda	Wed Nov 22 02:55:36 2017 +0900
@@ -102,13 +102,9 @@
 
 open import Category.Cat
 
-
 record IsMonoidalFunctor {c₁ c₂ ℓ : Level} {C D : Category c₁ c₂ ℓ}  ( M : Monoidal C ) ( N : Monoidal D )
       ( MF :   Functor C D )
-      ( F● :   Functor ( C × C ) D )
-      ( F⊗ :   Functor ( C × C ) D )
-      ( φab :  NTrans  ( C × C ) D  F● F⊗ )
-      ( φ   :  Hom D (Monoidal.m-i N)  (FObj MF (Monoidal.m-i M) ) )
+      ( ψ  :  Hom D (Monoidal.m-i N)  (FObj MF (Monoidal.m-i M) ) )
         : Set ( suc  (c₁ ⊔ c₂ ⊔ ℓ ⊔ c₁)) where
   _⊗_ : (x y : Obj C ) → Obj C
   _⊗_ x y =  (IsMonoidal._□_ (Monoidal.isMonoidal M) ) x y
@@ -118,6 +114,28 @@
   _●_ x y =  (IsMonoidal._□_ (Monoidal.isMonoidal N) ) x y
   _■_ : {a b c d : Obj D } ( f : Hom D a c ) ( g : Hom D b d ) → Hom D ( a ● b ) ( c ● d )
   _■_ f g = FMap (Monoidal.m-bi N) ( f , g )
+  F● :  Functor ( C × C ) D
+  F●  =  record {
+       FObj = λ x  → (FObj MF (proj₁ x) ) ●  (FObj MF (proj₂ x) )
+     ; FMap = λ {x : Obj ( C × C ) } {y} f → FMap (Monoidal.m-bi N) (  FMap MF  (proj₁  f ) , FMap MF (proj₂ f)  )
+     ; isFunctor = record {
+             ≈-cong   = {!!}
+             ; identity = {!!}
+             ; distr    = {!!}
+     }
+    }
+  F⊗ : Functor ( C × C ) D
+  F⊗  =  record {
+       FObj = λ x → FObj MF ( proj₁ x ⊗ proj₂ x )
+     ; FMap = λ {a} {b} f →  FMap MF ( FMap (Monoidal.m-bi M) (  proj₁ f , proj₂ f) )
+     ; isFunctor = record {
+             ≈-cong   = {!!}
+             ; identity = {!!}
+             ; distr    = {!!}
+     }
+    }
+  field
+      φab :  NTrans  ( C × C ) D  F● F⊗ 
   open Iso
   open Monoidal
   open IsMonoidal hiding ( _■_ ;  _□_ )
@@ -127,36 +145,39 @@
   αD {a} {b} {c} =  ≅→ (mα-iso (isMonoidal N) {a} {b} {c}) 
   F : Obj C → Obj D
   F x = FObj MF x
+  φ : ( x y : Obj C ) →  Hom D ( FObj  F● (x , y) ) ( FObj F⊗ ( x , y ))
+  φ x y = NTrans.TMap φab ( x , y )
   1●φBC :  {a b c : Obj C} → Hom D  ( F a ● ( F b ● F c ) ) ( F a ● ( F ( b ⊗ c ) ))
-  1●φBC {a} {b} {c} =  id1 D (F a) ■  {!!}
+  1●φBC {a} {b} {c} =  id1 D (F a) ■  φ b c
   φAB⊗C :  {a b c : Obj C} → Hom D  ( F a ● ( F ( b ⊗ c ) )) (F ( a  ⊗ ( b  ⊗ c )))
-  φAB⊗C {a} {b} {c} =  {!!}
+  φAB⊗C {a} {b} {c} =   φ  a  (b ⊗ c )
   φAB●1 :  {a b c : Obj C} → Hom D  ( ( F a ●  F b ) ● F c ) ( F ( a ⊗ b ) ● F c )
-  φAB●1 {a} {b} {c} =  {!!} ■ id1 D (F c)
+  φAB●1 {a} {b} {c} =  φ a b ■ id1 D (F c)
   φA⊗BC :  {a b c : Obj C} → Hom D  ( F ( a ⊗ b ) ● F c ) (F ( (a  ⊗  b ) ⊗ c ))
-  φA⊗BC {a} {b} {c} = {!!}
+  φA⊗BC {a} {b} {c} = φ ( a ⊗ b ) c
   FαC : {a b c : Obj C} → Hom D (F ( (a  ⊗  b ) ⊗ c )) (F ( a  ⊗ ( b  ⊗ c )))
   FαC {a} {b} {c} =  FMap MF ( ≅→ (mα-iso (isMonoidal M) {a} {b} {c}) )
-  1●φ : { a b : Obj C } → Hom D (F a  ● Monoidal.m-i N ) ( F a ● F ( Monoidal.m-i M ) )
-  1●φ {a} {b} =  id1 D (F a)  ■  φ 
+  1●ψ : { a b : Obj C } → Hom D (F a  ● Monoidal.m-i N ) ( F a ● F ( Monoidal.m-i M ) )
+  1●ψ{a} {b} =  id1 D (F a)  ■  ψ
   φAIC : { a b : Obj C } → Hom D  ( F a ● F ( Monoidal.m-i M ) ) (F ( a  ⊗ Monoidal.m-i M ))
-  φAIC {a} {b} = {!!}
+  φAIC {a} {b} = φ a (  Monoidal.m-i M )
   FρC : { a b : Obj C } → Hom D   (F ( a  ⊗ Monoidal.m-i M ))( F a  )
   FρC {a} {b} = FMap MF (  ≅→ (mρ-iso (isMonoidal M) {a} ) )
   ρD : { a b : Obj C } → Hom D (F a  ● Monoidal.m-i N ) ( F a  )
   ρD {a} {b} =  ≅→ (mρ-iso (isMonoidal N) {F a} )
-  φ●1 : { a b : Obj C } → Hom D (Monoidal.m-i N ● F b  ) ( F ( Monoidal.m-i M )  ● F b  )
-  φ●1 {a} {b} =  φ  ■ id1 D (F b)
+  ψ●1 : { a b : Obj C } → Hom D (Monoidal.m-i N ● F b  ) ( F ( Monoidal.m-i M )  ● F b  )
+  ψ●1 {a} {b} =  ψ ■ id1 D (F b)
   φICB : { a b : Obj C } → Hom D  ( F ( Monoidal.m-i M )  ● F b  ) ( F (  ( Monoidal.m-i M )  ⊗ b ) )
-  φICB {a} {b} = {!!}
+  φICB {a} {b} = φ  ( Monoidal.m-i M ) b
   FλD : { a b : Obj C } → Hom D  ( F (  ( Monoidal.m-i M )  ⊗ b ) ) (F b ) 
   FλD {a} {b} = FMap MF ( ≅→ (mλ-iso (isMonoidal M) {b} ) )
   λD : { a b : Obj C } → Hom D  (Monoidal.m-i N ● F b  )  (F b ) 
   λD {a} {b} = ≅→ (mλ-iso (isMonoidal N) {F b} )
   field
      comm1 : {a b c : Obj C } → D [ D [ φAB⊗C {a} {b} {c} o D [ 1●φBC o αD ] ]  ≈ D [ FαC  o  D [ φA⊗BC o φAB●1 ] ] ]
-     comm-idr : {a b : Obj C } → D [ D [ FρC  {a} {b}  o D [ φAIC {a} {b} o  1●φ {a} {b} ] ]  ≈ ρD {a} {b}  ]
-     comm-idl : {a b : Obj C } → D [ D [ FλD  {a} {b}  o D [ φICB {a} {b} o  φ●1 {a} {b} ] ]  ≈ λD {a} {b}  ]
+     comm-idr : {a b : Obj C } → D [ D [ FρC  {a} {b}  o D [ φAIC {a} {b} o  1●ψ{a} {b} ] ]  ≈ ρD {a} {b}  ]
+     comm-idl : {a b : Obj C } → D [ D [ FλD  {a} {b}  o D [ φICB {a} {b} o  ψ●1 {a} {b} ] ]  ≈ λD {a} {b}  ]
+    where
 
 record MonoidalFunctor {c₁ c₂ ℓ : Level} {C D : Category c₁ c₂ ℓ}  ( M : Monoidal C ) ( N : Monoidal D )
         : Set ( suc  (c₁ ⊔ c₂ ⊔ ℓ ⊔ c₁)) where
@@ -166,21 +187,5 @@
   _●_ x y =  (IsMonoidal._□_ (Monoidal.isMonoidal N) ) x y
   field
       MF : Functor C D
-  F● :  Functor ( C × C ) D
-  F●  =  record {
-       FObj = λ x  → (FObj MF (proj₁ x) ) ●  (FObj MF (proj₂ x) )
-     ; FMap = λ {x : Obj ( C × C ) } {y} f → FMap (Monoidal.m-bi N) (  FMap MF  (proj₁  f ) , FMap MF (proj₂ f)  )
-     ; isFunctor = record {
-     }
-    }
-  F⊗ : Functor ( C × C ) D
-  F⊗  =  record {
-       FObj = λ x → FObj MF ( proj₁ x ⊗ proj₂ x )
-     ; FMap = λ {a} {b} f →  FMap MF ( FMap (Monoidal.m-bi M) (  proj₁ f , proj₂ f) )
-     ; isFunctor = record {
-     }
-    }
-  field
-      φab :  NTrans  ( C × C ) D  F● F⊗ 
-      φ   : Hom D (Monoidal.m-i N)  (FObj MF (Monoidal.m-i M) )
-      isMonodailFunctor : IsMonoidalFunctor  M N MF F● F⊗ φab φ
+      ψ  : Hom D (Monoidal.m-i N)  (FObj MF (Monoidal.m-i M) )
+      isMonodailFunctor : IsMonoidalFunctor  M N MF ψ