# Difference between revisions of "User:Michiexile/MATH198/Lecture 1"

Michiexile (talk | contribs) |
Michiexile (talk | contribs) |
||

Line 28: | Line 28: | ||

* For vertices take logical propositions. For arrows take proofs in propositional logic. The identity arrow is the empty proof: ''P'' proves ''P'' without an actual proof. And if you can prove ''P'' using ''Q'' and then ''R'' using ''P'', then this composes to a proof of ''R'' using ''Q''. |
* For vertices take logical propositions. For arrows take proofs in propositional logic. The identity arrow is the empty proof: ''P'' proves ''P'' without an actual proof. And if you can prove ''P'' using ''Q'' and then ''R'' using ''P'', then this composes to a proof of ''R'' using ''Q''. |
||

* For vertices, take data types. For arrows take (computable) functions. This forms a category, in which we can discuss an abstraction that mirrors most of Haskell. There are issues making Haskell not quite a category on its own, but we get close enough to draw helpful conclusions and analogies. |
* For vertices, take data types. For arrows take (computable) functions. This forms a category, in which we can discuss an abstraction that mirrors most of Haskell. There are issues making Haskell not quite a category on its own, but we get close enough to draw helpful conclusions and analogies. |
||

+ | |||

+ | Some language we want settled: |
||

+ | |||

+ | A category is ''concrete'' if it is like the vector spaces and the sets among the examples - the collection of all sets-with-specific-additional-structure equipped with all functions-respecting-that-structure. We require already that ''Ar(v,w)'' is always a set. |
||

+ | |||

+ | A category is ''small'' if the collection of all vertices, too, is a set. |

## Revision as of 11:18, 27 August 2009

## Welcome, administrativia

## Introduction

Why this course? What will we cover? What do we require?

## Category

A *graph* is a collection *G0* of *vertices* and a collection *G1* of *arrows*. The structure of the graph is captured in the existence of two functions, that we shall call *source* and *target*, both going from *G1* to *G0*. In other words, each arrow has a source and a target.

We denote by *Ar(v,w)* the collection of arrows with source *v* and target *w*.

A *category* is a graph with some special structure:

- Each
*Ar(v,w)*is a set and equipped with a composition operation*Ar(u,v) x Ar(v,w) -> Ar(u,w)*. In other words, any two arrows, such that the target of one is the source of the other, can be composed to give a new arrow with target and source from the ones left out.

*u -> v -> w => u -> w*

- The composition of arrows is associative.
- Each vertex
*v*has a dedicated arrow*1v*with source and target*v*, called the identity arrow. - Each identity arrow is a left- and right-identity for the composition operation.

### Examples

- The empty category with no vertices and no arrows.
- The category
*1*with a single vertex and only its identity arrow. - The category
*2*with two objects, their identity arrows and the arrow*a -> b*. - For vertices take vector spaces. For arrows, take linear maps. This is a category, the identity arrow is just the identity map
*f(x) = x*and composition is just function composition. - For vertices take finite sets. For arrows, take functions.
- For vertices take logical propositions. For arrows take proofs in propositional logic. The identity arrow is the empty proof:
*P*proves*P*without an actual proof. And if you can prove*P*using*Q*and then*R*using*P*, then this composes to a proof of*R*using*Q*. - For vertices, take data types. For arrows take (computable) functions. This forms a category, in which we can discuss an abstraction that mirrors most of Haskell. There are issues making Haskell not quite a category on its own, but we get close enough to draw helpful conclusions and analogies.

Some language we want settled:

A category is *concrete* if it is like the vector spaces and the sets among the examples - the collection of all sets-with-specific-additional-structure equipped with all functions-respecting-that-structure. We require already that *Ar(v,w)* is always a set.

A category is *small* if the collection of all vertices, too, is a set.