[Last time](https://forum.azimuthproject.org/discussion/2303/lecture-67-chapter-4-feedback) we began studying feedback in co-design diagrams. This led us into a fascinating topic which we'll explore more deeply today: cups and caps. Ultimately it leads to the subject of ['compact closed'](https://en.wikipedia.org/wiki/Compact_closed_category) categories, which Fong and Spivak introduce in Section 4.5.1. Covering this material adequately will take longer than the three weeks I'd intended to spend on each chapter, but I think it's worth it. Last time we saw that for each preorder \$$X\$$ there's a feasibility relation called the **cup** $\cup_X \colon X^{\text{op}} \times X \nrightarrow \textbf{1}$ which we draw as follows: To define the cup, we remembered that feasibility relations \$$X^{\text{op}} \times X \nrightarrow \textbf{1}\$$ are monotone functions \$$(X^{\text{op}} \times X)^\text{op} \times \textbf{1} \to \mathbf{Bool} \$$, and we defined \$$\cup_X\$$ to be the composite $(X^{\text{op}} \times X)^\text{op} \times \textbf{1} \stackrel{\sim}{\to} (X^{\text{op}} \times X)^\text{op} \stackrel{\sim}{\to} (X^{\text{op}})^\text{op} \times X^{\text{op}} \stackrel{\sim}{\to} X \times X^{\text{op}} \stackrel{\sim}{\to} X^{\text{op}} \times X \stackrel{\text{hom}}{\to} \textbf{Bool}$ where all the arrows with little squiggles over them are isomorphisms - most of them discussed in Puzzles 213-215. In short, the cup is the hom-functor \$$\text{hom} \colon X^{\text{op}} \times X \to \mathbf{Bool}\$$ in disguise! The cup's partner is called the **cap** $\cap_X \colon \textbf{1} \nrightarrow X \times X^{\text{op}}$ and we draw it like this: The cap is also the hom-functor in disguise! To define it, remember that feasibility relations \$$\textbf{1} \nrightarrow X^{\text{op}} \times X\$$ are monotone functions \$$\textbf{1}^{\text{op}} \times (X^{\text{op}} \times X) \$$. But \$$\textbf{1}^{\text{op}} = \textbf{1}\$$, so we define the cap to be the compoiste $\textbf{1}^{\text{op}} \times (X^{\text{op}} \times X) = \textbf{1}\times (X^{\text{op}} \times X) \stackrel{\sim}{\to} X^{\text{op}} \times X \stackrel{\text{hom}}{\to} \textbf{Bool} .$ One great thing about the cup and cap is that they let us treat the edges in our co-design diagrams as flexible wires. In particular, they obey the **snake equations**, also known as the **zig-zag identities**. These say that we can pull taut a zig-zag of wire. The first snake equation says In other words, $(1\_X \times \cup\_X) (\cap\_X \times 1_X) = 1\_X .$ Please study the diagram and the corresponding equation very carefully to make sure you see how each part of one corresponds to a part of the other! And please ask questions if there's anything puzzling. It takes a while to get used to these things. The second snake equation says In other words, $(\cup_X \times 1\_{X^{\text{op}}}) (1\_{X^{\text{op}}} \times \cap_X) = 1_{X^{\text{op}}} .$ A great exercise, to make sure you understand what's going on, is to prove the snake equations. You just need to remember all the definition, use them to compute the left-hand side of the identity, and show it equals the much simpler right-hand side. **Puzzle 217.** Prove the snake equations. In fact some of you have already started doing this!