Another attempt to summarise things with pictures and informal description. This time: Partitions. Comments/suggests greatfully accepted as before.

Partitions are covered in section 1.2.1 of [the book](https://arxiv.org/pdf/1803.05316.pdf). They're also covered in [Exercise 3](https://forum.azimuthproject.org/discussion/1876/exercise-3-chapter-1#latest).

## What is a Partition?

John describes it as follows in [this comment](https://forum.azimuthproject.org/discussion/comment/16368/#Comment_16368):

> A partition of a set is a way of writing it as a disjoint union of nonempty subsets.

That's pretty accessible, even for non-mathematicians like me. No harm in illustrating with an example though. Let's take a set of colleagues in some fictitious workplace:

![set of people](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/people.png)

And create a partition based on their roles:

![set of people partitioned by role](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/people-roles.png)

What makes that a partition? Let's go back to the definition:

> a disjoint union of non-empty subsets

* Each of *Product Managers*, *Engineers* and *Mathematicians* has at least one person in it. So there are no empty subsets.
* Each person fits in exactly one subset. That means:
* The subsets aren't overlapping, they're *disjoint*.
* the original People set can be constructed by joining together the three subsets. In set theory, "union" just means "join together".

Here's a slightly different way of defining a partition, drawing on some of the language above.

> A partition of a set splits the members into separate subgroups such that:

> 1. Every member of the set is contained in exactly one subgroup, and
> 1. Every subgroup contains at least one member

### What about the definition in the book?

Partitions are introduced in definition 1.8 in the book:

> If \\(A\\) is a set, a *partition* of \\(A\\) consists of a set \\(P\\) and, for each \\(p \in P\\), a non-empty subset \\(A_p\subset A\\), such that:

$$ A=\bigcup_{p\in P}A_p \qquad\text{and}\qquad \text{if }p\neq q\text{ then }A_P\cap A_Q=\emptyset $$

There's a bit more in there, so let's break it down. First, it introduces a new set \\(P\\) with members \\(p\\). This just describes the partition itself, where each subgroup (or *part*) is a member of P. In our example above, P is the set of roles, as follows:

![roles](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/roles.png)

We now have the set \\(A\\) being partitioned, and the set \\(P\\) defining the parts. Picking up the next part of the definition:

> for each \\(p \in P\\), a non-empty subset \\(A_p\subset A\\)

So: each \\(p\\) - each *part* - maps to a non-empty subset of \\(A\\). That's just what we drew in the partition diagram above. Here's a slightly different way of drawing it, such that \\(A\\) and \\(P\\) are both shown consistently as sets:

![Mapping of people to roles](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/people-roles-sets.png)

We can now enumerate the subsets \\(A_p \subset A\\):

* \\(A_{Product Managers} = (Sidd)\\)
* \\(A_{Mathematicians} = (Fiona, Aruna, Malcolm)\\)
* \\(A_{Engineers} = (Guillaume, Wendy)\\)

Back to the definition:

$$ A=\bigcup_{p\in P}A_p $$

Reading this in natural language, it says \\(A\\) is the union \\(\bigcup\\) of all subsets \\(A_p\\) for each \\(p\in P \\). So \\(A = A_{ProductManagers} + A_{Mathematicians} + A_{Engineers}\\).

And so the final component of the definition:

$$\text{if }p\neq q\text{ then }A_P\cap A_Q=\emptyset$$

This is the 'disjoint', or non-overlapping clause. Translating that literally into words:

> If p isn't equal to q, then the intersection of subsets \\(A_P\\) and \\(A_Q\\) is the empty set.

Less prosaically, \\(A_P\\) and \\(A_Q\\) don't share any members unless \\(p = q\\) (in which case \\(p\\) and \\(q\\) represent the same element).

We're back to where we started now. \\(P\\) is a partition of \\(A\\) because:

1. \\(P\\) comprises one or more parts
2. Each part of \\(P\\) contains at least one element of \\(A\\)
3. Each element of \\(A\\) is contained in exactly one part of \\(P\\)

## Comparing Partitions

So far we've only looked at one partition of our People set. Here's another:

![Mapping of people to roles](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/people-locations.png)

This partitions based on location as opposed to role. It only has 2 parts where the role-based partition had 3. We can compare the two partions as follows:

* The Role partition is ***finer*** than the Location partition
* The Location partition is ***coarser*** than the Role partition

These statements are inverses. Formally, a partition \\(P_1\\) is finer than \\(P_2\\) if:

1. \\(P_1\\) and \\(P_2\\) partition the same set, and
2. Every part of \\(P_2\\) is a union of parts in \\(P_1\\)

Relating that to the Location and Role Partitions:

1. *Auckland* is the union of *Engineers* and *Product Managers*
2. *Edinburgh* is the same as *Mathematicians*.

But wait: surely Edinburgh isn't a union of Location parts? Technically it is: *Edinburgh* is the union of *Mathematicians* and the empty set \\(\emptyset\\). The empty set is a subset of every set by definition.

### A counter example

It's perhaps tempting to define the finer/coarser relation as simply:

* A finer partition has more parts

However, that doesn't work. Suppose Guillaume moved from Auckland to Edinburgh:

![Mapping of people to roles](https://raw.githubusercontent.com/sfinnie/CategoryTheoryCourseNotes/master/partitions/img/people-locations2.png)

We can't now relate the revised Location partition with the Role-based alternative. There's no way to combine the *Product Manager*, *Engineer* and *Mathematician* parts, using the union operator, to produce the *Edinburgh* and *Auckland* parts.