> **Puzzle 89.** Figure out exactly what a **Cost**-category is, starting with the definition above. Again, what matters is not your final answer so much as your process of deducing it!

There is an excellent article by [Simon Willteron](https://golem.ph.utexas.edu/category/2010/08/enriching_over_a_category_of_s.html) which lays out what **Cost**-enriched categories are nicely. Simon mentions Lawvere's [*Metric spaces, generalized logic, and closed categories* (2002)](https://golem.ph.utexas.edu/category/2010/08/enriching_over_a_category_of_s.html) where these ideas originated.

Here is my observation: **Cost**-enriched categories are a generalization of **Bool**-enriched categories.

To start, consider the following monoidal poset which I am calling **Prod**:

$$\langle [0,1], \leq, 1, (\cdot) \rangle$$

...where \\((\cdot)\\) is just ordinary multiplication over \\(\mathbb{R}\\).

Consider the map \\(- \mathrm{ln} : [0,1] \to [0,\infty]\\). This inverse of this map is \\(x \mapsto e^{-x}\\). Moreover, we have the following monoid homomorphisms:

$$
\begin{align}
- \mathrm{ln} (a \cdot b) & = - (\mathrm{ln} (a) + \mathrm{ln} (b)) \\\\
& = - \mathrm{ln} (a) + -\mathrm{ln} (b)
\end{align}
$$

and

$$
\begin{align}
e^{- (a + b)} & = e^{(- a)\, +\, (-b)} \\\\
& = e^{-a} \cdot e^{-b}
\end{align}
$$

Since \\(- \mathrm{ln} \\) and \\(\lambda x. e^{-x}\\) are strictly decreasing, we have

$$\begin{align}
\mathbf{Prod} & \cong \langle [0,1], \leq, 1, (\cdot) \rangle\\\\
& \cong \langle [0,\infty], \geq, 0, + \rangle \\\\
&\cong \mathbf{Cost}
\end{align}$$

We can see that every **Bool**-enriched category is a **Prod**-enriched category, using the following mappings:

$$
\begin{align}
\mathtt{false} & \mapsto 0 \\\\
\mathtt{true} & \mapsto 1 \\\\
(\wedge) & \mapsto (\cdot) \\\\
\end{align}
$$


Morever, say a **Prod**-enriched category \\(\mathcal{X}\\) is *bivalent* if:

$$ \forall x, y. \mathcal{X}(x,y) = 0 \text{ or } \mathcal{X}(x,y) = 1 $$

Then \\(\mathcal{X}\\) is equivalent to a **Bool**-enriched category.

*This is because **Prod** (hence **Cost**) is the fuzzy logic generalization of **Bool** logic called [**Product Logic**](https://plato.stanford.edu/entries/logic-fuzzy/#OtheNotaFuzzLogi).*

**Prod** has inequality in the right direction and feels a lot like **Bool**. But it doesn't have the nice interpretation that **Cost** has.