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

ProductCategory.ProductCategory

Description

Product category of two categories.

Synopsis

Documentation

firstObject :: ProductObject o1 o2 -> o1 Source #

Returns the first object of a product object.

firstMorphism :: ProductMorphism m1 o1 m2 o2 -> m1 Source #

Returns the first morphism of a product morphism.

firstCategory :: ProductCategory c1 m1 o1 c2 m2 o2 -> c1 Source #

Returns the first category of a product category.

secondObject :: ProductObject o1 o2 -> o2 Source #

Returns the second object of a product object.

secondMorphism :: ProductMorphism m1 o1 m2 o2 -> m2 Source #

Returns the second morphism of a product morphism.

secondCategory :: ProductCategory c1 m1 o1 c2 m2 o2 -> c2 Source #

Returns the second category of a product category.

data ProductObject o1 o2 Source #

Object in a product category.

Constructors

ProductObject o1 o2 

Instances

Instances details
(Eq o1, Eq o2) => Eq (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

(==) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

(/=) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

(Ord o1, Ord o2) => Ord (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

compare :: ProductObject o1 o2 -> ProductObject o1 o2 -> Ordering

(<) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

(<=) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

(>) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

(>=) :: ProductObject o1 o2 -> ProductObject o1 o2 -> Bool

max :: ProductObject o1 o2 -> ProductObject o1 o2 -> ProductObject o1 o2

min :: ProductObject o1 o2 -> ProductObject o1 o2 -> ProductObject o1 o2

(Show o1, Show o2) => Show (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

showsPrec :: Int -> ProductObject o1 o2 -> ShowS

show :: ProductObject o1 o2 -> String

showList :: [ProductObject o1 o2] -> ShowS

(PrettyPrintable o1, PrettyPrintable o2) => PrettyPrintable (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

pprint :: ProductObject o1 o2 -> String Source #

(Morphism m1 o1, Morphism m2 o2) => Morphism (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

(@) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 Source #

source :: ProductMorphism m1 o1 m2 o2 -> ProductObject o1 o2 Source #

target :: ProductMorphism m1 o1 m2 o2 -> ProductObject o1 o2 Source #

(GeneratedFiniteCategory c1 m1 o1, Morphism m1 o1, GeneratedFiniteCategory c2 m2 o2, Morphism m2 o2) => GeneratedFiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

genAr :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

decompose :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

genArrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

(FiniteCategory c1 m1 o1, Morphism m1 o1, FiniteCategory c2 m2 o2, Morphism m2 o2) => FiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

ob :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductObject o1 o2] Source #

identity :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductMorphism m1 o1 m2 o2 Source #

ar :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

arrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

data ProductMorphism m1 o1 m2 o2 Source #

Morphism in a product category.

Constructors

ProductMorphism m1 m2 

Instances

Instances details
(Eq m1, Eq m2) => Eq (ProductMorphism m1 o1 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

(==) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

(/=) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

(Ord m1, Ord m2) => Ord (ProductMorphism m1 o1 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

compare :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Ordering

(<) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

(<=) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

(>) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

(>=) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> Bool

max :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2

min :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2

(Show m1, Show m2) => Show (ProductMorphism m1 o1 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

showsPrec :: Int -> ProductMorphism m1 o1 m2 o2 -> ShowS

show :: ProductMorphism m1 o1 m2 o2 -> String

showList :: [ProductMorphism m1 o1 m2 o2] -> ShowS

(PrettyPrintable m1, PrettyPrintable m2) => PrettyPrintable (ProductMorphism m1 o1 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

pprint :: ProductMorphism m1 o1 m2 o2 -> String Source #

(Morphism m1 o1, Morphism m2 o2) => Morphism (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

(@) :: ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> ProductMorphism m1 o1 m2 o2 Source #

source :: ProductMorphism m1 o1 m2 o2 -> ProductObject o1 o2 Source #

target :: ProductMorphism m1 o1 m2 o2 -> ProductObject o1 o2 Source #

(GeneratedFiniteCategory c1 m1 o1, Morphism m1 o1, GeneratedFiniteCategory c2 m2 o2, Morphism m2 o2) => GeneratedFiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

genAr :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

decompose :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

genArrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

(FiniteCategory c1 m1 o1, Morphism m1 o1, FiniteCategory c2 m2 o2, Morphism m2 o2) => FiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

ob :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductObject o1 o2] Source #

identity :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductMorphism m1 o1 m2 o2 Source #

ar :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

arrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

data ProductCategory c1 m1 o1 c2 m2 o2 Source #

Product category of two categories.

Constructors

ProductCategory c1 c2 

Instances

Instances details
(Eq c1, Eq c2) => Eq (ProductCategory c1 m1 o1 c2 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

(==) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

(/=) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

(Ord c1, Ord c2) => Ord (ProductCategory c1 m1 o1 c2 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

compare :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Ordering

(<) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

(<=) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

(>) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

(>=) :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> Bool

max :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2

min :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2 -> ProductCategory c1 m1 o1 c2 m2 o2

(Show c1, Show c2) => Show (ProductCategory c1 m1 o1 c2 m2 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

showsPrec :: Int -> ProductCategory c1 m1 o1 c2 m2 o2 -> ShowS

show :: ProductCategory c1 m1 o1 c2 m2 o2 -> String

showList :: [ProductCategory c1 m1 o1 c2 m2 o2] -> ShowS

(GeneratedFiniteCategory c1 m1 o1, Morphism m1 o1, GeneratedFiniteCategory c2 m2 o2, Morphism m2 o2) => GeneratedFiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

genAr :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

decompose :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductMorphism m1 o1 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

genArrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

(FiniteCategory c1 m1 o1, Morphism m1 o1, FiniteCategory c2 m2 o2, Morphism m2 o2) => FiniteCategory (ProductCategory c1 m1 o1 c2 m2 o2) (ProductMorphism m1 o1 m2 o2) (ProductObject o1 o2) Source # 
Instance details

Defined in ProductCategory.ProductCategory

Methods

ob :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductObject o1 o2] Source #

identity :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductMorphism m1 o1 m2 o2 Source #

ar :: ProductCategory c1 m1 o1 c2 m2 o2 -> ProductObject o1 o2 -> ProductObject o1 o2 -> [ProductMorphism m1 o1 m2 o2] Source #

arrows :: ProductCategory c1 m1 o1 c2 m2 o2 -> [ProductMorphism m1 o1 m2 o2] Source #