| Copyright | Guillaume Sabbagh 2022 |
|---|---|
| License | GPL-3 |
| Maintainer | guillaumesabbagh@protonmail.com |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Math.Categories.FunctorCategory
Description
A FunctorCategory D^C (also written [C,D]) where C is a FiniteCategory and D is a Category has Diagrams F : C -> D as objects and NaturalTransformations between them as morphisms. NaturalTransformations compose vertically in this category. See the operator (<=@<=) for horizontal composition.
A Diagram is a heterogeneous functor, meaning that the source category might be different from the target category. See FinCat for a homogeneous ones.
Diagrams are objects in a FunctorCategory, they therefore can not be composed with the usual operator (@). See (<-@<-) for composing Diagrams.
Beware that source and target are not defined on Diagram because it is not a Morphism, use src and tgt instead. Also note that a Diagram does not need to contain the mapping of all morphisms from the source category, it may only contain a mapping for the generating morphisms of the source category.
You can also do left and right whiskering with the operators (<=@<-) and (<-@<=).
A FunctorCategory is a FiniteCategory if the source and target category are finite, but it is only a Category if the target category is not finite.
All operators defined in this module respect the following convention: a "->" arrow represent a functor and a "=>" represent a natural transformation. For example (<-@<=) allows to compose a natural transformation (the "<=" arrow) with a functor (the "<-" arrow), note that composition is always read from right to left.
Synopsis
- data Diagram c1 m1 o1 c2 m2 o2 = Diagram {}
- data DiagramError c1 m1 o1 c2 m2 o2
- checkFiniteDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Maybe (DiagramError c1 m1 o1 c2 m2 o2)
- checkDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Maybe (DiagramError c1 m1 o1 c2 m2 o2)
- diagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => c1 -> c2 -> Map o1 o2 -> Map m1 m2 -> Either (DiagramError c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2)
- finiteDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => c1 -> c2 -> Map o1 o2 -> Map m1 m2 -> Either (DiagramError c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2)
- (->$) :: Eq o1 => Diagram c1 m1 o1 c2 m2 o2 -> o1 -> o2
- (->£) :: (Category c1 m1 o1, Morphism m1 o1, Morphism m2 o2, Eq m1) => Diagram c1 m1 o1 c2 m2 o2 -> m1 -> m2
- (<-@<-) :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, Category c2 m2 o2, Morphism m2 o2, Eq o2, Eq m2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c3 m3 o3
- selectObject :: (Category c m o, Morphism m o, Eq o) => c -> o -> Diagram One One One c m o
- constantDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Category c2 m2 o2, Morphism m2 o2) => c1 -> c2 -> o2 -> Diagram c1 m1 o1 c2 m2 o2
- discreteDiagram :: (Category c m o, Morphism m o, Eq o) => c -> [o] -> Diagram (DiscreteCategory Int) (DiscreteMorphism Int) Int c m o
- parallelDiagram :: (Category c m o, Morphism m o, Eq o) => c -> m -> m -> Diagram Parallel ParallelAr ParallelOb c m o
- insertionFunctor1 :: (Category c m o, Morphism m o, Eq o) => FullSubcategory c m o -> Diagram (FullSubcategory c m o) m o c m o
- insertionFunctor2 :: (Category c m o, Morphism m o, Eq o) => InheritedFullSubcategory c m o -> Diagram (InheritedFullSubcategory c m o) m o c m o
- completeDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2) => Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2
- pickRandomDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, RandomGen g) => c1 -> c2 -> g -> (Diagram c1 m1 o1 c2 m2 o2, g)
- inverseDiagram :: (FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2, FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) => Diagram c1 m1 o1 c2 m2 o2 -> Either (DiagramError c2 m2 o2 c1 m1 o1) (Diagram c2 m2 o2 c1 m1 o1)
- unsafeInverseDiagram :: Diagram c1 m1 o1 c2 m2 o2 -> Diagram c2 m2 o2 c1 m1 o1
- data NaturalTransformation c1 m1 o1 c2 m2 o2
- components :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Map o1 m2
- data NaturalTransformationError c1 m1 o1 c2 m2 o2
- checkNaturalTransformation :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (NaturalTransformationError c1 m1 o1 c2 m2 o2)
- naturalTransformation :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Map o1 m2 -> Either (NaturalTransformationError c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2)
- unsafeNaturalTransformation :: Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Map o1 m2 -> NaturalTransformation c1 m1 o1 c2 m2 o2
- (=>$) :: Eq o1 => NaturalTransformation c1 m1 o1 c2 m2 o2 -> o1 -> m2
- (<=@<=) :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- horizontalComposition :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- (<=@<-) :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- leftWhiskering :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- (<-@<=) :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- rightWhiskering :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3
- data FunctorCategory c1 m1 o1 c2 m2 o2 = FunctorCategory c1 c2
- data PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 = PrecomposedFunctorCategory (Diagram c1 m1 o1 c2 m2 o2) c3
- data PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 = PostcomposedFunctorCategory (Diagram c2 m2 o2 c3 m3 o3) c1
Diagram
data Diagram c1 m1 o1 c2 m2 o2 Source #
A Diagram is a functor from a FiniteCategory to a Category.
A Diagram can have a source category and a target category with different types. It must obey the following rules :
funct ->$ (source f) == source (funct ->£ f)
funct ->$ (target f) == target (funct ->£ f)
funct ->£ (f @ g) = (funct ->£ f) @ (funct ->£ g)
funct ->£ (identity a) = identity (funct ->$ a)
Diagram is not private because we can't always check functoriality if the target category is infinite.
However it is recommanded to use the smart constructors diagram or finiteDiagram which check the structure of the Diagram at construction. See also the useful function completeDiagram.
You can omit the mapping of generated morphisms of the source category.
Constructors
| Diagram | |
Instances
| (Category c m o, Morphism m o, Eq m, Eq o) => Morphism (FinFunctor c m o) c Source # | |
Defined in Math.Categories.FinCat Methods (@) :: FinFunctor c m o -> FinFunctor c m o -> FinFunctor c m o Source # (@?) :: FinFunctor c m o -> FinFunctor c m o -> Maybe (FinFunctor c m o) Source # source :: FinFunctor c m o -> c Source # target :: FinFunctor c m o -> c Source # | |
| (FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o) => Category (FinCat c m o) (FinFunctor c m o) c Source # | |
Defined in Math.Categories.FinCat Methods identity :: FinCat c m o -> c -> FinFunctor c m o Source # ar :: FinCat c m o -> c -> c -> Set (FinFunctor c m o) Source # genAr :: FinCat c m o -> c -> c -> Set (FinFunctor c m o) Source # decompose :: FinCat c m o -> FinFunctor c m o -> [FinFunctor c m o] Source # | |
| (FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o, FiniteCategory cIndex mIndex oIndex, Morphism mIndex oIndex, Eq oIndex, Eq mIndex) => CocompleteCategory (FinCat c m o) (FinFunctor c m o) c (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) cIndex mIndex oIndex Source # | Note that computing a |
Defined in Math.FiniteCategories.ColimitCategory Methods colimit :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Cocone cIndex mIndex oIndex (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) Source # coprojectBase :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Diagram (FinCat c m o) (FinFunctor c m o) c (FinCat (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (FinFunctor (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) (CGMorphism (Colimit oIndex o) (Colimit oIndex m)) (Colimit oIndex o)) (CompositionGraph (Colimit oIndex o) (Colimit oIndex m)) Source # | |
| (FiniteCategory c m o, Morphism m o, Eq c, Eq m, Eq o, FiniteCategory cIndex mIndex oIndex, Morphism mIndex oIndex, Eq cIndex, Eq mIndex, Eq oIndex) => CompleteCategory (FinCat c m o) (FinFunctor c m o) c (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) cIndex mIndex oIndex Source # | |
Defined in Math.FiniteCategories.LimitCategory Methods limit :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Cone cIndex mIndex oIndex (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) Source # projectBase :: Diagram cIndex mIndex oIndex (FinCat c m o) (FinFunctor c m o) c -> Diagram (FinCat c m o) (FinFunctor c m o) c (FinCat (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (FinFunctor (LimitCategory cIndex mIndex oIndex c m o) (Limit oIndex m) (Limit oIndex o)) (LimitCategory cIndex mIndex oIndex c m o) Source # | |
| (Eq n, Eq e) => HasCoequalizers (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) Source # | |
Defined in Math.FiniteCategories.ColimitCategory Methods coequalize :: Diagram Parallel ParallelAr ParallelOb (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) -> Cocone Parallel ParallelAr ParallelOb (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) Source # | |
| (Eq e, Eq n, Eq oIndex) => HasCoproducts (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) (FinCat (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (FinFunctor (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) oIndex Source # | |
Defined in Math.FiniteCategories.ColimitCategory Methods coproduct :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinCat (CompositionGraph n e) (CGMorphism n e) n) (FinFunctor (CompositionGraph n e) (CGMorphism n e) n) (CompositionGraph n e) -> Cocone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinCat (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (FinFunctor (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) (CGMorphism (Colimit oIndex n) (Colimit oIndex e)) (Colimit oIndex n)) (CompositionGraph (Colimit oIndex n) (Colimit oIndex e)) Source # | |
| (PrettyPrint c1, PrettyPrint c2, PrettyPrint o1, PrettyPrint o2, PrettyPrint m1, PrettyPrint m2, Eq o1, Eq o2, Eq m1, Eq m2) => PrettyPrint (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory | |
| (Simplifiable c1, Simplifiable c2, Simplifiable o1, Simplifiable o2, Simplifiable m1, Simplifiable m2, Eq o1, Eq m1) => Simplifiable (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory | |
| Generic (Diagram c1 m1 o1 c2 m2 o2) Source # | |
| (Show c1, Show c2, Show o1, Show o2, Show m1, Show m2) => Show (Diagram c1 m1 o1 c2 m2 o2) Source # | |
| (Eq c1, Eq m1, Eq o1, Eq c2, Eq m2, Eq o2, FiniteCategory c1 m1 o1, Morphism m1 o1) => Eq (Diagram c1 m1 o1 c2 m2 o2) Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2) => Morphism (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (@) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source # (@?) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # source :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source # target :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Category (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source # ar :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # genAr :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # decompose :: FunctorCategory c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> [NaturalTransformation c1 m1 o1 c2 m2 o2] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => FiniteCategory (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| type Rep (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (Diagram c1 m1 o1 c2 m2 o2) = D1 ('MetaData "Diagram" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) (C1 ('MetaCons "Diagram" 'PrefixI 'True) ((S1 ('MetaSel ('Just "src") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c1) :*: S1 ('MetaSel ('Just "tgt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c2)) :*: (S1 ('MetaSel ('Just "omap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map o1 o2)) :*: S1 ('MetaSel ('Just "mmap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map m1 m2))))) | |
Check diagram structure
data DiagramError c1 m1 o1 c2 m2 o2 Source #
A datatype to represent a malformation of a Diagram.
Instances
| (PrettyPrint o1, PrettyPrint m1, PrettyPrint o2, PrettyPrint m2, Eq o1, Eq m1, Eq o2, Eq m2) => PrettyPrint (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> DiagramError c1 m1 o1 c2 m2 o2 -> String Source # pprintWithIndentations :: Int -> Int -> String -> DiagramError c1 m1 o1 c2 m2 o2 -> String Source # pprintIndent :: Int -> DiagramError c1 m1 o1 c2 m2 o2 -> String Source # | |
| (Simplifiable o1, Simplifiable m1, Simplifiable o2, Simplifiable m2, Eq o1, Eq m1, Eq o2, Eq m2) => Simplifiable (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: DiagramError c1 m1 o1 c2 m2 o2 -> DiagramError c1 m1 o1 c2 m2 o2 # | |
| Generic (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (DiagramError c1 m1 o1 c2 m2 o2) :: Type -> Type Methods from :: DiagramError c1 m1 o1 c2 m2 o2 -> Rep (DiagramError c1 m1 o1 c2 m2 o2) x to :: Rep (DiagramError c1 m1 o1 c2 m2 o2) x -> DiagramError c1 m1 o1 c2 m2 o2 | |
| (Show o1, Show o2, Show m1, Show m2) => Show (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> DiagramError c1 m1 o1 c2 m2 o2 -> ShowS show :: DiagramError c1 m1 o1 c2 m2 o2 -> String showList :: [DiagramError c1 m1 o1 c2 m2 o2] -> ShowS | |
| (Eq o1, Eq o2, Eq m1, Eq m2) => Eq (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: DiagramError c1 m1 o1 c2 m2 o2 -> DiagramError c1 m1 o1 c2 m2 o2 -> Bool (/=) :: DiagramError c1 m1 o1 c2 m2 o2 -> DiagramError c1 m1 o1 c2 m2 o2 -> Bool | |
| type Rep (DiagramError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (DiagramError c1 m1 o1 c2 m2 o2) = D1 ('MetaData "DiagramError" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) ((C1 ('MetaCons "WrongDomainObjects" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o1)) :*: S1 ('MetaSel ('Just "domainObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o1))) :+: (C1 ('MetaCons "WrongDomainMorphisms" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcMorphs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set m1)) :*: S1 ('MetaSel ('Just "domainMorphs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set m1))) :+: C1 ('MetaCons "WrongImageObjects" 'PrefixI 'True) (S1 ('MetaSel ('Just "imageObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o2)) :*: S1 ('MetaSel ('Just "codomainObjs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o2))))) :+: ((C1 ('MetaCons "WrongImageMorphisms" 'PrefixI 'True) (S1 ('MetaSel ('Just "imageMorphs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set m2)) :*: S1 ('MetaSel ('Just "codomainMorphs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set m2))) :+: C1 ('MetaCons "TornMorphism" 'PrefixI 'True) (S1 ('MetaSel ('Just "f") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m1) :*: S1 ('MetaSel ('Just "fImage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m2))) :+: (C1 ('MetaCons "IdentityNotPreserved" 'PrefixI 'True) (S1 ('MetaSel ('Just "originalId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m1) :*: S1 ('MetaSel ('Just "imageId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m2)) :+: C1 ('MetaCons "CompositionNotPreserved" 'PrefixI 'True) (S1 ('MetaSel ('Just "f") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m1) :*: (S1 ('MetaSel ('Just "g") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m1) :*: S1 ('MetaSel ('Just "imageFG") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m2)))))) | |
checkFiniteDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Maybe (DiagramError c1 m1 o1 c2 m2 o2) Source #
Check wether the properties of a Diagram are respected where the source and target category are finite.
checkDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Maybe (DiagramError c1 m1 o1 c2 m2 o2) Source #
Check wether the properties of a Diagram are respected where the source or target category is infinite.
diagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => c1 -> c2 -> Map o1 o2 -> Map m1 m2 -> Either (DiagramError c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source #
Smart constructor of a Diagram. See finiteDiagram for constructing finite Diagrams.
finiteDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2) => c1 -> c2 -> Map o1 o2 -> Map m1 m2 -> Either (DiagramError c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source #
Smart constructor of a finite Diagram.
Operators
(->$) :: Eq o1 => Diagram c1 m1 o1 c2 m2 o2 -> o1 -> o2 Source #
Apply a Diagram on an object of the source category.
(->£) :: (Category c1 m1 o1, Morphism m1 o1, Morphism m2 o2, Eq m1) => Diagram c1 m1 o1 c2 m2 o2 -> m1 -> m2 Source #
Apply a Diagram on a morphism of the source category.
(<-@<-) :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, Category c2 m2 o2, Morphism m2 o2, Eq o2, Eq m2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c3 m3 o3 Source #
Compose two Diagrams.
Usual diagrams
selectObject :: (Category c m o, Morphism m o, Eq o) => c -> o -> Diagram One One One c m o Source #
Construct a Diagram selecting an object in a category.
There is no check that the object belongs in the category.
constantDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Category c2 m2 o2, Morphism m2 o2) => c1 -> c2 -> o2 -> Diagram c1 m1 o1 c2 m2 o2 Source #
Construct a constant Diagram on an object of the target Category given an indexing FiniteCategory.
There is no check that the object belongs in the category.
discreteDiagram :: (Category c m o, Morphism m o, Eq o) => c -> [o] -> Diagram (DiscreteCategory Int) (DiscreteMorphism Int) Int c m o Source #
parallelDiagram :: (Category c m o, Morphism m o, Eq o) => c -> m -> m -> Diagram Parallel ParallelAr ParallelOb c m o Source #
Insertion diagrams for subcategories
insertionFunctor1 :: (Category c m o, Morphism m o, Eq o) => FullSubcategory c m o -> Diagram (FullSubcategory c m o) m o c m o Source #
The insertion functor from the FullSubcategory to the original category.
insertionFunctor2 :: (Category c m o, Morphism m o, Eq o) => InheritedFullSubcategory c m o -> Diagram (InheritedFullSubcategory c m o) m o c m o Source #
The insertion functor from the InheritedFullSubcategory to the original category.
Diagram construction helper
completeDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2) => Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source #
Complete a partial Diagram by adding mapping on objects from mapping of arrows and mapping on identities.
Does not check the structure of the resulting Diagram, you can use checkFiniteDiagram or checkDiagram to check afterwards.
pickRandomDiagram :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, RandomGen g) => c1 -> c2 -> g -> (Diagram c1 m1 o1 c2 m2 o2, g) Source #
Choose a random diagram in the functor category of an index category and an image category.
Other diagram functions
inverseDiagram :: (FiniteCategory c2 m2 o2, Morphism m2 o2, Eq m2, Eq o2, FiniteCategory c1 m1 o1, Morphism m1 o1, Eq m1, Eq o1) => Diagram c1 m1 o1 c2 m2 o2 -> Either (DiagramError c2 m2 o2 c1 m1 o1) (Diagram c2 m2 o2 c1 m1 o1) Source #
Return the inverse of a finite Diagram if possible, return a DiagramError otherwise. Note that this function fails almost all the time if the mapping of morphisms contains generators only (it would only work if all the generators are in the image of the diagram).
unsafeInverseDiagram :: Diagram c1 m1 o1 c2 m2 o2 -> Diagram c2 m2 o2 c1 m1 o1 Source #
Return the inverse of a Diagram without checking the structure of the returned Diagram. See inverseDiagram for the safe version. Note that this function fails almost all the time if the mapping of morphisms contains generators only (it would only work if all the generators are in the image of the diagram).
Natural transformation
data NaturalTransformation c1 m1 o1 c2 m2 o2 Source #
A NaturalTransformation between two Diagrams from C to D is a mapping from objects of C to morphisms of D such that naturality is respected. C must be a FiniteCategory because we need its objects in the mapping of a NaturalTransformation.
Formally, let F and G be functors, and eta : Ob(C) -> Ar(D). The following properties should be respected :
source F = source G
target F = target G
(eta =>$ target f) @ (F ->£ f) = (G ->£ f) @ (eta =>$ source f)
NaturalTransformation is private, use the smart constructor naturalTransformation to instantiate it.
Instances
| (PrettyPrint c1, PrettyPrint c2, PrettyPrint o1, PrettyPrint o2, PrettyPrint m1, PrettyPrint m2, Eq o1, Eq o2, Eq m1, Eq m2) => PrettyPrint (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> String Source # pprintWithIndentations :: Int -> Int -> String -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> String Source # pprintIndent :: Int -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> String Source # | |
| (Simplifiable c1, Simplifiable c2, Simplifiable o1, Simplifiable o2, Simplifiable m1, Simplifiable m2, Eq o1, Eq m1) => Simplifiable (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 # | |
| Generic (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (NaturalTransformation c1 m1 o1 c2 m2 o2) :: Type -> Type Methods from :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Rep (NaturalTransformation c1 m1 o1 c2 m2 o2) x to :: Rep (NaturalTransformation c1 m1 o1 c2 m2 o2) x -> NaturalTransformation c1 m1 o1 c2 m2 o2 | |
| (Show c1, Show m1, Show o1, Show c2, Show m2, Show o2) => Show (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> ShowS show :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> String showList :: [NaturalTransformation c1 m1 o1 c2 m2 o2] -> ShowS | |
| (Eq c1, Eq m1, Eq o1, Eq c2, Eq m2, Eq o2, FiniteCategory c1 m1 o1, Morphism m1 o1) => Eq (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> Bool (/=) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> Bool | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2) => Morphism (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (@) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source # (@?) :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # source :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source # target :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Category (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source # ar :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # genAr :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # decompose :: FunctorCategory c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> [NaturalTransformation c1 m1 o1 c2 m2 o2] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => FiniteCategory (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| type Rep (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (NaturalTransformation c1 m1 o1 c2 m2 o2) = D1 ('MetaData "NaturalTransformation" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) (C1 ('MetaCons "NaturalTransformation" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcNT") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Diagram c1 m1 o1 c2 m2 o2)) :*: (S1 ('MetaSel ('Just "tgtNT") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Diagram c1 m1 o1 c2 m2 o2)) :*: S1 ('MetaSel ('Just "components") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map o1 m2))))) | |
Getter
components :: NaturalTransformation c1 m1 o1 c2 m2 o2 -> Map o1 m2 Source #
The components
Check structure
data NaturalTransformationError c1 m1 o1 c2 m2 o2 Source #
A datatype to represent a malformation of a NaturalTransformation.
Instances
| (Eq o1, PrettyPrint c1, PrettyPrint c2, PrettyPrint o1, PrettyPrint m1) => PrettyPrint (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> String Source # pprintWithIndentations :: Int -> Int -> String -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> String Source # pprintIndent :: Int -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> String Source # | |
| (Eq o1, Simplifiable c1, Simplifiable c2, Simplifiable o1, Simplifiable m1) => Simplifiable (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: NaturalTransformationError c1 m1 o1 c2 m2 o2 -> NaturalTransformationError c1 m1 o1 c2 m2 o2 # | |
| Generic (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (NaturalTransformationError c1 m1 o1 c2 m2 o2) :: Type -> Type Methods from :: NaturalTransformationError c1 m1 o1 c2 m2 o2 -> Rep (NaturalTransformationError c1 m1 o1 c2 m2 o2) x to :: Rep (NaturalTransformationError c1 m1 o1 c2 m2 o2) x -> NaturalTransformationError c1 m1 o1 c2 m2 o2 | |
| (Show c1, Show c2, Show o1, Show m1) => Show (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> ShowS show :: NaturalTransformationError c1 m1 o1 c2 m2 o2 -> String showList :: [NaturalTransformationError c1 m1 o1 c2 m2 o2] -> ShowS | |
| (Eq c1, Eq c2, Eq o1, Eq m1) => Eq (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: NaturalTransformationError c1 m1 o1 c2 m2 o2 -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> Bool (/=) :: NaturalTransformationError c1 m1 o1 c2 m2 o2 -> NaturalTransformationError c1 m1 o1 c2 m2 o2 -> Bool | |
| type Rep (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (NaturalTransformationError c1 m1 o1 c2 m2 o2) = D1 ('MetaData "NaturalTransformationError" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) ((C1 ('MetaCons "IncompatibleFunctorsSource" 'PrefixI 'True) (S1 ('MetaSel ('Just "sourceCat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c1) :*: S1 ('MetaSel ('Just "targetCat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c1)) :+: C1 ('MetaCons "IncompatibleFunctorsTarget" 'PrefixI 'True) (S1 ('MetaSel ('Just "sourceCat2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c2) :*: S1 ('MetaSel ('Just "targetCat2") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c2))) :+: (C1 ('MetaCons "NotTotal" 'PrefixI 'True) (S1 ('MetaSel ('Just "domainNat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o1)) :*: S1 ('MetaSel ('Just "objectsCat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set o1))) :+: C1 ('MetaCons "NaturalityFail" 'PrefixI 'True) (S1 ('MetaSel ('Just "originalMorphism") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m1)))) | |
checkNaturalTransformation :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (NaturalTransformationError c1 m1 o1 c2 m2 o2) Source #
Check wether the structure of a NaturalTransformation is respected.
naturalTransformation :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Map o1 m2 -> Either (NaturalTransformationError c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) Source #
The smart constructor of NaturalTransformation. Checks wether the structure is correct.
unsafeNaturalTransformation :: Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Map o1 m2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source #
Unsafe constructor of NaturalTransformation for performance purposes. It does not check the structure of the NaturalTransformation.
Use this constructor only if the NaturalTransformation is necessarily well formed.
Operators
(=>$) :: Eq o1 => NaturalTransformation c1 m1 o1 c2 m2 o2 -> o1 -> m2 Source #
Apply a NaturalTransformation on an object of the source Diagram.
(<=@<=) :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Compose horizontally NaturalTransformations.
horizontalComposition :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Alias of (<=@<=).
(<=@<-) :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Left whiskering allows to compose a Diagram with a NaturalTransformation.
leftWhiskering :: (Category c1 m1 o1, Morphism m1 o1, Eq m1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => NaturalTransformation c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Alias of (<=@<-).
(<-@<=) :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Right whiskering allows to compose a NaturalTransformation with a Diagram.
rightWhiskering :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Morphism m3 o3) => Diagram c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source #
Alias of (<-@<=).
Functor categories
data FunctorCategory c1 m1 o1 c2 m2 o2 Source #
A FunctorCategory D^C where C is a FiniteCategory and D is a Category has Diagrams F : C -> D as objects and NaturalTransformations between them as morphisms. NaturalTransformations compose vertically in this category.
Constructors
| FunctorCategory c1 c2 |
Instances
| (PrettyPrint c1, PrettyPrint c2) => PrettyPrint (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> FunctorCategory c1 m1 o1 c2 m2 o2 -> String Source # pprintWithIndentations :: Int -> Int -> String -> FunctorCategory c1 m1 o1 c2 m2 o2 -> String Source # pprintIndent :: Int -> FunctorCategory c1 m1 o1 c2 m2 o2 -> String Source # | |
| (Simplifiable c1, Simplifiable c2) => Simplifiable (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: FunctorCategory c1 m1 o1 c2 m2 o2 -> FunctorCategory c1 m1 o1 c2 m2 o2 # | |
| Generic (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (FunctorCategory c1 m1 o1 c2 m2 o2) :: Type -> Type Methods from :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Rep (FunctorCategory c1 m1 o1 c2 m2 o2) x to :: Rep (FunctorCategory c1 m1 o1 c2 m2 o2) x -> FunctorCategory c1 m1 o1 c2 m2 o2 | |
| (Show c1, Show c2) => Show (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> FunctorCategory c1 m1 o1 c2 m2 o2 -> ShowS show :: FunctorCategory c1 m1 o1 c2 m2 o2 -> String showList :: [FunctorCategory c1 m1 o1 c2 m2 o2] -> ShowS | |
| (Eq c1, Eq c2) => Eq (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: FunctorCategory c1 m1 o1 c2 m2 o2 -> FunctorCategory c1 m1 o1 c2 m2 o2 -> Bool (/=) :: FunctorCategory c1 m1 o1 c2 m2 o2 -> FunctorCategory c1 m1 o1 c2 m2 o2 -> Bool | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Category (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source # ar :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # genAr :: FunctorCategory c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 -> Set (NaturalTransformation c1 m1 o1 c2 m2 o2) Source # decompose :: FunctorCategory c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 -> [NaturalTransformation c1 m1 o1 c2 m2 o2] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => FiniteCategory (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| type Rep (FunctorCategory c1 m1 o1 c2 m2 o2) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (FunctorCategory c1 m1 o1 c2 m2 o2) = D1 ('MetaData "FunctorCategory" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) (C1 ('MetaCons "FunctorCategory" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c1) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c2))) | |
data PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 Source #
A FunctorCategory D^C precomposed by a functor F : B -> C where B and C are FiniteCategory and D is a Category.
It has Diagrams G o F : B -> D as objects and NaturalTransformations between them as morphisms. NaturalTransformations compose vertically in this category.
Constructors
| PrecomposedFunctorCategory (Diagram c1 m1 o1 c2 m2 o2) c3 |
Instances
| (Eq o1, Eq o2, Eq m1, Eq m2, PrettyPrint c1, PrettyPrint c2, PrettyPrint o1, PrettyPrint o2, PrettyPrint m1, PrettyPrint m2, PrettyPrint c3) => PrettyPrint (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # pprintWithIndentations :: Int -> Int -> String -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # pprintIndent :: Int -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # | |
| (Eq o1, Eq m1, Simplifiable c1, Simplifiable c2, Simplifiable o1, Simplifiable o2, Simplifiable m1, Simplifiable m2, Simplifiable c3) => Simplifiable (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 # | |
| Generic (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) :: Type -> Type Methods from :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Rep (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) x to :: Rep (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) x -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 | |
| (Show c1, Show c2, Show o1, Show o2, Show m1, Show m2, Show c3) => Show (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> ShowS show :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String showList :: [PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3] -> ShowS | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Eq c2, Eq m2, Eq o2, Eq c3) => Eq (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Bool (/=) :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Bool | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| type Rep (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (PrecomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) = D1 ('MetaData "PrecomposedFunctorCategory" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) (C1 ('MetaCons "PrecomposedFunctorCategory" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Diagram c1 m1 o1 c2 m2 o2)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c3))) | |
data PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 Source #
A FunctorCategory D^C postcomposed by a functor F : D -> E where C is a FiniteCategory and D and E are Category.
It has Diagrams F o G : C -> E as objects and NaturalTransformations between them as morphisms. NaturalTransformations compose vertically in this category.
Constructors
| PostcomposedFunctorCategory (Diagram c2 m2 o2 c3 m3 o3) c1 |
Instances
| (Eq o2, Eq o3, Eq m2, Eq m3, PrettyPrint c2, PrettyPrint c3, PrettyPrint o2, PrettyPrint o3, PrettyPrint m2, PrettyPrint m3, PrettyPrint c1) => PrettyPrint (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods pprint :: Int -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # pprintWithIndentations :: Int -> Int -> String -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # pprintIndent :: Int -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String Source # | |
| (Eq o2, Eq m2, Simplifiable c2, Simplifiable c3, Simplifiable o2, Simplifiable o3, Simplifiable m2, Simplifiable m3, Simplifiable c1) => Simplifiable (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods simplify :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 # | |
| Generic (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Associated Types type Rep (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) :: Type -> Type Methods from :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Rep (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) x to :: Rep (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) x -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 | |
| (Show c2, Show c3, Show o2, Show o3, Show m2, Show m3, Show c1) => Show (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods showsPrec :: Int -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> ShowS show :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> String showList :: [PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3] -> ShowS | |
| (FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Eq c3, Eq m3, Eq o3, Eq c1) => Eq (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods (==) :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Bool (/=) :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Bool | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Category c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, Category c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => Category (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory Methods identity :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 Source # ar :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # genAr :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Diagram c1 m1 o1 c3 m3 o3 -> Set (NaturalTransformation c1 m1 o1 c3 m3 o3) Source # decompose :: PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3 -> NaturalTransformation c1 m1 o1 c3 m3 o3 -> [NaturalTransformation c1 m1 o1 c3 m3 o3] Source # | |
| (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, FiniteCategory c2 m2 o2, Morphism m2 o2, Eq c2, Eq m2, Eq o2, FiniteCategory c3 m3 o3, Morphism m3 o3, Eq c3, Eq m3, Eq o3) => FiniteCategory (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) (NaturalTransformation c1 m1 o1 c3 m3 o3) (Diagram c1 m1 o1 c3 m3 o3) Source # | A |
Defined in Math.Categories.FunctorCategory | |
| type Rep (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) Source # | |
Defined in Math.Categories.FunctorCategory type Rep (PostcomposedFunctorCategory c1 m1 o1 c2 m2 o2 c3 m3 o3) = D1 ('MetaData "PostcomposedFunctorCategory" "Math.Categories.FunctorCategory" "FiniteCategories-0.6.0.0-inplace" 'False) (C1 ('MetaCons "PostcomposedFunctorCategory" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Diagram c2 m2 o2 c3 m3 o3)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c1))) | |