# Definition:Functor

This page has been identified as a candidate for refactoring of advanced complexity.In particular: The pages Definition:Arrow Functor, Definition:Object Functor and Definition:Morphism Functor redirect here. We need pages explicitly stating what these things are.Until this has been finished, please leave
`{{Refactor}}` in the code.
Because of the underlying complexity of the work needed, it is recommended that you do not embark on a refactoring task until you have become familiar with the structural nature of pages of $\mathsf{Pr} \infty \mathsf{fWiki}$.To discuss this page in more detail, feel free to use the talk page.When this work has been completed, you may remove this instance of `{{Refactor}}` from the code. |

## Definition

Informally, a **functor** is a morphism of categories.

It may be described as what one must define in order to define a **natural transformation**.

This is formalized by defining the category of categories.

### Covariant Functor

Let $\mathbf C$ and $\mathbf D$ be metacategories.

A **covariant functor** $F: \mathbf C \to \mathbf D$ consists of:

- An
**object functor**$F_0$ that assigns to each object $X$ of $\mathbf C$ an object $FX$ of $\mathbf D$.

- An
**arrow functor**$F_1$ that assigns to each arrow $f: X \to Y$ of $\mathbf C$ an arrow $Ff : FX \to FY$ of $\mathbf D$.

These **functors** must satisfy, for any morphisms $X \stackrel f \longrightarrow Y \stackrel g \longrightarrow Z$ in $\mathbf C$:

- $\map F {g \circ f} = F g \circ F f$

and:

- $\map F {\operatorname {id}_X} = \operatorname{id}_{F X}$

where $\operatorname {id}_W$ denotes the identity arrow on an object $W$, and $\circ$ is the composition of morphisms.

The behaviour of a **covariant functor** can be pictured as follows:

- $\begin{xy}

<4em,4em>*{\mathbf C} = "C", <0em,0em>*+{X} = "a", <4em,0em>*+{Y} = "b", <4em,-4em>*+{Z}= "c",

"a";"b" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{f}, "b";"c" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{g}, "a";"c" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{g \circ f},

"C"+/r9em/*{\mathbf D}, "C"+/r2em/;"C"+/r6em/ **@{-} ?>*@{>} ?*!/_1em/{F},

"b"+/r2em/+/_2em/;"b"+/r6em/+/_2em/ **@{~} ?>*@2{>} ?<>(.5)*!/_.6em/{F},

"a"+/r13em/*+{FX}="Fa", "b"+/r13em/*+{FY}="Fb", "c"+/r13em/*+{FZ}="Fc",

"Fa";"Fb" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{Ff}, "Fb";"Fc" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{Fg}, "Fa";"Fc" **@{-} ?>*@{>} ?<>(.7)*!/r3em/{F \left({g \circ f}\right) = \\ Fg \circ Ff}, \end{xy}$

### Contravariant Functor

Let $\mathbf C$ and $\mathbf D$ be metacategories.

A **contravariant functor** $F : \mathbf C \to \mathbf D$ consists of:

- An
**object functor**$F_0$ that assigns to each object $X$ of $\mathbf C$ an object $FX$ of $\mathbf D$.

- An
**arrow functor**$F_1$ that assigns to each arrow $f : X \to Y$ of $\mathbf C$ an arrow $Ff : FY \to FX$ of $\mathbf D$.

These **functors** must satisfy, for any morphisms $X \stackrel f \longrightarrow Y \stackrel g \longrightarrow Z$ in $\mathbf C$:

- $\map F {g \circ f} = F f \circ F g$

and:

- $\map F {\operatorname {id}_X} = \operatorname {id}_{F X}$

where:

- $\operatorname {id}_W$ denotes the identity arrow on an object $W$

and:

- $\circ$ is the composition of morphisms.

## Co- and Contravariance

Both **covariant** and **contravariant functors** are paramount in all of contemporary mathematics.

The intention behind defining a **functor** is to formalise and abstract the intuitive notion of "preserving structure".

**Functors** thus can be understood as a generalisation of the concept of homomorphism in all its instances.

This explains why one would be led to contemplate **covariant functors**.

However, certain "natural" operations like transposing a matrix do not preserve the structure as rigidly as a homomorphism (we do have Transpose of Matrix Product, however).

Because of the abundant nature of this type of operation, the concept of a **contravariant functors** was invented to capture their behaviour as well.

## Also see

## Sources

- 1964: Peter Freyd:
*Abelian Categories*... (previous) ... (next): Introduction