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

Math.Categories.FinGrph

Description

The FinGrph category has finite multidigraphs as objects and multidigraph homomorphisms as morphisms.

Synopsis

Graph

data Arrow n e Source #

An Arrow is composed of a source node, a target node and a label.

Constructors

Arrow 

Fields

Instances

Instances details
(PrettyPrint n, PrettyPrint e) => PrettyPrint (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

pprint :: Int -> Arrow n e -> String Source #

pprintWithIndentations :: Int -> Int -> String -> Arrow n e -> String Source #

pprintIndent :: Int -> Arrow n e -> String Source #

(Simplifiable n, Simplifiable e) => Simplifiable (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

simplify :: Arrow n e -> Arrow n e #

Generic (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Associated Types

type Rep (Arrow n e) :: Type -> Type

Methods

from :: Arrow n e -> Rep (Arrow n e) x

to :: Rep (Arrow n e) x -> Arrow n e

(Show n, Show e) => Show (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

showsPrec :: Int -> Arrow n e -> ShowS

show :: Arrow n e -> String

showList :: [Arrow n e] -> ShowS

(Eq n, Eq e) => Eq (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

(==) :: Arrow n e -> Arrow n e -> Bool

(/=) :: Arrow n e -> Arrow n e -> Bool

type Rep (Arrow n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

type Rep (Arrow n e) = D1 ('MetaData "Arrow" "Math.Categories.FinGrph" "FiniteCategories-0.6.4.0-inplace" 'False) (C1 ('MetaCons "Arrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "sourceArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n) :*: (S1 ('MetaSel ('Just "targetArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n) :*: S1 ('MetaSel ('Just "labelArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e))))

data Graph n e Source #

A Graph is a set of nodes and a set of Arrows.

Graph is private, use smart constructor graph.

Instances

Instances details
(PrettyPrint n, PrettyPrint e, Eq n, Eq e) => PrettyPrint (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

pprint :: Int -> Graph n e -> String Source #

pprintWithIndentations :: Int -> Int -> String -> Graph n e -> String Source #

pprintIndent :: Int -> Graph n e -> String Source #

(Simplifiable n, Simplifiable e, Eq n, Eq e) => Simplifiable (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

simplify :: Graph n e -> Graph n e #

Generic (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Associated Types

type Rep (Graph n e) :: Type -> Type

Methods

from :: Graph n e -> Rep (Graph n e) x

to :: Rep (Graph n e) x -> Graph n e

(Show n, Show e) => Show (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

showsPrec :: Int -> Graph n e -> ShowS

show :: Graph n e -> String

showList :: [Graph n e] -> ShowS

(Eq n, Eq e) => Eq (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

(==) :: Graph n e -> Graph n e -> Bool

(/=) :: Graph n e -> Graph n e -> Bool

(Eq n, Eq e) => Morphism (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e) => Category (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

identity :: FinGrph n e -> Graph n e -> GraphHomomorphism n e Source #

ar :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

genAr :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

decompose :: FinGrph n e -> GraphHomomorphism n e -> [GraphHomomorphism n e] Source #

(Eq e, Eq n) => HasCoequalizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source #

BEWARE, for the coequalizer to be correct, ALL arrow labels should be different (two arrows with different source and target might have the same source and target after the coequalization process).

Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e) => HasEqualizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e, Eq oIndex) => HasCoproducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

coproduct :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq oIndex) => HasProducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

product :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

(Eq e, Eq n, Eq mIndex, Eq oIndex) => CocompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

colimit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone cIndex mIndex oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

coprojectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq mIndex, Eq oIndex) => CompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

limit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone cIndex mIndex oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

projectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

type Rep (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

type Rep (Graph n e) = D1 ('MetaData "Graph" "Math.Categories.FinGrph" "FiniteCategories-0.6.4.0-inplace" 'False) (C1 ('MetaCons "Graph" 'PrefixI 'True) (S1 ('MetaSel ('Just "nodes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set n)) :*: S1 ('MetaSel ('Just "edges") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set (Arrow n e)))))

Getters

nodes :: Graph n e -> Set n Source #

The set of nodes of the graph.

edges :: Graph n e -> Set (Arrow n e) Source #

The set of arrows of the graph.

Smart constructors

graph :: Eq n => Set n -> Set (Arrow n e) -> Maybe (Graph n e) Source #

Smart constructor of Graph. The only error possible when creating a Graph is that the source or target of an arrow is not in the set of nodes of the Graph.

unsafeGraph :: Set n -> Set (Arrow n e) -> Graph n e Source #

Unsafe constructor of Graph, does not check the Graph structure.

Transformation

mapOnNodes :: (n1 -> n2) -> Graph n1 e -> Graph n2 e Source #

Map a function on nodes of a Graph.

mapOnEdges :: (e1 -> e2) -> Graph n e1 -> Graph n e2 Source #

Map a function on edges of a Graph.

Graph homomorphism

data GraphHomomorphism n e Source #

A GraphHomomorphism is composed of a map between the nodes of the graphs, a map between the edges of the graphs, and the target Graph so that we can recover it from the morphism.

It must follow axioms such that the image of an arrow is not torn appart, that is why the constructor is private. Use the smart constructor graphHomomorphism instead.

Instances

Instances details
(PrettyPrint n, PrettyPrint e, Eq n, Eq e) => PrettyPrint (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

pprint :: Int -> GraphHomomorphism n e -> String Source #

pprintWithIndentations :: Int -> Int -> String -> GraphHomomorphism n e -> String Source #

pprintIndent :: Int -> GraphHomomorphism n e -> String Source #

(Simplifiable n, Simplifiable e, Eq n, Eq e) => Simplifiable (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Generic (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Associated Types

type Rep (GraphHomomorphism n e) :: Type -> Type

Methods

from :: GraphHomomorphism n e -> Rep (GraphHomomorphism n e) x

to :: Rep (GraphHomomorphism n e) x -> GraphHomomorphism n e

(Show n, Show e) => Show (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

showsPrec :: Int -> GraphHomomorphism n e -> ShowS

show :: GraphHomomorphism n e -> String

showList :: [GraphHomomorphism n e] -> ShowS

(Eq n, Eq e) => Eq (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

(==) :: GraphHomomorphism n e -> GraphHomomorphism n e -> Bool

(/=) :: GraphHomomorphism n e -> GraphHomomorphism n e -> Bool

(Eq n, Eq e) => Morphism (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e) => Category (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

identity :: FinGrph n e -> Graph n e -> GraphHomomorphism n e Source #

ar :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

genAr :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

decompose :: FinGrph n e -> GraphHomomorphism n e -> [GraphHomomorphism n e] Source #

(Eq e, Eq n) => HasCoequalizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source #

BEWARE, for the coequalizer to be correct, ALL arrow labels should be different (two arrows with different source and target might have the same source and target after the coequalization process).

Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e) => HasEqualizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e, Eq oIndex) => HasCoproducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

coproduct :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq oIndex) => HasProducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

product :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

(Eq e, Eq n, Eq mIndex, Eq oIndex) => CocompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

colimit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone cIndex mIndex oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

coprojectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq mIndex, Eq oIndex) => CompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

limit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone cIndex mIndex oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

projectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

type Rep (GraphHomomorphism n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

type Rep (GraphHomomorphism n e) = D1 ('MetaData "GraphHomomorphism" "Math.Categories.FinGrph" "FiniteCategories-0.6.4.0-inplace" 'False) (C1 ('MetaCons "GraphHomomorphism" 'PrefixI 'True) (S1 ('MetaSel ('Just "nodeMap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map n n)) :*: (S1 ('MetaSel ('Just "edgeMap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map (Arrow n e) (Arrow n e))) :*: S1 ('MetaSel ('Just "targetGraph") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Graph n e)))))

Getters

nodeMap :: GraphHomomorphism n e -> Map n n Source #

The mapping of nodes.

edgeMap :: GraphHomomorphism n e -> Map (Arrow n e) (Arrow n e) Source #

The mapping of edges.

Smart constructor

checkGraphHomomorphism :: (Eq n, Eq e) => GraphHomomorphism n e -> Bool Source #

Check wether the structure of GraphHomomorphism is respected or not.

graphHomomorphism :: (Eq n, Eq e) => Map n n -> Map (Arrow n e) (Arrow n e) -> Graph n e -> Maybe (GraphHomomorphism n e) Source #

The smart constructor of GraphHomomorphism.

unsafeGraphHomomorphism :: Map n n -> Map (Arrow n e) (Arrow n e) -> Graph n e -> GraphHomomorphism n e Source #

Unsafe constructor of GraphHomomorphism which does not check the structure of the GraphHomomorphism.

FinGrph

data FinGrph n e Source #

The category of finite graphs.

Constructors

FinGrph 

Instances

Instances details
PrettyPrint (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

pprint :: Int -> FinGrph n e -> String Source #

pprintWithIndentations :: Int -> Int -> String -> FinGrph n e -> String Source #

pprintIndent :: Int -> FinGrph n e -> String Source #

Simplifiable (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

simplify :: FinGrph n e -> FinGrph n e #

Generic (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Associated Types

type Rep (FinGrph n e) :: Type -> Type

Methods

from :: FinGrph n e -> Rep (FinGrph n e) x

to :: Rep (FinGrph n e) x -> FinGrph n e

Show (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

showsPrec :: Int -> FinGrph n e -> ShowS

show :: FinGrph n e -> String

showList :: [FinGrph n e] -> ShowS

Eq (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

(==) :: FinGrph n e -> FinGrph n e -> Bool

(/=) :: FinGrph n e -> FinGrph n e -> Bool

(Eq n, Eq e) => Category (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

identity :: FinGrph n e -> Graph n e -> GraphHomomorphism n e Source #

ar :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

genAr :: FinGrph n e -> Graph n e -> Graph n e -> Set (GraphHomomorphism n e) Source #

decompose :: FinGrph n e -> GraphHomomorphism n e -> [GraphHomomorphism n e] Source #

(Eq e, Eq n) => HasCoequalizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source #

BEWARE, for the coequalizer to be correct, ALL arrow labels should be different (two arrows with different source and target might have the same source and target after the coequalization process).

Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e) => HasEqualizers (FinGrph n e) (GraphHomomorphism n e) (Graph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

(Eq n, Eq e, Eq oIndex) => HasCoproducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

coproduct :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq oIndex) => HasProducts (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

product :: Diagram (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone (DiscreteCategory oIndex) (DiscreteMorphism oIndex) oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

(Eq e, Eq n, Eq mIndex, Eq oIndex) => CocompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

colimit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cocone cIndex mIndex oIndex (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

coprojectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Colimit oIndex n) (Colimit oIndex e)) (GraphHomomorphism (Colimit oIndex n) (Colimit oIndex e)) (Graph (Colimit oIndex n) (Colimit oIndex e)) Source #

(Eq n, Eq e, Eq mIndex, Eq oIndex) => CompleteCategory (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) cIndex mIndex oIndex Source # 
Instance details

Defined in Math.Categories.FinGrph

Methods

limit :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Cone cIndex mIndex oIndex (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

projectBase :: Diagram cIndex mIndex oIndex (FinGrph n e) (GraphHomomorphism n e) (Graph n e) -> Diagram (FinGrph n e) (GraphHomomorphism n e) (Graph n e) (FinGrph (Limit oIndex n) (Limit oIndex e)) (GraphHomomorphism (Limit oIndex n) (Limit oIndex e)) (Graph (Limit oIndex n) (Limit oIndex e)) Source #

type Rep (FinGrph n e) Source # 
Instance details

Defined in Math.Categories.FinGrph

type Rep (FinGrph n e) = D1 ('MetaData "FinGrph" "Math.Categories.FinGrph" "FiniteCategories-0.6.4.0-inplace" 'False) (C1 ('MetaCons "FinGrph" 'PrefixI 'False) (U1 :: Type -> Type))

underlyingGraph :: (FiniteCategory c m o, Morphism m o) => c -> Graph o m Source #

Return the underlying graph of a FiniteCategory.

underlyingGraphFormat :: (FiniteCategory c m o, Morphism m o) => (o -> a) -> (m -> b) -> c -> Graph a b Source #

Return the underlying graph of a FiniteCategory and apply formatting functions on objects and arrows.