# Lecture 23 - Commutative Monoidal Posets

Let's look at some examples of commutative monoidal posets! You probably know a lot of them without even realizing it. That's what category theory often does: make implicit knowledge explicit.

Last time we saw that many of our favorite number systems, like \(\mathbb{N}, \mathbb{Z}, \mathbb{Q}\) and \(\mathbb{R} \) are commutative monoidal posets with the usual \(\le\), with \(+\) as the monoid operation and \(0\) as the unit for this operation. You should be wondering this:

**Puzzle 71.** Can you make the complex numbers, \(\mathbb{C}\), into a commutative monoidal poset with the usual \(+\) and \(0\) and some concept of \(\le\)? If so, how many ways can you do this?

But more importantly, we can get a lot of commutative monoidal posets from *logic*. This may seem weird: we're supposed to be talking about resource theories, but now I'm talking about logic. But it's not weird: logic is about statements... and statements—or if you prefer, "information" or "data"—are a very important kind of resource!

We've already seen that different kinds of posets give different kinds of logic. For example, in Lecture 8 we took the collection of all subsets of a set \(X\) and defined \(S \le T\) if \(S \subseteq T\), getting a poset whose elements can be seen as *statements about elements of \(X\)*. In Lecture 10 got another nice poset, and a different form of logic, by considering all the partitions of a set.

There are often *two* ways to create a commutative monoidal poset from a form of logic! In one the monoid operation is "join", \(\vee\), which often has the logical meaning of "or". In another the monoid operation is "meet", \( \wedge\), which has the logical meaning of "and".

Let's see how it works.

**Posets with finite joins.** Suppose \( (X, \le) \) is a poset for which every finite subset has a join. This is equivalent to saying that every pair of elements in \(X\) has a join and the empty set also has a join.

The join of two elements \(x,y \in X\) is called \(x \vee y\), and by definition it's the least element that's greater than or equal to both \(x\) and \(y\).

The join of the empty set is called the **bottom** element of \(X\), and denoted \(\bot\). By definition it's the least element that's greater than or equal to... everything in the empty set! In other words, it's the least element of \(X\).

From all this we get a commutative monoidal poset \( (X, \le, \vee, \bot) \). In logic, \(\vee\) often means "or" and \(\bot\) often means "false".

**Puzzle 72.** Prove this! To prove it's a monoidal poset, you must check that \(\vee\) is associative, that \(\bot \vee x = x = x \vee \bot\), and that

[ x \le x' \textrm{ and } y \le y' \textrm{ imply } x \vee y \le x' \vee y' .]

To prove it's commutative, you must check that

[ x \vee y = y \vee x .]

**Puzzle 73.** I claimed that every finite subset of a poset have a join if and only if every pair of elements has a join and the empty set has a join. Why is this true?

All this has a version for meets, too:

**Posets with finite meets.** Suppose \( (X, \le) \) is a poset for which every finite subset has a meet. This is equivalent to saying that every pair of elements in \(X\) has a meet and the empty set also has a meet.

The join of two elements \(x,y \in X\) is called \(x \wedge y\), and by definition it's the greatest element that's less than or equal to both \(x\) and \(y\).

The meet of the empty set is called the **top** element of \(X\), and denoted \(\top \). By definition it's the greatest element that's less than or equal to... everything in the empty set! In other words, it's the greatest element of \(X\).

From all this we get a commutative monoidal poset \( (X, \le, \wedge, \top) \). In logic, \(\wedge\) often means "and" and \(\top\) often means "true". (We are very lucky that in English "true" starts with the same letter as "top".)

Do we need to check all these claims in detail?

No! For any poset we can define a new poset, its **opposite**, where \(\le\) is defined to mean \(\ge\) in the old poset. Joins in the old poset are meets in the new poset, and vice versa. The bottom of the old poset is the top of the new poset, and vice versa. Using this trick, we can take all our claims about a poset with finite meets and turn them into the claims we've already seen about a poset with finite joins.

Up is down! Down is up! This trick is called **duality**, and I discussed it in Lecture 17.

The commutative monoidal posets we get from logic have some properties that are unusual when compared to, say, the real numbers:

**Puzzle 74.** Show that if \( (X, \le) \) is a poset with finite joins, we have

[ \bot \le x ]

and

[ x \vee x = x ]

for all \(x \in X \).

Similarly, if \( (X, \le) \) is a poset with finite meets, we have

[ x \le \top ]

and

[ x \wedge x = x ]

for all \(x \in X \).

These special properties say that information can be "deleted" and "duplicated" in certain special ways, that don't work for other resources. For example, \(x \wedge x = x\) says that knowing \(x\) *and* \(x\) is exactly the same as knowing \(x\). This is connected to the fact that we can take a piece of data, like the bits of information in a music file, and duplicate it. On the other hand, we can't usually duplicate money: it's not true that \( \$ 10 + \$10 = \$10\). But this leads to big problems in the Information Age, where more and more good are being reduced to data. How can you can sell two copies of a music file for \(\$10 \) each, if the person you sell it to is free to duplicate it?

There are also issues with "deletion", but these are a bit subtler so I'll postpone them for later.

**To read other lectures go here.**