# Category theory/Natural transformation

### From HaskellWiki

< Category theory(Difference between revisions)

EndreyMark (Talk | contribs) (Fix broken link) |
EndreyMark (Talk | contribs) (→Commutative diagram: Definition of notion ``natural transformation'') |
||

Line 15: | Line 15: | ||

=== Commutative diagram === | === Commutative diagram === | ||

− | Let <math>\mathcal C</math>, <math>\mathcal D</math> denote categories. | + | * Let <math>\mathcal C</math>, <math>\mathcal D</math> denote categories. |

− | Let <math>\Phi, \Psi : \mathcal C \to \mathcal D</math> be functors. | + | * Let <math>\Phi, \Psi : \mathcal C \to \mathcal D</math> be functors. |

− | Let us define the <math>\eta : \Phi \to \Psi</math> natural transformation. | + | * Let <math>X, Y \in \mathbf{Ob}(\mathcal C)</math>. Let <math>f \in \mathrm{Hom}_{\mathcal C}(X, Y)</math>. |

+ | Let us define the <math>\eta : \Phi \to \Psi</math> natural transformation. It associates to each object of <math>\mathcal{C}</math> a morphism of <math>\mathcal{D}</math> in the following way (usually, not sets are discussed here, but proper classes, so I do not use term “function” for this <math>\mathbf{Ob}(\mathcal C) \to \mathbf{Mor}(\mathcal D)</math> mapping): | ||

+ | * <math>\forall A \in \mathbf{Ob}(\mathcal C) \longmapsto \eta_A \in \mathrm{Hom}_{\mathcal D}(\Phi(A), \Psi(A))</math>. We call <math>\eta_A</math> the component of <math>\eta</math> at ''A''. | ||

+ | * <math>\eta_Y \cdot \Phi(f) = \Psi(f) \cdot \eta_X</math> | ||

+ | Thus, the following diagram commutes: | ||

− | + | [[Image:natural_transformation.png|center]] | |

− | + | ||

− | [[Image:natural_transformation.png]] | + | |

=== Vertical arrows: sides of objects === | === Vertical arrows: sides of objects === |

## Revision as of 14:37, 3 October 2006

## Contents |

## 1 Example: maybeToList

maybeToList

map even $ maybeToList $ Just 5

yields the same as

maybeToList $ fmap even $ Just 5

yields: both yield

[False]

### 1.1 Commutative diagram

- Let , denote categories.
- Let be functors.
- Let . Let .

Let us define the natural transformation. It associates to each object of a morphism of in the following way (usually, not sets are discussed here, but proper classes, so I do not use term “function” for this mapping):

- . We call η
_{A}the component of η at*A*.

Thus, the following diagram commutes:

### 1.2 Vertical arrows: sides of objects

… showing how the natural transformation works.

maybeToList :: Maybe a -> [a]

#### 1.2.1 Left: side of *X* object

maybeToList :: Maybe Int -> [Int] | |

Nothing |
[] |

Just 0 |
[0] |

Just 1 |
[1] |

#### 1.2.2 Right: side of *Y* object

maybeToList :: Maybe Bool -> [Bool] | |

Nothing |
[] |

Just True |
[True] |

Just False |
[False] |

### 1.3 Horizontal arrows: sides of functors

even :: Int -> Bool

#### 1.3.1 Side of Φ functor

fmap even:: Maybe Int -> Maybe Bool | |

Nothing |
Nothing |

Just 0 |
Just True |

Just 1 |
Just False |

#### 1.3.2 Side of Ψ functor

map even:: [Int] -> [Bool] | |

[] |
[] |

[0] |
[True] |

[1] |
[False] |

### 1.4 Commutativity of the diagram

both paths span between

Maybe Int -> [Bool] | ||

map even . maybeToList |
maybeToList . fmap even | |

Nothing |
[] |
[] |

Just 0 |
[True] |
[True] |

Just 1 |
[False] |
[False] |

### 1.5 Remarks

- has a more general type (even) than described hereIntegral a => a -> Bool
- Words “side”, “horizontal”, “vertical”, “left”, “right” serve here only to point to the discussed parts of a diagram, thus, they are not part of the scientific terminology.
- If You want to modifiy the #Commutative diagram, see its source code (in LaTeX using
`amscd`

).

### 1.6 External links

- The corresponding HaWiki article is not migrated here yet, so You can see it for more information.
- Wikipedia's Natural transformation article