FiniteCategories-0.2.0.0: Finite categories and usual categorical constructions on them.
CopyrightGuillaume Sabbagh 2021
LicenseGPL-3
Maintainerguillaumesabbagh@protonmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Math.Categories.ConeCategory

Description

Category of Cones of a Diagram.

This module allows to find the (co)limit of a Diagram.

Synopsis

Cone

type Cone c1 m1 o1 c2 m2 o2 = CommaObject o2 One (NaturalTransformation c1 m1 o1 c2 m2 o2) Source #

A Cone is a CommaObject in the CommaCategory (D|1_F) where D is the diagonalFunctor and F is the Diagram of interest.

Intuitively, a Cone is an apex, a base and a set of legs indexed by the indexing objects of F such that the legs commute with every arrow in the base of the Cone.

See "Categories for the working mathematician", Saunders Mac Lane, P.67.

Helper functions

apex :: Cone c1 m1 o1 c2 m2 o2 -> o2 Source #

Return the apex of a Cone.

baseCone :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Cone c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source #

Return the base of a Cone.

legsCone :: Cone c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source #

Return the legs of a Cone as a NaturalTransformation.

naturalTransformationToCone :: (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) => NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (Cone c1 m1 o1 c2 m2 o2) Source #

Transform a NaturalTransformation from a constantDiagram to a Diagram D into a Cone on D.

Cone Morphism

type ConeMorphism c1 m1 o1 c2 m2 o2 = CommaMorphism o2 One m2 One (NaturalTransformation c1 m1 o1 c2 m2 o2) Source #

A ConeMorphism is a morphism binding two Cones. Formally, it is a CommaMorphism in the CommaCategory (D|1_F) where D is the diagonalFunctor and F is the Diagram of interest.

Helper function

bindingMorphismCone :: ConeMorphism c1 m1 o1 c2 m2 o2 -> m2 Source #

Return the binding morphism between the two Cones of a 'ConeMorphism.

Cone Category

type ConeCategory c1 m1 o1 c2 m2 o2 = CommaCategory c2 m2 o2 One One One (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source #

A ConeCategory is the category of Cones of a given Diagram, it is a CommaCategory (D|1_F) where D is the diagonalFunctor and F is the Diagram of interest.

Helper functions

coneCategory :: (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) => Diagram c1 m1 o1 c2 m2 o2 -> ConeCategory c1 m1 o1 c2 m2 o2 Source #

Construct the category of cones of a Diagram.

limits :: (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) => Diagram c1 m1 o1 c2 m2 o2 -> Set (Cone c1 m1 o1 c2 m2 o2) Source #

Returns limits of a diagram (terminal cones).

Cocone

type Cocone c1 m1 o1 c2 m2 o2 = CommaObject One o2 (NaturalTransformation c1 m1 o1 c2 m2 o2) Source #

A Cocone is a CommaObject in the CommaCategory (1_F|D) where D is the diagonalFunctor and F is the Diagram of interest.

Intuitively, a Cocone is a nadir, a base and a set of legs indexed by the indexing objects of F such that the legs commute with every arrow in the base of the Cocone.

A Cocone is simply the dual of a Cone.

Helper functions

nadir :: Cocone c1 m1 o1 c2 m2 o2 -> o2 Source #

Return the nadir of a Cocone.

baseCocone :: (FiniteCategory c1 m1 o1, Morphism m1 o1, Eq c1, Eq m1, Eq o1, Morphism m2 o2, Eq c2, Eq m2, Eq o2) => Cocone c1 m1 o1 c2 m2 o2 -> Diagram c1 m1 o1 c2 m2 o2 Source #

Return the base of a Cocone.

legsCocone :: Cocone c1 m1 o1 c2 m2 o2 -> NaturalTransformation c1 m1 o1 c2 m2 o2 Source #

Return the legs of a Cocone as a NaturalTransformation.

naturalTransformationToCocone :: (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) => NaturalTransformation c1 m1 o1 c2 m2 o2 -> Maybe (Cocone c1 m1 o1 c2 m2 o2) Source #

Transform a NaturalTransformation from a Diagram D to a constantDiagram into a Cocone on D.

Cocone Morphism

type CoconeMorphism c1 m1 o1 c2 m2 o2 = CommaMorphism One o2 One m2 (NaturalTransformation c1 m1 o1 c2 m2 o2) Source #

A CoconeMorphism is a morphism binding two Cocones. Formally, it is a CommaMorphism in the CommaCategory (1_F|D) where D is the diagonalFunctor and F is the Diagram of interest.

Helper function

bindingMorphismCocone :: CoconeMorphism c1 m1 o1 c2 m2 o2 -> m2 Source #

Return the binding morphism between the two Cocones of a 'CoconeMorphism.

Cocone Category

type CoconeCategory c1 m1 o1 c2 m2 o2 = CommaCategory One One One c2 m2 o2 (FunctorCategory c1 m1 o1 c2 m2 o2) (NaturalTransformation c1 m1 o1 c2 m2 o2) (Diagram c1 m1 o1 c2 m2 o2) Source #

A CoconeCategory is the category of Cocones of a given Diagram, it is a CommaCategory (1_F|D) where D is the diagonalFunctor and F is the Diagram of interest.

Helper functions

coconeCategory :: (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) => Diagram c1 m1 o1 c2 m2 o2 -> CoconeCategory c1 m1 o1 c2 m2 o2 Source #

Construct the category of cocones of a Diagram.

colimits :: (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) => Diagram c1 m1 o1 c2 m2 o2 -> Set (Cocone c1 m1 o1 c2 m2 o2) Source #

Returns colimits of a diagram (initial cocones).