# User:Michiexile/MATH198/Lecture 4

### From HaskellWiki

IMPORTANT NOTE: THESE NOTES ARE STILL UNDER DEVELOPMENT. PLEASE WAIT UNTIL AFTER THE LECTURE WITH HANDING ANYTHING IN, OR TREATING THE NOTES AS READY TO READ.

## Contents |

### 1 Product

- Cartesian product in Set
- Product of categories construction
- Record types
- Categorical formulation
- Universal X such that Y

### 2 Coproduct

- Diagram definition
- Disjoint union in Set
- Coproduct of categories construction
- Union types

### 3 Limits and colimits

- Generalizing these constructions
- Diagram and universal object mapping to (from) the diagram
- Express product/coproduct as limit/colimit
- Issues with Haskell
- No dependent types
- No compiler-enforced equational conditions
- Can be
*simulated*but not enforced, e.g. using QuickCheck.

#### 3.1 Useful limits and colimits

##### 3.1.1 Equalizer, coequalizer

- Kernels, cokernels, images, coimages
- connect to linear algebra: null spaces et.c.

##### 3.1.2 Pushout and pullback squares

- Computer science applications

* The power of dualization. * Limits, colimits. * Products, coproducts. * Equalizers, coequalizers.