Library HoTT.Categories.FunctorCategory.Core
Require Import NaturalTransformation.Composition.Core NaturalTransformation.Identity NaturalTransformation.Composition.Laws NaturalTransformation.Paths.
Set Universe Polymorphism.
Set Implicit Arguments.
Generalizable All Variables.
Set Asymmetric Patterns.
Set Universe Polymorphism.
Set Implicit Arguments.
Generalizable All Variables.
Set Asymmetric Patterns.
Definition functor_category : PreCategory
:= @Build_PreCategory (Functor C D)
(@NaturalTransformation C D)
(@identity C D)
(@compose C D)
(@associativity _ C D)
(@left_identity _ C D)
(@right_identity _ C D)
_.
End functor_category.
Local Notation "C -> D" := (functor_category C D) : category_scope.
:= @Build_PreCategory (Functor C D)
(@NaturalTransformation C D)
(@identity C D)
(@compose C D)
(@associativity _ C D)
(@left_identity _ C D)
(@right_identity _ C D)
_.
End functor_category.
Local Notation "C -> D" := (functor_category C D) : category_scope.
Lemma isstrict_functor_category `{Funext} C `{IsStrictCategory D}
: IsStrictCategory (C → D).
Proof.
typeclasses eauto.
Defined.
Module Export FunctorCategoryCoreNotations.
(*Notation "C ^ D" := (functor_category D C) : category_scope.
Notation " C , D " := (functor_category C D) : category_scope.*)
Notation "C -> D" := (functor_category C D) : category_scope.
End FunctorCategoryCoreNotations.
: IsStrictCategory (C → D).
Proof.
typeclasses eauto.
Defined.
Module Export FunctorCategoryCoreNotations.
(*Notation "C ^ D" := (functor_category D C) : category_scope.
Notation " C , D " := (functor_category C D) : category_scope.*)
Notation "C -> D" := (functor_category C D) : category_scope.
End FunctorCategoryCoreNotations.