It looks like you're new here. If you want to get involved, click one of these buttons!

- All Categories 2.3K
- Chat 502
- Study Groups 21
- Petri Nets 9
- Epidemiology 4
- Leaf Modeling 2
- Review Sections 9
- MIT 2020: Programming with Categories 51
- MIT 2020: Lectures 20
- MIT 2020: Exercises 25
- Baez ACT 2019: Online Course 339
- Baez ACT 2019: Lectures 79
- Baez ACT 2019: Exercises 149
- Baez ACT 2019: Chat 50
- UCR ACT Seminar 4
- General 72
- Azimuth Code Project 110
- Statistical methods 4
- Drafts 10
- Math Syntax Demos 15
- Wiki - Latest Changes 3
- Strategy 113
- Azimuth Project 1.1K
- - Spam 1
- News and Information 148
- Azimuth Blog 149
- - Conventions and Policies 21
- - Questions 43
- Azimuth Wiki 715

Options

Today I will finally define enriched profunctors. For this we need two ways to build enriched categories.

There are lots of ways to build new categories from old, and most work for \(\mathcal{V}\)-enriched categories too *if* \(\,\mathcal{V}\) is nice enough. We ran into two of these constructions for categories in Lecture 52 when discussing the hom-functor

$$ \mathrm{hom}: \mathcal{C}^{\text{op}} \times \mathcal{C} \to \mathbf{Set} . $$ To make sense of this we needed to show that we can take the 'product' of categories, and that every category has an 'opposite'. Now we're trying to understand \(\mathcal{V}\)-enriched profunctors \(\Phi : \mathcal{X} \nrightarrow \mathcal{Y}\), which are really just \(\mathcal{V}\)-enriched functors

$$ \Phi : \mathcal{X}^{\text{op}} \times \mathcal{Y} \to \mathcal{V} .$$ To make sense of this we need the same two constructions: the product and the opposite!

(This is no coincidence: soon we'll see that every \(\mathcal{V}\)-enriched category \(\mathcal{X}\) has a hom-functor \( \mathrm{hom} : \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V}\), which we can think of as a profunctor.)

So, first let's look at the product of enriched categories:

**Theorem.** Suppose \(\mathcal{V}\) is a commutative monoidal poset. Then for any \(\mathcal{V}\)-enriched categories \(\mathcal{X}\) and \(\mathcal{Y}\), there is a \(\mathcal{V}\)-enriched category \(\mathcal{X} \times \mathcal{Y}\) for which:

An object is a pair \( (x,y) \in \mathrm{Ob}(\mathcal{X}) \times \mathrm{Ob}(\mathcal{Y}) \).

We define

$$ (\mathcal{X} \times \mathcal{Y})((x,y), \, (x',y')) = \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') .$$
**Proof.** We just need to check axioms a) and b) of an enriched category (see Lecture 29):

a) We need to check that for every object \( (x,y) \) of \(\mathcal{X} \times \mathcal{Y}\) we have

$$ I \le (\mathcal{X} \times \mathcal{Y})((x,y), \, (x,y)) .$$ By item 2 this means we need to show

$$ I \le \mathcal{X}(x,x) \otimes \mathcal{Y}(y,y) .$$ But since \(\mathcal{X}\) and \(\mathcal{Y}\) are enriched categories we know

$$ I \le \mathcal{X}(x,x) \text{ and } I \le \mathcal{Y}(y,y) $$ and tensoring these two inequalities gives us what we need.

b) We need to check that for all objects \( (x,y), (x',y'), (x'',y'') \) of \(\mathcal{X} \times \mathcal{Y}\) we have

$$ (\mathcal{X} \times \mathcal{Y})((x,y), \, (x',y')) \otimes (\mathcal{X} \times \mathcal{Y})((x',y'), \, (x'',y'')) \le (\mathcal{X} \times \mathcal{Y})((x,y), \, (x'',y'')) .$$ This looks scary, but long division did too at first! Just relax and follow the rules. To get anywhere we need to rewrite this using item 2:

$$ \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') . \qquad (\star) $$ But since \(\mathcal{X}\) and \(\mathcal{Y}\) are enriched categories we know

$$ \mathcal{X}(x,x') \otimes \mathcal{X}(x',x'') \le \mathcal{X}(x,x'') $$ and

$$ \mathcal{Y}(y,y') \otimes \mathcal{Y}(y',y'') \le \mathcal{Y}(y,y'') . $$ Let's tensor these two inequalities and see if we get \( (\star) \). Here's what we get:

$$ \mathcal{X}(x,x') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y,y') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') .$$
This is *almost* \( (\star) \), but not quite. To get \( (\star) \) we need to switch two things in the middle of the left-hand side! But we can do that because \(\mathcal{V}\) is a *commutative* monoidal poset. \( \qquad \blacksquare \)

Next let's look at the opposite of an enriched category:

**Theorem.** Suppose \(\mathcal{V}\) is a monoidal poset. Then for any \(\mathcal{V}\)-enriched category \(\mathcal{X}\) there is a \(\mathcal{V}\)-enriched category \(\mathcal{X}^{\text{op}}\), called the **opposite** of \(\mathcal{X}\), for which:

The objects of \(\mathcal{X}^{\text{op}}\) are the objects of \(\mathcal{X}\).

We define

$$ \mathcal{X}^{\text{op}}(x,x') = \mathcal{X}(x',x) .$$
**Proof.** Again we need to check axioms a) and b) of an enriched category.

a) We need to check that for every object \( x \) of \(\mathcal{X}^{\text{op}}\) we have

$$ I \le \mathcal{X}^{\text{op}}(x,x) . $$ Using the definitions, this just says that for every object \( x \) of \(\mathcal{X}\) we have

$$ I \le \mathcal{X}(x,x) . $$ This is true because \(\mathcal{X}\) is an enriched category.

b) We also need to check that for all objects \(x,x',x'' \) of \(\mathcal{X}^{\text{op}} \) we have

$$ \mathcal{X}^{\text{op}} (x,x') \otimes \mathcal{X}^{\text{op}}(x',x'') \le \mathcal{X}^{\text{op}}(x,x'') . $$ Using the definitions, this just says that for all objects \(x,x',x'' \) of \(\mathcal{X}\) we have

$$ \mathcal{X}(x',x) \otimes \mathcal{X}(x'',x') \le \mathcal{X}(x'',x) . $$ We can prove this as follows:

$$ \mathcal{X}(x',x) \otimes \mathcal{X}(x'',x') = \mathcal{X}(x'',x') \otimes \mathcal{X}(x',x) \le \mathcal{X}(x'',x) .$$ since \(\mathcal{V}\) is commutative and \(\mathcal{X}\) is an enriched category. \( \qquad \blacksquare \)

Now we are ready to state the definition of an enriched profunctor! I gave a tentative definition back in Lecture 60, but we didn't really know what it meant, nor under which conditions it made sense. Now we do!

**Definition.** Suppose \(\mathcal{V}\) is a closed commutative monoidal poset and \(\mathcal{X},\mathcal{Y}\) are \(\mathcal{V}\)-enriched categories. Then a \(\mathcal{V}\)-enriched profunctor

$$ \Phi : \mathcal{X} \nrightarrow \mathcal{Y} $$ is a \(\mathcal{V}\)-enriched functor

$$ \Phi: \mathcal{X}^{\text{op}} \times \mathcal{Y} \to \mathcal{V} .$$ There are lot of adjectives here: "closed commutative monoidal poset". They're all there for a reason. Luckily we've seen our friends \(\mathbf{Bool}\) and \(\mathbf{Cost}\) have all these nice properties - and so do many other examples, like the power set \(P(X)\) of any set \(X\).

Alas, if we want to *compose* \(\mathcal{V}\)-enriched profunctors we need \(\mathcal{V}\) to be even *nicer!* From our work with feasibility relations we saw that composing profunctors is done using a kind of 'matrix multiplication'. For this to work, \(\mathcal{V}\) needs to be a 'quantale'. So, next time I'll talk about quantales. Luckily all the examples I just listed are quantales!

Here's a puzzle to keep you happy until next time. It's important:

**Puzzle 197.** Suppose \(\mathcal{V}\) is a closed commutative monoidal poset and \(\mathcal{X}\) is any \(\mathcal{V}\)-enriched category. Show that there is a \(\mathcal{V}\)-enriched functor, the **hom functor**

$$ \mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V} $$ defined on any object \( (x,x') \) of \(\mathcal{X}^{\text{op}} \times \mathcal{X} \) by

$$ \mathrm{hom}(x,x') = \mathcal{X}(x,x') .$$ If you forget the definition of enriched functor, you can find it in Lecture 32.

## Comments

Use the definition of a \(\mathcal{V}\)-enriched profunctor,

we show \(\mathrm{hom}\) is a \(\mathcal{V}\)-enriched profunctor by setting,

\[ \Phi \mapsto \mathrm{hom},\\ \mathcal{X}^{\text{op}}\mapsto\mathcal{X}^{\text{op}}, \\ \mathcal{Y} \mapsto \mathcal{X}, \]

then since \(\mathrm{hom} \colon \mathcal{X}^{\text{op}} \nrightarrow \mathcal{X} \) is a\(\mathcal{V}\)-enriched profunctor, then by definition of a \(\mathcal{V}\)-enriched profunctor \(\mathrm{hom}\) is also a \(\mathcal{V}\)-enriched functor,

\[ \mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V}. \]

\(\blacksquare\)

`>**Puzzle 197.** Suppose \\(\mathcal{V}\\) is a closed commutative monoidal poset and \\(\mathcal{X}\\) is any \\(\mathcal{V}\\)-enriched category. Show that there is a \\(\mathcal{V}\\)-enriched functor, the **hom functor** >\[ \mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V} \] >defined on any object \\( (x,x') \\) of \\(\mathcal{X}^{\text{op}} \times \mathcal{X} \\) by >\[ \mathrm{hom}(x,x') = \mathcal{X}(x,x') .\] Use the definition of a \\(\mathcal{V}\\)-enriched profunctor, >**Definition.** Suppose \\(\mathcal{V}\\) is a closed commutative monoidal poset and \\(\mathcal{X},\mathcal{Y}\\) are \\(\mathcal{V}\\)-enriched categories. Then a \\(\mathcal{V}\\)-enriched profunctor >\[ \Phi : \mathcal{X} \nrightarrow \mathcal{Y} \] >is a \\(\mathcal{V}\\)-enriched functor >\[ \Phi: \mathcal{X}^{\text{op}} \times \mathcal{Y} \to \mathcal{V} .\] we show \\(\mathrm{hom}\\) is a \\(\mathcal{V}\\)-enriched profunctor by setting, \\[ \Phi \mapsto \mathrm{hom},\\\\ \mathcal{X}^{\text{op}}\mapsto\mathcal{X}^{\text{op}}, \\\\ \mathcal{Y} \mapsto \mathcal{X}, \\] then since \\(\mathrm{hom} \colon \mathcal{X}^{\text{op}} \nrightarrow \mathcal{X} \\) is a\\(\mathcal{V}\\)-enriched profunctor, then by definition of a \\(\mathcal{V}\\)-enriched profunctor \\(\mathrm{hom}\\) is also a \\(\mathcal{V}\\)-enriched functor, \\[ \mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V}. \\] \\(\blacksquare\\)`

Keith - you're

usingthe fact that \(\text{hom} : \mathcal{X} \nrightarrow \mathcal{X} \) is a \(\mathcal{V}\)-enriched profunctor, but this is not a fact we've proved yet: at least, not in the lectures or the puzzles. The point of Puzzle 197 is toprovethis fact, from scratch, by showing that \(\text{hom} : \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V} \) is a \(\mathcal{V}\)-enriched functor. One has to actually prove this at some point, just as I proved in the lectures that the hom-functor of a category is really a functor.`Keith - you're _using_ the fact that \\(\text{hom} : \mathcal{X} \nrightarrow \mathcal{X} \\) is a \\(\mathcal{V}\\)-enriched profunctor, but this is not a fact we've proved yet: at least, not in the lectures or the puzzles. The point of Puzzle 197 is to _prove_ this fact, from scratch, by showing that \\(\text{hom} : \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V} \\) is a \\(\mathcal{V}\\)-enriched functor. One has to actually prove this at some point, just as I proved in the lectures that the hom-functor of a category is really a functor.`

Answer to

Puzzle 197:From Lecture 32:

Letting \(\mathcal{X}=\mathcal{X}\) and \(\mathcal{Y}=\mathcal{X}\), one has

A

\(\mathcal{V}\)-functor from \(\mathcal{X}\) to \(\mathcal{X}\), denoted \(F\colon\mathcal{X}\to\mathcal{X}\), is a function$$ F\colon\mathrm{Ob}(\mathcal{X})\to \mathrm{Ob}(\mathcal{X}) $$ such that

$$ \mathcal{X}(x,x') \leq \mathcal{X}(F(x),F(x'))$$ for all \(x,x' \in\mathrm{Ob}(\mathcal{X})\).

Using the last definition in the Lecture above, one has

A

\(\mathcal{V}\)-functor from \(\mathcal{X}^\mathrm{op}\times\mathcal{X}\) to \(\mathcal{V}\), denoted \(F\colon\mathcal{X}^\mathrm{op}\times\mathcal{X}\to\mathcal{V}\), is a function$$ F\colon\mathrm{Ob}(\mathcal{X})\times\mathrm{Ob}(\mathcal{X})\to\mathrm{Ob}(\mathcal{V}) $$ such that

$$ \mathcal{X}(x,x') \leq F(x,x')$$ for all \(x,x' \in\mathrm{Ob}(\mathcal{X})\).

Now letting \(F\) be \(\mathrm{hom}\), $$\mathrm{hom}(x,x')=\mathcal{X}(x,x')$$ Satisfies the first requirement to be a \(\mathcal{V}\)-functor, and reduces the second requirement to: $$\mathcal{X}(x,x')\leq\mathcal{X}(x,x')$$ which holds (as an equality).

`Answer to **Puzzle 197**: From [Lecture 32](https://forum.azimuthproject.org/discussion/2169/lecture-32-chapter-2-enriched-functors/p1): >**Definition.** Let \\(\mathcal{X}\\) and \\(\mathcal{Y}\\) be \\(\mathcal{V}\\)-categories. A **\\(\mathcal{V}\\)-functor from \\(\mathcal{X}\\) to \\(\mathcal{Y}\\)**, denoted \\(F\colon\mathcal{X}\to\mathcal{Y}\\), is a function >\[ F\colon\mathrm{Ob}(\mathcal{X})\to \mathrm{Ob}(\mathcal{Y}) \] >such that >\[ \mathcal{X}(x,x') \leq \mathcal{Y}(F(x),F(x')) \] >for all \\(x,x' \in\mathrm{Ob}(\mathcal{X})\\). Letting \\(\mathcal{X}=\mathcal{X}\\) and \\(\mathcal{Y}=\mathcal{X}\\), one has A **\\(\mathcal{V}\\)-functor from \\(\mathcal{X}\\) to \\(\mathcal{X}\\)**, denoted \\(F\colon\mathcal{X}\to\mathcal{X}\\), is a function \[ F\colon\mathrm{Ob}(\mathcal{X})\to \mathrm{Ob}(\mathcal{X}) \] such that \[ \mathcal{X}(x,x') \leq \mathcal{X}(F(x),F(x'))\] for all \\(x,x' \in\mathrm{Ob}(\mathcal{X})\\). Using the last definition in the Lecture above, one has A **\\(\mathcal{V}\\)-functor from \\(\mathcal{X}^\mathrm{op}\times\mathcal{X}\\) to \\(\mathcal{V}\\)**, denoted \\(F\colon\mathcal{X}^\mathrm{op}\times\mathcal{X}\to\mathcal{V}\\), is a function \[ F\colon\mathrm{Ob}(\mathcal{X})\times\mathrm{Ob}(\mathcal{X})\to\mathrm{Ob}(\mathcal{V}) \] such that \[ \mathcal{X}(x,x') \leq F(x,x')\] for all \\(x,x' \in\mathrm{Ob}(\mathcal{X})\\). Now letting \\(F\\) be \\(\mathrm{hom}\\), \[\mathrm{hom}(x,x')=\mathcal{X}(x,x')\] Satisfies the first requirement to be a \\(\mathcal{V}\\)-functor, and reduces the second requirement to: \[\mathcal{X}(x,x')\leq\mathcal{X}(x,x')\] which holds (as an equality).`

David, you've mucked up your substitution into the definition. What you've written is not right. Let me change the names of the things in the definition. That might make things less confusing.

You need to check that this holds when \(\mathcal{A}\) is \(\mathcal{X}^\mathrm{op}\times\mathcal{X}\), when \(\mathcal{B}\) is \(\mathcal{V}\) and when \(F\) is \(\text{hom}\). You'll find you need to use the structures of \(\mathcal{X}\times \mathcal{Y}\) and \(\mathcal{X}^{\mathrm{op}}\) given by John in the lecture.

`David, you've mucked up your substitution into the definition. What you've written is not right. Let me change the names of the things in the definition. That might make things less confusing. >**Definition.** Let \\(\mathcal{A}\\) and \\(\mathcal{B}\\) be \\(\mathcal{V}\\)-categories. A **\\(\mathcal{V}\\)-functor from \\(\mathcal{A}\\) to \\(\mathcal{B}\\)**, denoted \\(F\colon\mathcal{A}\to\mathcal{B}\\), is a function > >\[ F\colon\mathrm{Ob}(\mathcal{A})\to \mathrm{Ob}(\mathcal{B}) \] > >such that > >\[ \mathcal{A}(a, a') \leq \mathcal{B}(F(a),F(a')) \] > >for all \\(a,a' \in\mathrm{Ob}(\mathcal{A})\\). You need to check that this holds when \\(\mathcal{A}\\) is \\(\mathcal{X}^\mathrm{op}\times\mathcal{X}\\), when \\(\mathcal{B}\\) is \\(\mathcal{V}\\) and when \\(F\\) is \\(\text{hom}\\). You'll find you need to use the structures of \\(\mathcal{X}\times \mathcal{Y}\\) and \\(\mathcal{X}^{\mathrm{op}}\\) given by John in the lecture.`

I think there's a mistake in the proof that \(\mathcal{X}^\text{op}\) is a \(\mathcal{V}\)-enriched category:

Surely the definitions tell us that

$$ \mathcal{X}^{\text{op}} (x,x') \otimes \mathcal{X}^{\text{op}}(x',x'') = \mathcal{X}(x',x) \otimes \mathcal{X}(x'',x') $$ So we

doneed \(\mathcal{V}\) to be commutative to switch this to \(\mathcal{X}(x'',x') \otimes \mathcal{X}(x',x)\).In the absence of commutativity/symmetry, all we can prove is that \(\mathcal{X}^\text{op}\) is a \(\mathcal{V}^\text{op}\)-enriched category, where \(\mathcal{V}^\text{op}\) is \(\mathcal{V}\) with the same partial order but the opposite monoidal multiplication, ie \(u \otimes_{\mathcal{V}^\text{op}} v = v \otimes_\mathcal{V} u\).

`I think there's a mistake in the proof that \\(\mathcal{X}^\text{op}\\) is a \\(\mathcal{V}\\)-enriched category: > b) We also need to check that for all objects \\(x,x',x'' \\) of \\(\mathcal{X}^{\text{op}} \\) we have > > \[ \mathcal{X}^{\text{op}} (x,x') \otimes \mathcal{X}^{\text{op}}(x',x'') \le \mathcal{X}^{\text{op}}(x,x'') . \] > > Using the definitions, this just says that for all objects \\(x,x',x'' \\) of \\(\mathcal{X}\\) we have > > \[ \mathcal{X}(x'',x') \otimes \mathcal{X}(x',x) \le \mathcal{X}(x'',x) . \] > > This is true because \\(\mathcal{X}\\) is an enriched category. \\( \qquad \blacksquare \\). > > I just learned something: I thought we needed \\(\mathcal{V}\\) to be commutative here, but apparently we don't. Surely the definitions tell us that \[ \mathcal{X}^{\text{op}} (x,x') \otimes \mathcal{X}^{\text{op}}(x',x'') = \mathcal{X}(x',x) \otimes \mathcal{X}(x'',x') \] So we _do_ need \\(\mathcal{V}\\) to be commutative to switch this to \\(\mathcal{X}(x'',x') \otimes \mathcal{X}(x',x)\\). In the absence of commutativity/symmetry, all we can prove is that \\(\mathcal{X}^\text{op}\\) is a \\(\mathcal{V}^\text{op}\\)-enriched category, where \\(\mathcal{V}^\text{op}\\) is \\(\mathcal{V}\\) with the same partial order but the opposite monoidal multiplication, ie \\(u \otimes_{\mathcal{V}^\text{op}} v = v \otimes_\mathcal{V} u\\).`

(

Edit: I had originally tried to prove this by assuming \(x \leq y \iff x = y\). I have updated this proof to fully answer the puzzle based on Anindya's comments below.)Proof.Going back to Lecture 32, we have the following definition of a \(\mathcal{V}\)-functor.

We want \(F = \mathrm{hom}\) and \(\mathcal{Y} = \mathcal{V}\).

Based on Lecture 60, to make \(\mathrm{hom}\) a \(\mathcal{V}\)-enriched functor we want to make the action of \(\mathcal{Y}\) on objects be \((a,b) \mapsto a \multimap b \).

All that is left is to prove \(\mathrm{hom}\) satisfies the rules of a \(\mathcal{V}\)-enriched functor.

To see \(\mathrm{hom} = \mathcal{X}\) works, we know:

$$ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) $$ Hence, using commutativity and the fact that \(A \otimes - \dashv A \multimap - \), then \(\text{(X)}\) says that \(\mathrm{hom}\) is a \(\mathcal{V}\)-Functor if and only if:

$$ \begin{eqnarray} & (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) \leq \mathrm{hom}(a,b) \multimap \mathrm{hom}(c,d) \\ & \iff \\ & \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathrm{hom}(a,b) \multimap \mathrm{hom}(c,d) \\ & \iff \\ & \mathrm{hom}(a,b) \otimes \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathrm{hom}(c,d) \\ & \iff \\ & \mathcal{X}(a,b) \otimes \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d) \\ & \iff \\ & \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d) \tag{Y} \end{eqnarray} $$ So it suffices to show \(\text{(Y)}\). To do this, observe:

From (2) we have

$$ \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \leq \mathcal{X}(c,b)$$ This with (1) means

$$ \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,b) \otimes \mathcal{X}(b,d) \tag{★} $$ But we also know from (2) that

$$ \mathcal{X}(c,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,b)$$ This along with (★) and transitivity shows \(\mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d)\) as desired. \( \qquad \blacksquare \)

`(**Edit**: I had originally tried to prove this by assuming \\(x \leq y \iff x = y\\). I have updated this proof to fully answer the puzzle based on Anindya's comments below.) > **Puzzle 197.** Suppose \\(\mathcal{V}\\) is a closed commutative monoidal poset and \\(\mathcal{X}\\) is any \\(\mathcal{V}\\)-enriched category. Show that there is a \\(\mathcal{V}\\)-enriched functor, the **hom functor** > > \[ \mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V} \] > > defined on any object \\( (x,x') \\) of \\(\mathcal{X}^{\text{op}} \times \mathcal{X} \\) by > > \[ \mathrm{hom}(x,x') = \mathcal{X}(x,x') .\] **Proof.** Going back to [Lecture 32](https://forum.azimuthproject.org/discussion/2169/lecture-32-chapter-2-enriched-functors), we have the following definition of a \\(\mathcal{V}\\)-functor. > **Definition.** Let \\(\mathcal{X}\\) and \\(\mathcal{Y}\\) be \\(\mathcal{V}\\)-categories. A **\\(\mathcal{V}\\)-functor from \\(\mathcal{X}\\) to \\(\mathcal{Y}\\)**, denoted \\(F\colon\mathcal{X}\to\mathcal{Y}\\), is a function > > \[ F\colon\mathrm{Ob}(\mathcal{X})\to \mathrm{Ob}(\mathcal{Y})\] > > such that > > \[ \mathcal{X}(x,x') \leq \mathcal{Y}(F(x),F(x')) \tag{X} \] > > for all \\(x,x' \in\mathrm{Ob}(\mathcal{X})\\). We want \\(F = \mathrm{hom}\\) and \\(\mathcal{Y} = \mathcal{V}\\). Based on [Lecture 60](https://forum.azimuthproject.org/discussion/2287/lecture-60-chapter-4-closed-monoidal-posets), to make \\(\mathrm{hom}\\) a \\(\mathcal{V}\\)-enriched functor we want to make the action of \\(\mathcal{Y}\\) on objects be \\((a,b) \mapsto a \multimap b \\). All that is left is to prove \\(\mathrm{hom}\\) satisfies the rules of a \\(\mathcal{V}\\)-enriched functor. To see \\(\mathrm{hom} = \mathcal{X}\\) works, we know: \[ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \] Hence, using commutativity and the fact that \\(A \otimes - \dashv A \multimap - \\), then \\(\text{(X)}\\) says that \\(\mathrm{hom}\\) is a \\(\mathcal{V}\\)-Functor if and only if: \[ \begin{eqnarray} & (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) \leq \mathrm{hom}(a,b) \multimap \mathrm{hom}(c,d) \\\\ & \iff \\\\ & \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathrm{hom}(a,b) \multimap \mathrm{hom}(c,d) \\\\ & \iff \\\\ & \mathrm{hom}(a,b) \otimes \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathrm{hom}(c,d) \\\\ & \iff \\\\ & \mathcal{X}(a,b) \otimes \mathcal{X}(c,a) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d) \\\\ & \iff \\\\ & \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d) \tag{Y} \end{eqnarray} \] So it suffices to show \\(\text{(Y)}\\). To do this, observe: 1. \\(- \otimes \mathcal{X}(x,y)\\) is monotone for all \\(x\\) and \\(y\\), since \\(\mathcal{V}\\) is a monoidal pre-order as defined in [Lecture 21](https://forum.azimuthproject.org/discussion/2082/lecture-21-chapter-2-monoidal-preorders) 2. \\(\mathcal{X}(x,y)\otimes\mathcal{X}(y,z)\leq\mathcal{X}(x,z)\\); this is from condition (b) of the definition of a \\(\mathcal{V}\\)-enriched category in [Lecture 29](https://forum.azimuthproject.org/discussion/2121/lecture-29-chapter-2-enriched-categories) From (2) we have \[ \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \leq \mathcal{X}(c,b)\] This with (1) means \[ \mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,b) \otimes \mathcal{X}(b,d) \tag{★} \] But we also know from (2) that \[ \mathcal{X}(c,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,b)\] This along with (★) and transitivity shows \\(\mathcal{X}(c,a) \otimes \mathcal{X}(a,b) \otimes \mathcal{X}(b,d) \leq \mathcal{X}(c,d)\\) as desired. \\( \qquad \blacksquare \\)`

@Matthew – I don't understand this line:

Surely we just set \(\mathcal{Y}\) to be \(\mathcal{V}\) (considered as a \(\mathcal{V}\)-enriched category)?

EDIT to add: oh wait, I see, you mean the function \((y, y') \mapsto \mathcal{Y}(y, y')\) should be \((- \multimap -)\)

EDIT to add: in which case I think this line is wrong:

It should read

$$ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}^\text{op}(a, c) \otimes \mathcal{X}(b, d) = \mathcal{X}(c, a) \otimes \mathcal{X}(b, d) $$ ... and then the proof drops out.

`@Matthew – I don't understand this line: > Based on [Lecture 60](https://forum.azimuthproject.org/discussion/2287/lecture-60-chapter-4-closed-monoidal-posets), to make \\(\mathrm{hom}\\) a \\(\mathcal{V}\\)-enriched functor we want \\(\mathcal{Y} = - \multimap - \\). Surely we just set \\(\mathcal{Y}\\) to be \\(\mathcal{V}\\) (considered as a \\(\mathcal{V}\\)-enriched category)? EDIT to add: oh wait, I see, you mean the function \\((y, y') \mapsto \mathcal{Y}(y, y')\\) should be \\((- \multimap -)\\) EDIT to add: in which case I think this line is wrong: > \[ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}(b,a) \otimes \mathcal{X}(c,d) \] It should read \[ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}^\text{op}(a, c) \otimes \mathcal{X}(b, d) = \mathcal{X}(c, a) \otimes \mathcal{X}(b, d) \] ... and then the proof drops out.`

Thank you so much for taking the time to review my attempted proof!

I hope it's okay, I've gone back and corrected my proof based on your comments.

`>EDIT to add: in which case I think this line is wrong: >> \[ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}(b,a) \otimes \mathcal{X}(c,d) \] > It should read > >\[ (\mathcal{X}^{\text{op}} \times \mathcal{X})((a,b),(c,d)) = \mathcal{X}^\text{op}(a, c) \otimes \mathcal{X}(b, d) = \mathcal{X}(c, a) \otimes \mathcal{X}(b, d) \] > >... and then the proof drops out. Thank you so much for taking the time to review my attempted proof! I hope it's okay, I've gone back and corrected my proof based on your comments.`

yup looks good to me now

`yup looks good to me now`

Hmm. I am curious: (this gets a bit stream of consciousness at points.) Conjecture: Given \(\mathcal{V}\) a monoidal poset, the following are equivalent: \[i) \forall X\, Y\, \mathcal{V}-functors, \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') . \qquad (\star)\] \[ii) \mathcal{V} \, \text{is commutative}\]

Proof attempt:

The proof for \(ii \to i\) is in the OP.

For \(i \to ii \), let's try the contrapositive. If \(\mathcal{V}\) is non-commutative then: \[\exists v_x v_y, v_x \otimes v_y \neq v_x \otimes v_y \]

So can we use that to construct a pair of \( \mathcal{V} \)-categories X and Y such that star is false? \[\mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') . \qquad (\star)\] We can't use single object \( \mathcal{V} \)-categories, because \(v_0\), \(v_1\) might be less then \(I\), but if we have exactly two objects, then Hom(0,1) can be whatever we want, with the other hom-objects being \( I \). Let \(\mathcal{X} \) be such with \(Hom(0,1) = v_x\) and Y the same with \(v_y\).

Ohh, interesting, if \( v_x \otimes v_y \equiv v_y \otimes v_x\) then star is is still always true. So we need to change \[ii) \mathcal{V} \, \text{is commutative}\] to \[ii) \mathcal{V} \, \text{is symmetric (or braided? Not sure what those terms mean exactly)}\]. (

and change \[\exists v_x v_y, v_x \otimes v_y \neq v_y \otimes v_x \] to \[\exists v_x v_y, v_x \otimes v_y \nleq v_y \otimes v_x \]

and now [\mathcal{X}(0,1) \otimes \mathcal{Y}(0,0) \otimes \mathcal{X}(1,1) \otimes \mathcal{Y}(0,1) = v_x \otimes I \otimes I \otimes vy = v_x \otimes v_y

Wait the identities means that that does equal what its supposed to..uh..I think I am lost.

`Hmm. I am curious: (this gets a bit stream of consciousness at points.) Conjecture: Given \\(\mathcal{V}\\) a monoidal poset, the following are equivalent: \\[i) \forall X\, Y\, \mathcal{V}-functors, \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') . \qquad (\star)\\] \\[ii) \mathcal{V} \, \text{is commutative}\\] Proof attempt: The proof for \\(ii \to i\\) is in the OP. For \\(i \to ii \\\), let's try the contrapositive. If \\(\mathcal{V}\\) is non-commutative then: \\[\exists v_x v_y, v_x \otimes v_y \neq v_x \otimes v_y \\] So can we use that to construct a pair of \\( \mathcal{V} \\)-categories X and Y such that star is false? \\[\mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') . \qquad (\star)\\] We can't use single object \\( \mathcal{V} \\)-categories, because \\(v_0\\), \\(v_1\\) might be less then \\(I\\), but if we have exactly two objects, then Hom(0,1) can be whatever we want, with the other hom-objects being \\( I \\). Let \\(\mathcal{X} \\) be such with \\(Hom(0,1) = v_x\\) and Y the same with \\(v_y\\). Ohh, interesting, if \\( v_x \otimes v_y \equiv v_y \otimes v_x\\) then star is is still always true. So we need to change \\[ii) \mathcal{V} \, \text{is commutative}\\] to \\[ii) \mathcal{V} \, \text{is symmetric (or braided? Not sure what those terms mean exactly)}\\]. ( and change \\[\exists v_x v_y, v_x \otimes v_y \neq v_y \otimes v_x \\] to \\[\exists v_x v_y, v_x \otimes v_y \nleq v_y \otimes v_x \\] and now [\mathcal{X}(0,1) \otimes \mathcal{Y}(0,0) \otimes \mathcal{X}(1,1) \otimes \mathcal{Y}(0,1) = v_x \otimes I \otimes I \otimes vy = v_x \otimes v_y Wait the identities means that that does equal what its supposed to..uh..I think I am lost.`

Hey Chris,

Looks like you've got some formatting problems.

I think I can show your conjecture in certain cases.

For a

closedmonoidal preorder \(\mathcal{V}\) as defined in Lecture 60 we can turn \(\mathcal{V}\) into a \(\mathcal{V}\)-enriched category by defining \(\mathcal{V}(x,y) = x \multimap y \). This does the trick...Lemma. Let \(\mathcal{V}\) be a closed monoidal preorder. Then$$ \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') \tag{★} $$ for all \(\mathcal{V}\)-categories \(\mathcal{X}\) \(\mathcal{Y}\) and objects \(x,x',x'',y,y'\) and \(y''\) if and only if \(\mathcal{V}\) is commutative.

Proof.\((\Longleftarrow)\) This direction follows from applying condition (b) of the definition of \(\mathcal{V}\)-category in Lecture 29, and the fact that \(- \otimes X\) is a monotone function for all \(X\).

\((\Longrightarrow)\) Given (★) and \(\mathcal{V}\) is closed, we need to show \(\mathcal{V}\) is commutative.

To this end, let \(\mathcal{X}(a,b) = \mathcal{Y}(a,b) = a \multimap b \). Furthermore let \(x = x' = y = I\) and \(y' = y''\). Plugging all of this into (★) gives:

$$ (I \multimap I) \otimes (I \multimap y'') \otimes (I \multimap x'') \otimes (y'' \multimap y'') \le (I \multimap x'') \otimes \mathcal{Y}(1,y'') \tag{★★} $$ Since \(\mathcal{V}\) is closed, we know \((z \otimes -) \dashv (z \multimap -) \). We can use this adjunction to prove a couple of identities:

$$ \begin{eqnarray} & z \multimap z = I \\ & I \multimap z = z

\end{eqnarray} $$ (I won't prove these here, but I'll show them if anyone is curious.)

Using these two rules and \(I \otimes z = z \otimes I = z\), then (★★) simplifies to:

$$ y'' \otimes x'' \le x'' \otimes y'' $$ It follows immediately that \(y'' \otimes x'' = x'' \otimes y''\), so we know that \(\mathcal{V}\) is commutative.\( \qquad \blacksquare \)

`Hey Chris, Looks like you've got some formatting problems. I think I can show your conjecture in certain cases. For a *closed* monoidal preorder \\(\mathcal{V}\\) as defined in [Lecture 60](https://forum.azimuthproject.org/discussion/2287/lecture-60-chapter-4-closed-monoidal-posets) we can turn \\(\mathcal{V}\\) into a \\(\mathcal{V}\\)-enriched category by defining \\(\mathcal{V}(x,y) = x \multimap y \\). This does the trick... **Lemma**. Let \\(\mathcal{V}\\) be a closed monoidal preorder. Then \[ \mathcal{X}(x,x') \otimes \mathcal{Y}(y,y') \otimes \mathcal{X}(x',x'') \otimes \mathcal{Y}(y',y'') \le \mathcal{X}(x,x'') \otimes \mathcal{Y}(y,y'') \tag{★} \] for all \\(\mathcal{V}\\)-categories \\(\mathcal{X}\\) \\(\mathcal{Y}\\) and objects \\(x,x',x'',y,y'\\) and \\(y''\\) if and only if \\(\mathcal{V}\\) is commutative. **Proof.** \\((\Longleftarrow)\\) This direction follows from applying condition (b) of the definition of \\(\mathcal{V}\\)-category in [Lecture 29](https://forum.azimuthproject.org/discussion/2121/lecture-29-chapter-2-enriched-categories), and the fact that \\(- \otimes X\\) is a monotone function for all \\(X\\). \\((\Longrightarrow)\\) Given (★) and \\(\mathcal{V}\\) is closed, we need to show \\(\mathcal{V}\\) is commutative. To this end, let \\(\mathcal{X}(a,b) = \mathcal{Y}(a,b) = a \multimap b \\). Furthermore let \\(x = x' = y = I\\) and \\(y' = y''\\). Plugging all of this into (★) gives: \[ (I \multimap I) \otimes (I \multimap y'') \otimes (I \multimap x'') \otimes (y'' \multimap y'') \le (I \multimap x'') \otimes \mathcal{Y}(1,y'') \tag{★★} \] Since \\(\mathcal{V}\\) is closed, we know \\((z \otimes -) \dashv (z \multimap -) \\). We can use this adjunction to prove a couple of identities: \[ \begin{eqnarray} & z \multimap z = I \\\\ & I \multimap z = z \end{eqnarray} \] (I won't prove these here, but I'll show them if anyone is curious.) Using these two rules and \\(I \otimes z = z \otimes I = z\\), then (★★) simplifies to: \[ y'' \otimes x'' \le x'' \otimes y'' \] It follows immediately that \\(y'' \otimes x'' = x'' \otimes y''\\), so we know that \\(\mathcal{V}\\) is commutative.\\( \qquad \blacksquare \\)`

I have a puzzle that I'm not sure how to answer.

Back in Lecture 57 we saw how there's connection between monotone functions and feasibility relations:

How do we generalise this to get a connection between \(\mathcal{V}\)-functors and \(\mathcal{V}\)-profunctors?

`I have a puzzle that I'm not sure how to answer. Back in [Lecture 57](https://forum.azimuthproject.org/discussion/2281/lecture-57-chapter-4-feasibility-relations) we saw how there's connection between monotone functions and feasibility relations: > Suppose \\(X\\) and \\(Y\\) are preorders. > > **Puzzle 173.** Suppose \\(f : X \to Y \\) is a monotone function from \\(X\\) to \\(Y\\). Prove that there is a feasibility relation \\(\Phi : X \nrightarrow Y\\) given by \\(\Phi(x,y) \iff f(x) \le y\\). > > **Puzzle 174.** Suppose \\(g: Y \to X \\) is a monotone function from \\(Y\\) to \\(X\\). Prove that there is a feasibility relation \\(\Psi : X \nrightarrow Y\\) given by \\(\Psi(x,y) \iff x \le g(y)\\). > > **Puzzle 175.** Suppose \\(f : X \to Y\\) and \\(g : Y \to X\\) are monotone functions, and use them to build feasibility relations \\(\Phi\\) and \\(\Psi\\). When is \\(\Phi = \Psi\\)? How do we generalise this to get a connection between \\(\mathcal{V}\\)-functors and \\(\mathcal{V}\\)-profunctors?`

@MatthewDoty

I think you just systematically replace Bool with V (, and replace an equality with an equivalence, I think).

And then the proofs transform too IIRC.

`@MatthewDoty I think you just systematically replace Bool with V (, and replace an equality with an equivalence, I think). > Suppose \\(X\\) and \\(Y\\) are \\(\mathcal{V}\\)-categories. > > **Puzzle 173V.** Suppose \\(f : X \to Y \\) is an \\(\mathcal{V}\\)-functor from \\(X\\) to \\(Y\\). Prove that there is a \\(\mathcal{V}\\)-profunctor \\(\Phi : X \nrightarrow Y\\) given by \\(\Phi(x,y) = Hom(f(x),\,y) \\). (i.e. that \\(\Phi\\) is a valid \\(\mathcal{V}\\)-profunctor) > > **Puzzle 174.** Suppose \\(g: Y \to X \\) is a \\(\mathcal{V}\\)-functor from \\(Y\\) to \\(X\\). Prove that there is a \\(\mathcal{V}\\)-profunctor \\(\Psi : X \nrightarrow Y\\) given by \\(\Psi(x,y) = Hom(x,\,g(y))\\). > > **Puzzle 175.** Suppose \\(f : X \to Y\\) and \\(g : Y \to X\\) are \\(\mathcal{V}\\)-functors, and use them to build \\(\mathcal{V}\\)-profunctor \\(\Phi\\) and \\(\Psi\\). When is \\(\Phi \equiv \Psi\\)? And then the proofs transform too IIRC.`

Hey Anindya,

I'll give this a shot. I'll just do the analogue

Puzzle 173for now...To start, to show \(\Phi\) is a \(\mathcal{V}\)-profunctor we need to show it is a \(\mathcal{V}\)-functor \( \Phi : \mathcal{X}^{\text{op}} \times \mathcal{Y} \to \mathcal{V} \)

Following the logic we worked out in #6, we need to show

$$ (\mathcal{X}^{\mathrm{op}} \times \mathcal{Y})((a,b),(c,d)) \leq \Phi(a,b) \multimap \Phi(c,d) $$ Once again, we'll use the identity

$$ (\mathcal{X}^{\text{op}} \times \mathcal{Y})((a,b),(c,d)) = \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) $$ Hence:

$$ \begin{align} (\mathcal{X}^{\mathrm{op}} \times \mathcal{Y})((a,b),(c,d)) \leq \Phi(a,b) \multimap \Phi(c,d) & \iff \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \Phi(a,b) \multimap \Phi(c,d) \\ & \iff \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(a), b) \multimap \mathcal{Y}(F(c), d) \\ & \iff \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d)\ . \end{align} $$ So it suffices to show $$ \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d) $$ Because \(F\) is a \(\mathcal{V}\)-functor we know \(\mathcal{X}(a,b) \leq \mathcal{Y}(F(a),F(b))\). Using this and the fact that \(- \otimes A\) and \(A \otimes -\) are monotone, have:

$$ \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(a), b) \otimes \mathcal{Y}(F(c),F(a)) \otimes \mathcal{Y}(b,d)$$ With this, we can show \(\mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d)\) by applying condition (b) of the definition of a \(\mathcal{V}\)-enriched category from Lecture 29, using commutativity, transitivity and the monotony of \(\otimes\) where necessary.

`Hey Anindya, I'll give this a shot. I'll just do the analogue **Puzzle 173** for now... > Suppose \\(\mathcal{V}\\) is a closed commutative monoidal poset and \\(\mathcal{X}\\) and \\(\mathcal{Y}\\) are \\(\mathcal{V}\\)-categories. > > **Puzzle AB 173.** Assume \\(F : \mathcal{X} \to \mathcal{Y} \\) is a \\(\mathcal{V}\\)-functor from \\(\mathcal{X}\\) to \\(\mathcal{Y}\\). Prove that there is a \\(\mathcal{V}\\)-profunctor \\(\Phi : \mathcal{X} \nrightarrow \mathcal{Y}\\) given by \\(\Phi(x,y) = \mathcal{Y}(F(x), y)\\). To start, to show \\(\Phi\\) is a \\(\mathcal{V}\\)-profunctor we need to show it is a \\(\mathcal{V}\\)-functor \\( \Phi : \mathcal{X}^{\text{op}} \times \mathcal{Y} \to \mathcal{V} \\) Following the logic we worked out in #6, we need to show \[ (\mathcal{X}^{\mathrm{op}} \times \mathcal{Y})((a,b),(c,d)) \leq \Phi(a,b) \multimap \Phi(c,d) \] Once again, we'll use the identity \[ (\mathcal{X}^{\text{op}} \times \mathcal{Y})((a,b),(c,d)) = \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \] Hence: \[ \begin{align} (\mathcal{X}^{\mathrm{op}} \times \mathcal{Y})((a,b),(c,d)) \leq \Phi(a,b) \multimap \Phi(c,d) & \iff \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \Phi(a,b) \multimap \Phi(c,d) \\\\ & \iff \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(a), b) \multimap \mathcal{Y}(F(c), d) \\\\ & \iff \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d)\ . \end{align} \] So it suffices to show \[ \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d) \] Because \\(F\\) is a \\(\mathcal{V}\\)-functor we know \\(\mathcal{X}(a,b) \leq \mathcal{Y}(F(a),F(b))\\). Using this and the fact that \\(- \otimes A\\) and \\(A \otimes -\\) are monotone, have: \[ \mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(a), b) \otimes \mathcal{Y}(F(c),F(a)) \otimes \mathcal{Y}(b,d)\] With this, we can show \\(\mathcal{Y}(F(a), b) \otimes \mathcal{X}(c,a) \otimes \mathcal{Y}(b,d) \leq \mathcal{Y}(F(c), d)\\) by applying condition (b) of the definition of a \\(\mathcal{V}\\)-enriched category from [Lecture 29](https://forum.azimuthproject.org/discussion/2121/lecture-29-chapter-2-enriched-categories), using commutativity, transitivity and the monotony of \\(\otimes\\) where necessary.`

@Christopher – yeah, I was thinking along those lines.

So we have \(\mathcal{X}\) and \(\mathcal{Y}\) as \(\mathcal{V}\)-categories.

And we have \(F: \mathcal{X}\to \mathcal{Y}\) and \(G: \mathcal{Y}\to \mathcal{X}\) as \(\mathcal{V}\)-functors.

Then define \(\Phi, \Psi : \mathcal{X}^\text{op}\times\mathcal{Y}\to\mathcal{V}\) by

$$ \Phi(x, y) = \mathcal{Y}(F(x), y) \qquad \Psi(x, y) = \mathcal{X}(x, G(y)) $$ We need to check these are a legit \(\mathcal{V}\)-functors.

$$ (\mathcal{X}^\text{op}\times\mathcal{Y})((x, y), (x', y')) = \mathcal{X}^\text{op}(x, x')\otimes\mathcal{Y}(y, y') = \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y') $$ $$ \mathcal{V}(\Phi(x, y), \Phi(x', y')) = \mathcal{V}(\mathcal{Y}(F(x), y), \mathcal{Y}(F(x'), y')) = \mathcal{Y}(F(x), y) \multimap \mathcal{Y}(F(x'), y') $$ To show that the top line \(\leq\) the bottom line we need to prove

$$ \mathcal{Y}(F(x), y) \otimes \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y')\leq \mathcal{Y}(F(x'), y') $$ But we know \(\mathcal{X}(x', x)\leq\mathcal{Y}(F(x'), F(x))\) (because \(F\) is a \(\mathcal{V}\)-functor), so

$$ \mathcal{Y}(F(x), y) \otimes \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y')\leq \mathcal{Y}(F(x), y) \otimes \mathcal{Y}(F(x'), F(x))\otimes\mathcal{Y}(y, y') \cong \mathcal{Y}(F(x'), F(x))\otimes\mathcal{Y}(F(x), y) \otimes\mathcal{Y}(y, y') $$ which is \(\leq \mathcal{Y}(F(x'), y')\) by the "composition" rule of \(\mathcal{Y}\) as \(\mathcal{V}\)-category (applied twice).

I'm guessing the \(\Psi\) case works similarly, and then \(\Phi \cong \Psi \iff F \dashv G\) is obvious.

`@Christopher – yeah, I was thinking along those lines. So we have \\(\mathcal{X}\\) and \\(\mathcal{Y}\\) as \\(\mathcal{V}\\)-categories. And we have \\(F: \mathcal{X}\to \mathcal{Y}\\) and \\(G: \mathcal{Y}\to \mathcal{X}\\) as \\(\mathcal{V}\\)-functors. Then define \\(\Phi, \Psi : \mathcal{X}^\text{op}\times\mathcal{Y}\to\mathcal{V}\\) by \[ \Phi(x, y) = \mathcal{Y}(F(x), y) \qquad \Psi(x, y) = \mathcal{X}(x, G(y)) \] We need to check these are a legit \\(\mathcal{V}\\)-functors. \[ (\mathcal{X}^\text{op}\times\mathcal{Y})((x, y), (x', y')) = \mathcal{X}^\text{op}(x, x')\otimes\mathcal{Y}(y, y') = \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y') \] \[ \mathcal{V}(\Phi(x, y), \Phi(x', y')) = \mathcal{V}(\mathcal{Y}(F(x), y), \mathcal{Y}(F(x'), y')) = \mathcal{Y}(F(x), y) \multimap \mathcal{Y}(F(x'), y') \] To show that the top line \\(\leq\\) the bottom line we need to prove \[ \mathcal{Y}(F(x), y) \otimes \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y')\leq \mathcal{Y}(F(x'), y') \] But we know \\(\mathcal{X}(x', x)\leq\\mathcal{Y}(F(x'), F(x))\\) (because \\(F\\) is a \\(\mathcal{V}\\)-functor), so \[ \mathcal{Y}(F(x), y) \otimes \mathcal{X}(x', x)\otimes\mathcal{Y}(y, y')\leq \mathcal{Y}(F(x), y) \otimes \mathcal{Y}(F(x'), F(x))\otimes\mathcal{Y}(y, y') \cong \mathcal{Y}(F(x'), F(x))\otimes\mathcal{Y}(F(x), y) \otimes\mathcal{Y}(y, y') \] which is \\(\leq \mathcal{Y}(F(x'), y')\\) by the "composition" rule of \\(\mathcal{Y}\\) as \\(\mathcal{V}\\)-category (applied twice). I'm guessing the \\(\Psi\\) case works similarly, and then \\(\Phi \cong \Psi \iff F \dashv G\\) is obvious.`

Matthew, that looks about right logically, but to make it read better as a proof, you might want to reverse your argument. (I know you have used if and only if, but the logic of what you are doing is still a little hidden.) Also you write "From (1) we have: <sequence of if and only ifs>." (But you don't have the full-stop at the end!) This is confusing. The sequence of iffs is not a consequence of (1), it is just the first statement which is a consequence/restatement of (1).

As a side question, does the align environment work here? I was having problems with it in a previous post. It's just that it's more standard to align your "\(\iff\)"s.

But maybe you know this and can't get it to work here.

`Matthew, that looks about right logically, but to make it read better as a proof, you might want to reverse your argument. (I know you have used if and only if, but the logic of what you are doing is still a little hidden.) Also you write "From (1) we have: <sequence of if and only ifs>." (But you don't have the full-stop at the end!) This is confusing. The sequence of iffs is not a consequence of (1), it is just the first statement which is a consequence/restatement of (1). As a side question, does the align environment work here? I was having problems with it in a previous post. It's just that it's more standard to align your "\\(\iff\\)"s. <pre> statement1 <=> statement2 <=> statement3 <=> statement4 </pre> But maybe you know this and can't get it to work here.`

@ Christopher

You said

I think you meant to address Anindya, not me.

My answer to this puzzle differs from yours. We aren't in ordinary category theory so we don't have \(\mathrm{Hom}\) at our disposal.

We do have \(\mathcal{X}\) and \(\mathcal{Y}\), which are like \(\mathrm{Hom}\)-sets, so I used those.

Moreover I assumed \(\mathcal{V}\) was closed and commutative so I could work with \(\multimap\), because otherwise I don't know how to make \(\Phi\) into a \(\mathcal{V}\)-profunctor.

But I have been playing around with a puzzle of my own: How do we define \(\mathcal{V}\)-profunctor composition? Can we make \(\multimap\) into a \(\mathcal{V}\)-profunctor? What happens if we compose with \(\multimap\)?

`@ Christopher You said > I think you just systematically replace Bool with V (, and replace an equality with an equivalence, I think). > > > Suppose \\(X\\) and \\(Y\\) are \\(\mathcal{V}\\)-categories. >> >> **Puzzle 173V.** Suppose \\(f : X \to Y \\) is an \\(\mathcal{V}\\)-functor from \\(X\\) to \\(Y\\). Prove that there is a \\(\mathcal{V}\\)-profunctor \\(\Phi : X \nrightarrow Y\\) given by \\(\Phi(x,y) = Hom(f(x),\,y) \\). (i.e. that \\(\Phi\\) is a valid \\(\mathcal{V}\\)-profunctor) >> >> **Puzzle 174.** Suppose \\(g: Y \to X \\) is a \\(\mathcal{V}\\)-functor from \\(Y\\) to \\(X\\). Prove that there is a \\(\mathcal{V}\\)-profunctor \\(\Psi : X \nrightarrow Y\\) given by \\(\Psi(x,y) = Hom(x,\,g(y))\\). >> >> **Puzzle 175.** Suppose \\(f : X \to Y\\) and \\(g : Y \to X\\) are \\(\mathcal{V}\\)-functors, and use them to build \\(\mathcal{V}\\)-profunctor \\(\Phi\\) and \\(\Psi\\). When is \\(\Phi \equiv \Psi\\)? I think you meant to address Anindya, not me. My answer to this puzzle differs from yours. We aren't in ordinary category theory so we don't have \\(\mathrm{Hom}\\) at our disposal. We do have \\(\mathcal{X}\\) and \\(\mathcal{Y}\\), which are like \\(\mathrm{Hom}\\)-sets, so I used those. Moreover I assumed \\(\mathcal{V}\\) was closed and commutative so I could work with \\(\multimap\\), because otherwise I don't know how to make \\(\Phi\\) into a \\(\mathcal{V}\\)-profunctor. But I have been playing around with a puzzle of my own: How do we define \\(\mathcal{V}\\)-profunctor composition? Can we make \\(\multimap\\) into a \\(\mathcal{V}\\)-profunctor? What happens if we compose with \\(\multimap\\)?`

seems to be a useful general rule here:

$$ \Phi \text{ is a profunctor} \iff \mathcal{X}(x', x) \otimes \Phi(x, y) \otimes \mathcal{Y}(y, y') \leq \Phi(x', y') \text{ for all } x, x', y, y' $$

`seems to be a useful general rule here: \[ \Phi \text{ is a profunctor} \iff \mathcal{X}(x', x) \otimes \Phi(x, y) \otimes \mathcal{Y}(y, y') \leq \Phi(x', y') \text{ for all } x, x', y, y' \]`

@Matthew – re the second bit of your puzzle, I think we've already shown that.

Puzzle 197tells us that \(\mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V}\) is a \(\mathcal{V}\)-functor, which tells us that it is a \(\mathcal{V}\)-profunctor \(\mathcal{X} \nrightarrow \mathcal{X}\). If we set \(\mathcal{X} = \mathcal{V}\), then we get \(\multimap\) is a \(\mathcal{V}\)-profunctor \(\mathcal{V} \nrightarrow \mathcal{V}\) as desired.`@Matthew – re the second bit of your puzzle, I think we've already shown that. **Puzzle 197** tells us that \\(\mathrm{hom} \colon \mathcal{X}^{\text{op}} \times \mathcal{X} \to \mathcal{V}\\) is a \\(\mathcal{V}\\)-functor, which tells us that it is a \\(\mathcal{V}\\)-profunctor \\(\mathcal{X} \nrightarrow \mathcal{X}\\). If we set \\(\mathcal{X} = \mathcal{V}\\), then we get \\(\multimap\\) is a \\(\mathcal{V}\\)-profunctor \\(\mathcal{V} \nrightarrow \mathcal{V}\\) as desired.`

Hey Simon,

I am very sorry for my sloppy proofs.

I have gone back and tried to fix up my formatting in one of my proofs.

I thought

$$ \begin{eqnarray} & A \\ & \iff \\ & B \\ & \iff \\ & C \\ & \iff \\ & D \end{eqnarray} $$ looks better on a mobile phone than

$$ \begin{align} A & \iff B \\ & \iff C \\ & \iff D \end{align} $$ Since for wide expressions the latter tends to fly off the screen.

However, I will use the latter format because you are right, it is more conventional.

`Hey Simon, I am very sorry for my sloppy proofs. I have gone back and tried to fix up my formatting in one of my proofs. I thought \[ \begin{eqnarray} & A \\\\ & \iff \\\\ & B \\\\ & \iff \\\\ & C \\\\ & \iff \\\\ & D \end{eqnarray} \] looks better on a mobile phone than \[ \begin{align} A & \iff B \\\\ & \iff C \\\\ & \iff D \end{align} \] Since for wide expressions the latter tends to fly off the screen. However, I will use the latter format because you are right, it is more conventional.`

(Edit: I have changed my notation regarding unital quantales based on Anindya's comments below)

Returning to my puzzle:

I was going back to something Simon Willerton said in Lecture 59 when he was showing how \(\mathbf{Cost}\) can be turned into a \(\mathbf{Cost}\)-functor:

Based on Simon's comment, we have the following:

(EDIT: As noted in comment #67, this is incorrect)

Proof.Just define$$ x \multimap y := \bigvee\lbrace z\mid z\otimes x \leq y\rbrace $$ We know that this exists because \(\mathcal{V}\) has arbitrary joins. We have \((A \otimes -) \dashv (A \multimap -)\) from an old result back in Lecture 6. \( \qquad \blacksquare \)

The above argument doesn't need \(\otimes\) to distribute over \(\bigvee\) as far as I can tell. I believe it is necessary to define profunctor composition, however.

To this end, I suggest a new definition:

So the lemma says that every unital quantale is a closed monoidal poset.

Back in Lecture 58,

Puzzle 181, John Baez gave a definition of profunctor composition:$$ (\Psi\Phi)(x,z) = \bigvee_{y \in \mathrm{obj}(\mathcal{Y})} \Phi(x,y) \otimes \Psi(y,z)$$ Now we need to show associativity. Here is where we use the distributive property Simon mentioned:

Proof.To show this lemma need we need to establish a formula like the one I mentioned back in Lecture 58:$$ \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c)\right) \otimes \Upsilon(c,d) = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Psi(b,c) \otimes \Upsilon(c,d) \right) $$ Let's walk through how to get to this:

$$ \begin{align} \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c)\right) \otimes \Upsilon(c,d) & = \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{by distributivity} \\ & = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Phi(a,b) \otimes \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{upper semi-lattice identity} \\ & = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{by distributivity} \end{align} $$ The only novel trick is that upper semi-lattice identity I mentioned, which I'll go over later if anyone is confused. \( \qquad \blacksquare \)

So we almost have a category of \(\mathcal{V}\)-profunctors, all we need now are suitable \(\mathcal{V}\)-profunctors to be our identity morphisms...

`(Edit: I have changed my notation regarding unital quantales based on Anindya's comments below) Returning to my puzzle: > How do we define \\(\mathcal{V}\\)-profunctor composition? I was going back to something Simon Willerton said in [Lecture 59](https://forum.azimuthproject.org/discussion/comment/20044/#Comment_20044) when he was showing how \\(\mathbf{Cost}\\) can be turned into a \\(\mathbf{Cost}\\)-functor: > You take > > \[ \overline{\mathcal{V}}(x,y)=\bigvee\lbrace z\mid z\otimes x \rtimes y\rbrace. \] > > This will work provided that the poset has the requisite joins, and that \\(\otimes\\) distributes over joins. And because it is a *poset* rather than a preorder, the join will be unique. > > In the case of \\(\textbf{Cost}\\) you get the following. > > \[ \overline{\textbf{Cost}}(x,y) =\inf\\{z\mid z + x \ge y\\} =\max(y-x, 0). \] Based on Simon's comment, we have the following: > <strike> **Lemma.** If \\(\mathcal{V}\\) is monoidal partial order which also an [upper semilattice](https://en.wikipedia.org/wiki/Semilattice#Complete_semilattices) with arbitrary joins, then it is closed.</strike> (EDIT: As noted in [comment #67](https://forum.azimuthproject.org/discussion/comment/20251/#Comment_20251), this is incorrect) <strike>**Proof.** Just define</strike> \[ x \multimap y := \bigvee\lbrace z\mid z\otimes x \leq y\rbrace \] <strike>We know that this exists because \\(\mathcal{V}\\) has arbitrary joins. We have \\((A \otimes -) \dashv (A \multimap -)\\) from an old result back in [Lecture 6](https://forum.azimuthproject.org/discussion/1901/lecture-6-chapter-1-computing-adjoints/). \\( \qquad \blacksquare \\)</strike> The above argument doesn't need \\(\otimes\\) to distribute over \\(\bigvee\\) as far as I can tell. I believe it is necessary to define profunctor composition, however. To this end, I suggest a new definition: > **Definition.** A structure \\(\mathcal{V} = (X, \leq, \bigvee, \bot, \otimes, I)\\) is called a [unital quantale](https://en.wikipedia.org/wiki/Quantale) when > > 1. \\((X, \leq, \otimes, I)\\) is a monoidal poset > 2. \\((X,\leq,\bigvee, \bot)\\) is an [upper semilattice](https://en.wikipedia.org/wiki/Semilattice#Complete_semilattices) with arbitrary joins > 3. \\((X,\bigvee, \otimes, I)\\) is a [complete-rig](https://en.wikipedia.org/wiki/Semiring#Complete_and_continuous_semirings), that is > > \[ \bigvee_{i \in I}{(a \otimes a_i)} = a \otimes \left(\bigvee_{i \in I}{a_i}\right); \quad \bigvee_{i \in I}{(a_i \otimes a)} = \left(\bigvee_{i \in I}{a_i}\right) \otimes a \] So the lemma says that every unital quantale is a closed monoidal poset. Back in [Lecture 58](https://forum.azimuthproject.org/discussion/2283/lecture-58-chapter-4-composing-feasibility-relations#latest), **Puzzle 181**, John Baez gave a definition of profunctor composition: \[ (\Psi\Phi)(x,z) = \bigvee_{y \in \mathrm{obj}(\mathcal{Y})} \Phi(x,y) \otimes \Psi(y,z)\] Now we need to show associativity. Here is where we use the distributive property Simon mentioned: > **Lemma.** Let \\(\mathcal{V}\\) be a unital quantale, and let \\(\Phi : \mathcal{A} \nrightarrow \mathcal{B} \\), \\(\Psi : \mathcal{B} \nrightarrow \mathcal{C}\\), and \\(\Upsilon : \mathcal{C} \nrightarrow \mathcal{D}\\) be \\(\mathcal{V}\\)-profunctors. Then > \[ (\Phi \Psi) \Upsilon = \Phi (\Psi \Upsilon) \] **Proof.** To show this lemma need we need to establish a formula like the one I mentioned back in [Lecture 58](https://forum.azimuthproject.org/discussion/comment/20023/#Comment_20023): \[ \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c)\right) \otimes \Upsilon(c,d) = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Psi(b,c) \otimes \Upsilon(c,d) \right) \] Let's walk through how to get to this: \[ \begin{align} \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c)\right) \otimes \Upsilon(c,d) & = \bigvee_{c \in \mathrm{obj}(\mathcal{C})} \left(\bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{by distributivity} \\\\ & = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Phi(a,b) \otimes \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{upper semi-lattice identity} \\\\ & = \bigvee_{b \in \mathrm{obj}(\mathcal{B})} \Phi(a,b) \otimes \left(\bigvee_{c \in \mathrm{obj}(\mathcal{C})} \Psi(b,c) \otimes \Upsilon(c,d) \right) \tag{by distributivity} \end{align} \] The only novel trick is that upper semi-lattice identity I mentioned, which I'll go over later if anyone is confused. \\( \qquad \blacksquare \\) So we almost have a category of \\(\mathcal{V}\\)-profunctors, all we need now are suitable \\(\mathcal{V}\\)-profunctors to be our identity morphisms...`

that's really useful @Matthew – I was wondering where @Simon's comment about \(\otimes\) distributing over joins fitted into all this, and that clarifies things nicely. Two quibbles tho:

First, I don't really like the term "complete monoidal poset" – I think "complete" if it means anything means that the

posetstructure is complete, in that it has all joins, ie we should say something like "monoidal complete join-semilattice". Moreover, the distributivity of \(\otimes\) over infinite joins strikes me as a very serious new property in its own right, over and above the widget just happening to be both a complete join-semilattice and a monoid, at the same time and in a compatible way. I think it makes sense to come up with a new word for this creature with this extra special property, and "quantale" seems to be what people have settled on. There's an analogy here with the way that when \(\wedge\) distributes over infinite joins in a complete lattice, that makes the lattice so unusual we give it a new name, ie "frame" or "locale".Second – and this is more of an itch on my part – I suspect there's a whole bundle of subtleties wrapped up in what you've called the "upper semilattice identity" – it's easy to prove in this case where the indexing widgets are both sets (\(\text{Obj}(\mathcal{B})\) and \(\text{Obj}(\mathcal{C})\) respectively). Yes, we can swap round the joins in that case. But are the indexing widgets necessarily sets? If we imagine this as "matrix multiplication" are we not in fact indexing by lists? And what then if we were to index by trees, or by some even more convoluted structure? At what point does "yeah swap round the joins, no problem" cease to work? A rabbit hole beckons.

`that's really useful @Matthew – I was wondering where @Simon's comment about \\(\otimes\\) distributing over joins fitted into all this, and that clarifies things nicely. Two quibbles tho: First, I don't really like the term "complete monoidal poset" – I think "complete" if it means anything means that the *poset* structure is complete, in that it has all joins, ie we should say something like "monoidal complete join-semilattice". Moreover, the distributivity of \\(\otimes\\) over infinite joins strikes me as a very serious new property in its own right, over and above the widget just happening to be both a complete join-semilattice and a monoid, at the same time and in a compatible way. I think it makes sense to come up with a new word for this creature with this extra special property, and "quantale" seems to be what people have settled on. There's an analogy here with the way that when \\(\wedge\\) distributes over infinite joins in a complete lattice, that makes the lattice so unusual we give it a new name, ie "frame" or "locale". Second – and this is more of an itch on my part – I suspect there's a whole bundle of subtleties wrapped up in what you've called the "upper semilattice identity" – it's easy to prove in this case where the indexing widgets are both sets (\\(\text{Obj}(\mathcal{B})\\) and \\(\text{Obj}(\mathcal{C})\\) respectively). Yes, we can swap round the joins in that case. But are the indexing widgets necessarily sets? If we imagine this as "matrix multiplication" are we not in fact indexing by lists? And what then if we were to index by trees, or by some even more convoluted structure? At what point does "yeah swap round the joins, no problem" cease to work? A rabbit hole beckons.`

I have a simple question.

A poset is to a category as a quantale is to what exactly?

What is a categorified quantale?

`I have a simple question. A poset is to a category as a quantale is to what exactly? What is a categorified quantale?`

Hey Anindya,

I came up with

completebecause it is a complete rig and complete upper semilattice, but you are right this is a unital quantale. I am going to go back and fix this.Well... in the case that \(\mathrm{Obj}(\mathcal{X})\) is a set and we are working in a rig where \(\sum = \bigvee\) such as a quantale, the little identity holds. It has to do with the fact that \(\bigvee_{x \in X}\Xi(x) \otimes -\) is an upper semi-lattice homomorphism. In the case of feasibility relations, it reflects the FOL identity \(\exists x. \exists y. \phi(x,y) \iff \exists y. \exists x. \phi(x,y)\). But we can think of situations where \(\mathrm{Obj}(\mathcal{X})\) is a list or even a transfinite sequence, such as in Bayesian updating with some evidence or some other setting. I don't know if we can still meaningfully talk about profunctor composition in rigs where \(\sum_{x \in X} \sum_{y \in Y} \Xi(x,y) \neq \sum_{y \in Y} \sum_{x \in X} \Xi(x,y)\), but maybe we can...

Good thing we have experts like Simon and John around, because I am a 100% amateur here and I know I can't dive into the details to your satisfaction :-(

`Hey Anindya, > First, I don't really like the term "complete monoidal poset" – I think "complete" if it means anything means that the *poset* structure is complete, in that it has all joins, ie we should say something like "monoidal complete join-semilattice". Moreover, the distributivity of \\(\otimes\\) over infinite joins strikes me as a very serious new property in its own right, over and above the widget just happening to be both a complete join-semilattice and a monoid, at the same time and in a compatible way. I think it makes sense to come up with a new word for this creature with this extra special property, and "quantale" seems to be what people have settled on. There's an analogy here with the way that when \\(\wedge\\) distributes over infinite joins in a complete lattice, that makes the lattice so unusual we give it a new name, ie "frame" or "locale". I came up with *complete* because it is a complete rig and complete upper semilattice, but you are right this is a unital quantale. I am going to go back and fix this. > Second – and this is more of an itch on my part – I suspect there's a whole bundle of subtleties wrapped up in what you've called the "upper semilattice identity" – it's easy to prove in this case where the indexing widgets are both sets (\\(\text{Obj}(\mathcal{B})\\) and \\(\text{Obj}(\mathcal{C})\\) respectively). Yes, we can swap round the joins in that case. But are the indexing widgets necessarily sets? If we imagine this as "matrix multiplication" are we not in fact indexing by lists? And what then if we were to index by trees, or by some even more convoluted structure? At what point does "yeah swap round the joins, no problem" cease to work? A rabbit hole beckons. Well... in the case that \\(\mathrm{Obj}(\mathcal{X})\\) is a set and we are working in a rig where \\(\sum = \bigvee\\) such as a quantale, the little identity holds. It has to do with the fact that \\(\bigvee_{x \in X}\Xi(x) \otimes -\\) is an upper semi-lattice homomorphism. In the case of feasibility relations, it reflects the FOL identity \\(\exists x. \exists y. \phi(x,y) \iff \exists y. \exists x. \phi(x,y)\\). But we can think of situations where \\(\mathrm{Obj}(\mathcal{X})\\) is a list or even a transfinite sequence, such as in Bayesian updating with some evidence or some other setting. I don't know if we can still meaningfully talk about profunctor composition in rigs where \\(\sum\_{x \in X} \sum\_{y \in Y} \Xi(x,y) \neq \sum\_{y \in Y} \sum_{x \in X} \Xi(x,y)\\), but maybe we can... Good thing we have experts like Simon and John around, because I am a 100% amateur here and I know I can't dive into the details to your satisfaction :-(`

I suspect \(\sum_x \sum_y \Phi(x,y) = \sum_y \sum_x \Phi(x,y)\) is always true, since it comes from the associativity law of profunctors. \(\sum_x \sum_y \Phi(x,y) = \sum_y \sum_x \Phi(x,y)\) is just associativity along the idenities \(I_{\mathcal{X}}(x,x), I_{\mathcal{Y}}(y,y)\),

\[ \sum_x \sum_y (I_{\mathcal{X}}(x,x)\times \Phi(x,y))\times I_{\mathcal{Y}}(y,y) \\ = \sum_{x,y} I_{\mathcal{X}}(x,x) \times \Phi(x,y)\times I_{\mathcal{Y}}(y,y) \\ = \sum_y \sum_x I_{\mathcal{X}}(x,x) \times (\Phi(x,y) \times I_{\mathcal{Y}}(y,y)) \]

`I suspect \\(\sum_x \sum_y \Phi(x,y) = \sum_y \sum_x \Phi(x,y)\\) is always true, since it comes from the associativity law of profunctors. \\(\sum_x \sum_y \Phi(x,y) = \sum_y \sum_x \Phi(x,y)\\) is just associativity along the idenities \\(I\_{\mathcal{X}}(x,x), I\_{\mathcal{Y}}(y,y)\\), \\[ \sum_x \sum_y (I\_{\mathcal{X}}(x,x)\times \Phi(x,y))\times I\_{\mathcal{Y}}(y,y) \\\\ = \sum\_{x,y} I\_{\mathcal{X}}(x,x) \times \Phi(x,y)\times I\_{\mathcal{Y}}(y,y) \\\\ = \sum_y \sum_x I\_{\mathcal{X}}(x,x) \times (\Phi(x,y) \times I\_{\mathcal{Y}}(y,y)) \\]`

Matthew, you keep editing your comments when people comment on them. This makes it difficult to make sense of other people's comments. It also makes it hard to follow the conversation and see how it is developing.

Let me make a further comment. You introduce some seemingly new jargon "upper semilattice" but don't tell us what it is, instead you link to a random part of a wikipedia page. Be explicit, tell us what this means, otherwise herein lies a good place for errors to creep in. Similarly tell us why you need this new jargon. There's a danger of mixing terminology from different areas, namely category theory type monoidal preorder language and lattice theory in that they are based on different perspectives, although they might be equivalent, there's plenty of scope for confusing things. It's fine to say a monoidal preorder with a widget is the same as sprocket semi-lattice or something if that helps clarify, but usually you would need to prove such a thing.

For instance you say you want a "monoidal partial order which also an upper semilattice with arbitrary joins". But if I click on the link you gave, we find that an upper semilattice means a partial order with all non-empty finite joins. So once we see what an upper semilattice is, we realise that it is redundant in the above sentence. You need a monoidal partial order which has arbitrary joins.

And when you say "Let me suggest a new definition", I think you mean to say that you are citing an established definition, rather than coming up with a new one of your own.

`Matthew, you keep editing your comments when people comment on them. This makes it difficult to make sense of other people's comments. It also makes it hard to follow the conversation and see how it is developing. Let me make a further comment. You introduce some seemingly new jargon "upper semilattice" but don't tell us what it is, instead you link to a random part of a wikipedia page. Be explicit, tell us what this means, otherwise herein lies a good place for errors to creep in. Similarly tell us why you need this new jargon. There's a danger of mixing terminology from different areas, namely category theory type monoidal preorder language and lattice theory in that they are based on different perspectives, although they might be equivalent, there's plenty of scope for confusing things. It's fine to say a monoidal preorder with a widget is the same as sprocket semi-lattice or something if that helps clarify, but usually you would need to prove such a thing. For instance you say you want a "monoidal partial order which also an upper semilattice with arbitrary joins". But if I click on the link you gave, we find that an upper semilattice means a partial order with all non-empty finite joins. So once we see what an upper semilattice is, we realise that it is redundant in the above sentence. You need a monoidal partial order which has arbitrary joins. And when you say "Let me suggest a new definition", I think you mean to say that you are citing an established definition, rather than coming up with a new one of your own.`

With regard to the monoidal product distributing over the joins, note here how the two languages do not mesh together well. In the lattice theoretic world, you impose that the monoidal product distributes over joins, whereas in the category theoretic world you impose that the monoidal product preserves the order. Are these equivalent? Is there a monoidal preorder in which the monoidal product does not distribute over joins?

`With regard to the monoidal product distributing over the joins, note here how the two languages do not mesh together well. In the lattice theoretic world, you impose that the monoidal product distributes over joins, whereas in the category theoretic world you impose that the monoidal product preserves the order. Are these equivalent? Is there a monoidal preorder in which the monoidal product does not distribute over joins?`

Okay, so in the future if I make a mistake in terms of a proof or some jargon, what should I do? Would you prefer I left my old post intact, and then make a new post with the corrections?

I can't help making mistakes. I would strongly prefer to correct them as I learn.

Okay, I was talking about a semilattice with arbitrary joins, and I thought I linked to the relevant wikipedia page. I am sorry for not motivating this or complete-rigs. It looks like it's just you, me, Keith, and Anindya in this this thread, so I thought I could get away without motivating these things.

I don't always know the name of some mathematical object. I like making definitions and reasoning about them. Should I use a convention like this?

`> Matthew, you keep editing your comments when people comment on them. This makes it difficult to make sense of other people's comments. It also makes it hard to follow the conversation and see how it is developing. Okay, so in the future if I make a mistake in terms of a proof or some jargon, what should I do? Would you prefer I left my old post intact, and then make a new post with the corrections? I can't help making mistakes. I would strongly prefer to correct them as I learn. > Let me make a further comment. You introduce some seemingly new jargon "upper semilattice" but don't tell us what it is, instead you link to a random part of a wikipedia page. Be explicit, tell us what this means, otherwise herein lies a good place for errors to creep in. Similarly tell us why you need this new jargon. There's a danger of mixing terminology from different areas, namely category theory type monoidal preorder language and lattice theory in that they are based on different perspectives, although they might be equivalent, there's plenty of scope for confusing things. It's fine to say a monoidal preorder with a widget is the same as sprocket semi-lattice or something if that helps clarify, but usually you would need to prove such a thing. Okay, I was talking about a semilattice with arbitrary joins, and I thought I linked to the relevant wikipedia page. I am sorry for not motivating this or complete-rigs. It looks like it's just you, me, Keith, and Anindya in this this thread, so I thought I could get away without motivating these things. I don't always know the name of some mathematical object. I like making definitions and reasoning about them. Should I use a convention like this? > <font color="red">**Invented Definition**</font> An object \\(\Omega\\) is an *ultra-fibered ideal* if and only if...`

No, they are not equivalent.

I believe if \((X,\leq, \vee, \otimes)\) has a monoidal product which distributes over joins, then it must have a monoidal product which preserves order.

Proof.Let \(x \leq y\). We must show \(z \otimes x \leq z \otimes y\).

The assumption \(x \leq y\) is equivalent to \(x \vee y = y\), which means $$z \otimes (x \vee y) = z \otimes y . \tag{★}$$ Since the monoidal product here distributes, we know \(z \otimes (x \vee y) = (z \otimes x) \vee (z \otimes y)\), which together with (★) means \((z \otimes x) \vee (z \otimes y) = z \otimes y\). But this is equivalent to \(z \otimes x \leq z \otimes y\), which is what we wanted to show. \( \qquad \blacksquare \)

The converse is not true, as you hint below:

Yes. John Baez asked a similar question in Lecture 61

I tried to show in comment #13 that this monoidal poset did not always have a product that distributes over joins. I used this and the adjoint functor theorem to argue \(\mathcal{E}(X)\) is not closed in general.

`> With regard to the monoidal product distributing over the joins, note here how the two languages do not mesh together well. In the lattice theoretic world, you impose that the monoidal product distributes over joins, whereas in the category theoretic world you impose that the monoidal product preserves the order. Are these equivalent? No, they are not equivalent. I believe if \\((X,\leq, \vee, \otimes)\\) has a monoidal product which distributes over joins, then it must have a monoidal product which preserves order. **Proof.** Let \\(x \leq y\\). We must show \\(z \otimes x \leq z \otimes y\\). The assumption \\(x \leq y\\) is equivalent to \\(x \vee y = y\\), which means \[z \otimes (x \vee y) = z \otimes y . \tag{★}\] Since the monoidal product here distributes, we know \\(z \otimes (x \vee y) = (z \otimes x) \vee (z \otimes y)\\), which together with (★) means \\((z \otimes x) \vee (z \otimes y) = z \otimes y\\). But this is equivalent to \\(z \otimes x \leq z \otimes y\\), which is what we wanted to show. \\( \qquad \blacksquare \\) The converse is not true, as you hint below: > Is there a monoidal preorder in which the monoidal product does not distribute over joins? Yes. John Baez asked a similar question in [Lecture 61](https://forum.azimuthproject.org/discussion/2291/lecture-61-chapter-4-closed-monoidal-posets) > **Puzzle 194.** From [Lecture 11](https://forum.azimuthproject.org/discussion/1991/lecture-11-chapter-1-the-poset-of-partitions/p1) we know that for any set \\(X\\) the set of partitions of \\(X\\), \\(\mathcal{E}(X)\\), becomes a poset with \\(P \le Q\\) meaning that \\(P\\) is finer than \\(Q\\). It's a monoidal poset with product given by the meet \\(P \wedge Q\\). Is this monoidal poset closed? I tried to show in [comment #13](https://forum.azimuthproject.org/discussion/comment/20139/#Comment_20139) that this monoidal poset did not always have a product that distributes over joins. I used this and the adjoint functor theorem to argue \\(\mathcal{E}(X)\\) is not closed in general.`

another example: we can treat any lattice as a monoidal poset by defining \(\wedge\) as the monoidal product and the top element as the unit – then of course the product distributes over joins iff the lattice is distributive.

`another example: we can treat any lattice as a monoidal poset by defining \\(\wedge\\) as the monoidal product and the top element as the unit – then of course the product distributes over joins iff the lattice is distributive.`

@Matthew I don't always do it but you can use html

~~strikethrough~~to keep the edited narrative structure. hth.`@Matthew I don't always do it but you can use html <del>strikethrough</del> to keep the edited narrative structure. hth.`

@Jim

If Simon is okay with this, I will start doing that.

I think he'd prefer if I just stopped making so many helpless newbie mistakes, but I'm really trying my best here.

`@Jim > @Matthew I don't always do it but you can use html <strike>strikethrough</strike> to keep the edited narrative structure. hth. If Simon is okay with this, I will start doing that. I think he'd prefer if I just stopped making so many helpless newbie mistakes, but I'm really trying my best here.`

Anindya wrote:

Whoops! I'll fix it.

This is actually

good, it restores my sense of reality. "To compose arrows that are turned around, you need to be able to move them around each other" - that's why defining the opposite of a \(\mathcal{V}\) -enriched category should require \(\mathcal{V}\) to be commutative. I should have been more suspicious of my sudden "discovery".`Anindya wrote: > I think there's a mistake in the proof that \\(\mathcal{X}^\text{op}\\) is a \\(\mathcal{V}\\)-enriched category. Whoops! I'll fix it. This is actually _good_, it restores my sense of reality. "To compose arrows that are turned around, you need to be able to move them around each other" - that's why defining the opposite of a \\(\mathcal{V}\\) -enriched category should require \\(\mathcal{V}\\) to be commutative. I should have been more suspicious of my sudden "discovery".`

Matthew:

I think it's best to make a new comments with corrections, so other people's comments still make sense and people can enjoy the flow of conversation. I guess strikethrough is also okay, but it prevents people from reading one comment after another and following the conversation in a linear way.

We all make mistakes; it's nothing to be ashamed of. It's especially good for beginners to watch mathematicians make mistakes, catch each others mistakes, discuss them and find the truth. It makes beginners less nervous if they realize that the goal is not "instant perfection" but rather "the ability to recognize and fix errors".

I fix my lectures when people catch mistakes. Why? Two reasons:

1) I don't want everyone to have to read all the comments to find the truth: there are probably plenty of students who don't read all the comments.

2) I'm going to turn these lectures into some sort of paper or book.

But when people catch mistakes of mine I try to make a copy of those mistakes visible in the comments, so other readers can tell what's going on. Indeed, it would save me a little work if people who catch a mistake of mine would include a copy of those mistake in their comment! That way later readers can easily tell what's going on.

I have decided that when I make mistakes in my comments it's usually best if I

don'tgo back and fix them - except for really trivial things like formatting errors.`Matthew: > Okay, so in the future if I make a mistake in terms of a proof or some jargon, what should I do? Would you prefer I left my old post intact, and then make a new post with the corrections? I think it's best to make a new comments with corrections, so other people's comments still make sense and people can enjoy the flow of conversation. I guess strikethrough is also okay, but it prevents people from reading one comment after another and following the conversation in a linear way. We all make mistakes; it's nothing to be ashamed of. It's especially good for beginners to watch mathematicians make mistakes, catch each others mistakes, discuss them and find the truth. It makes beginners less nervous if they realize that the goal is not "instant perfection" but rather "the ability to recognize and fix errors". I fix my lectures when people catch mistakes. Why? Two reasons: 1) I don't want everyone to have to read all the comments to find the truth: there are probably plenty of students who don't read all the comments. 2) I'm going to turn these lectures into some sort of paper or book. But when people catch mistakes of mine I try to make a copy of those mistakes visible in the comments, so other readers can tell what's going on. Indeed, it would save me a little work if people who catch a mistake of mine would include a copy of those mistake in their comment! That way later readers can easily tell what's going on. I have decided that when I make mistakes in my comments it's usually best if I _don't_ go back and fix them - except for really trivial things like formatting errors.`

Simon wrote:

By the way, as you hinted, there's a difference between the order theorist's definition of 'semilattice' and the category theorist's.

An order theorist says an upper semilattice, or join-semilattice, is a poset with joins of all

non-emptyfinite sets. A category theorist will dislike that italicized exception, and say a join-semilattice is a poset with joins ofallfinite sets. An order theorist will call this a join-semilattice _with a bottom element \(\bot\) (namely the join of the empty set).Unsurprisingly, I am with the category theorists on this one!

The same disagreement afflicts the definition of lower semilattice or meet-semilattice, and of lattice.

My definition of 'quantale' in Lecture 63 is also nonstandard - neither the usual one, nor Fong and Spivak's! My quantales are all skeletal (posets rather than preorders), because I see no great advantage in discussing isomorphic-but-not-equal objects in what we're doing now. That's a choice of convenience, not principle. And my quantales are all unital - because I prefer monoids to semigroups. That's a choice of principle!

`Simon wrote: > For instance you say you want a "monoidal partial order which also an upper semilattice with arbitrary joins". But if I click on the link you gave, we find that an upper semilattice means a partial order with all non-empty finite joins. So once we see what an upper semilattice is, we realise that it is redundant in the above sentence. You need a monoidal partial order which has arbitrary joins. By the way, as you hinted, there's a difference between the order theorist's definition of 'semilattice' and the category theorist's. An order theorist says an upper semilattice, or join-semilattice, is a poset with joins of all _non-empty_ finite sets. A category theorist will dislike that italicized exception, and say a join-semilattice is a poset with joins of _all_ finite sets. An order theorist will call this a join-semilattice _with a bottom element \\(\bot\\) (namely the join of the empty set). Unsurprisingly, I am with the category theorists on this one! The same disagreement afflicts the definition of lower semilattice or meet-semilattice, and of lattice. My definition of 'quantale' in [Lecture 63](https://forum.azimuthproject.org/discussion/2295/lecture-63-chapter-4-composing-enriched-profunctors/p1) is also nonstandard - neither the usual one, nor Fong and Spivak's! My quantales are all skeletal (posets rather than preorders), because I see no great advantage in discussing isomorphic-but-not-equal objects in what we're doing now. That's a choice of convenience, not principle. And my quantales are all unital - because I prefer monoids to semigroups. That's a choice of principle!`

Keith wrote:

Usually when people say that it turns out to be an incredibly vague, subtle question.

Ah, but this time it's actually a simple question.

A quantale is a closed monoidal poset with all joins.

But the analogue for categories of a 'join' is a 'colimit'. In particular, every poset is a category, and a colimit in a poset is just a join.

So, the answer to your question is: a closed monoidal category with all colimits.

But a category with all colimits is called cocomplete. So, a slicker way to say the same thing is: a cocomplete closed monoidal category.

In short:

A poset is to a category as a quantale is to a cocomplete closed monoidal category.There are lots of cocomplete closed monoidal categories. Every quantale is one. But here's one that's not a quantale: \( (\mathbf{Set}, \times, 1)\).

A more representative example is \( (\mathbf{Vect}_k, \otimes, k) \) - the category of vector spaces over a field \(k\), made monoidal with the tensor product of vector spaces, with \(k\) as the unit for the tensor product.

By the way, to be nitpicky, whenever I said "all" above I should have said "all small".

`Keith wrote: > I have a simple question. Usually when people say that it turns out to be an incredibly vague, subtle question. > A poset is to a category as a quantale is to what exactly? Ah, but this time it's actually a simple question. A quantale is a closed monoidal poset with all joins. But the analogue for categories of a 'join' is a ['colimit'](https://en.wikipedia.org/wiki/Limit_(category_theory)#Colimits). In particular, every poset is a category, and a colimit in a poset is just a join. So, the answer to your question is: a closed monoidal category with all colimits. But a category with all colimits is called [cocomplete](https://en.wikipedia.org/wiki/Complete_category). So, a slicker way to say the same thing is: a cocomplete closed monoidal category. In short: _A poset is to a category as a quantale is to a cocomplete closed monoidal category_. There are lots of cocomplete closed monoidal categories. Every quantale is one. But here's one that's not a quantale: \\( (\mathbf{Set}, \times, 1)\\). A more representative example is \\( (\mathbf{Vect}_k, \otimes, k) \\) - the category of vector spaces over a field \\(k\\), made monoidal with the tensor product of vector spaces, with \\(k\\) as the unit for the tensor product. By the way, to be nitpicky, whenever I said "all" above I should have said "all small".`

Anindya wrote in #22:

I don't think so. Well, perhaps one could manufacture subtleties, but none naturally come to mind.

Yes.

Of course you could order the indexing sets if you want, or equip with them with some other structure, but that other structure plays no role in the definition of join, so it has no effect on the answer, so there's really no point to bringing it in.

`Anindya wrote in #22: > Second – and this is more of an itch on my part – I suspect there's a whole bundle of subtleties wrapped up in what you've called the "upper semilattice identity". I don't think so. Well, perhaps one could manufacture subtleties, but none naturally come to mind. > But are the indexing widgets necessarily sets? Yes. Of course you could order the indexing sets if you want, or equip with them with some other structure, but that other structure plays no role in the definition of join, so it has no effect on the answer, so there's really no point to bringing it in.`

Christopher wrote:

It would be good to review Lecture 22 then, where I explained "symmetric" and "commutative" monoidal preorders. Here's just a portion:

Definition.A monoidal preorder \( (X, \le, \otimes, I) \) issymmetricif$$ y \otimes x \le x \otimes y $$ for all \(x,y\in X\).

Since \(x\) and \(y\) are

anything, we can switch their roles and conclude that$$ y \otimes x \le x \otimes y \textrm{ and } x \otimes y \le y \otimes x $$ for all \(x,y\) in a symmetric monoidal preorder. You might guess that this implies \(x \otimes y = y \otimes x\), but no! This will follow if our preorder is a poset, since a poset is a preorder where

$$ a \le b \textrm{ and } b \le a \textrm{ implies } a = b .$$ But it's not true in general:

Puzzle 67.A monoidal preorder iscommutativeif \(x \otimes y = y \otimes x\) for all \(x,y\). Find a symmetric monoidal preorder that is not commutative.In Chapter 4, for convenience, I am only working with monoidal posets - not more general monoidal preorders. From the above, a monoidal poset is symmetric iff it is commutative.

So, in Chapter 4, I only talk about

commutativemonoidal posets!When dealing with monoidal

categorieswe get yet another flavor of commutativity: braided. But that's irrelevant now.`Christopher wrote: > So we need to change \\( \mathcal{V} \, \text{is commutative}\\) to \\( \mathcal{V} \, \text{is symmetric (or braided? Not sure what those terms mean exactly})\\). It would be good to review [Lecture 22](https://forum.azimuthproject.org/discussion/2084/lecture-22-chapter-2-symmetric-monoidal-preorders/p1) then, where I explained "symmetric" and "commutative" monoidal preorders. Here's just a portion: <hr/> **Definition.** A monoidal preorder \\( (X, \le, \otimes, I) \\) is **symmetric** if \[ y \otimes x \le x \otimes y \] for all \\(x,y\in X\\). Since \\(x\\) and \\(y\\) are _anything_, we can switch their roles and conclude that \[ y \otimes x \le x \otimes y \textrm{ and } x \otimes y \le y \otimes x \] for all \\(x,y\\) in a symmetric monoidal preorder. You might guess that this implies \\(x \otimes y = y \otimes x\\), but no! This will follow if our preorder is a poset, since a poset is a preorder where \[ a \le b \textrm{ and } b \le a \textrm{ implies } a = b .\] But it's not true in general: **Puzzle 67.** A monoidal preorder is **commutative** if \\(x \otimes y = y \otimes x\\) for all \\(x,y\\). Find a symmetric monoidal preorder that is not commutative. <hr/> In Chapter 4, for convenience, I am only working with monoidal posets - not more general monoidal preorders. From the above, a monoidal poset is symmetric iff it is commutative. So, in Chapter 4, I only talk about _commutative_ monoidal posets! When dealing with monoidal _categories_ we get yet another flavor of commutativity: braided. But that's irrelevant now.`

Matthew said:

No! Not at all! Your newbie mistakes are great. Really. [Well up to a point, of course. :-) ] That's why I was complaining about you erasing them! There will be many, many people on this forum who are lurking. There's not just the five people who are contributing, and there's also the people taking part who haven't caught up to here yet. When I'm correcting your mistakes I'm writing for them as well.

You are doing a sterling job of writing stuff up, and along the way do the kind of thing that most people do when they're learning. I'm pointing them out to both you and everyone else who is reading, so, as you say, you can learn, and so can the people who are just reading. What you are writing is not perfect. [What John and I write is not perfect either, but we've had many years of working at mathematical writing.] It would be very intimidating to everyone else on the course if they got the impression that the people contributing (and hence everyone else on the course except them) could write perfectly expressed mathematics.

So with this in mind, as John said, it makes more sense to others reading that you correct your posts in a subsequent comment. (You can always edit your old post to say 'see below for a revised version'.)

I'm sorry if my comments were too abrupt yesterday, that isn't the spirit in which they were intended. John was claiming the other day that I was far more polite than him, so I was trying to turn down my Britishness! The intended spirit was to help you get better at expressing yourself mathematically and to help you not fall into standard traps which lead to dodgy proofs. My students will get their written work taken apart far more than I'm doing with yours here, and, whilst it would be good if they didn't make newbie mistakes, they wouldn't have anything to learn and I'd be out of a job :-)

`Matthew said: > I think [Simon]'d prefer if I just stopped making so many helpless newbie mistakes, but I'm really trying my best here. No! Not at all! Your newbie mistakes are great. Really. [Well up to a point, of course. :-) ] That's why I was complaining about you erasing them! There will be many, many people on this forum who are lurking. There's not just the five people who are contributing, and there's also the people taking part who haven't caught up to here yet. When I'm correcting your mistakes I'm writing for them as well. You are doing a sterling job of writing stuff up, and along the way do the kind of thing that most people do when they're learning. I'm pointing them out to both you and everyone else who is reading, so, as you say, you can learn, and so can the people who are just reading. What you are writing is not perfect. [What John and I write is not perfect either, but we've had many years of working at mathematical writing.] It would be very intimidating to everyone else on the course if they got the impression that the people contributing (and hence everyone else on the course except them) could write perfectly expressed mathematics. So with this in mind, as John said, it makes more sense to others reading that you correct your posts in a subsequent comment. (You can always edit your old post to say 'see below for a revised version'.) I'm sorry if my comments were too abrupt yesterday, that isn't the spirit in which they were intended. John was claiming the other day that I was far more polite than him, so I was trying to turn down my Britishness! The intended spirit was to help you get better at expressing yourself mathematically and to help you not fall into standard traps which lead to dodgy proofs. My students will get their written work taken apart far more than I'm doing with yours here, and, whilst it would be good if they didn't make newbie mistakes, they wouldn't have anything to learn and I'd be out of a job :-)`

Matthew said

My issue was with you giving an established name -- unital quantale -- to something. It wasn't clear to me that your definition of unital quantale was one you'd just come up with or a definition from the literature. If you want to define something then give it a distinctive name! [A "unitalicious quantale" might work here amongst friends, but you might prefer something more circumspect if you were putting in a paper. :-) ]

`Matthew said > I don't always know the name of some mathematical object. I like making definitions and reasoning about them. Should I use a convention like this? My issue was with you giving an established name -- unital quantale -- to something. It wasn't clear to me that your definition of unital quantale was one you'd just come up with or a definition from the literature. If you want to define something then give it a distinctive name! [A "unitalicious quantale" might work here amongst friends, but you might prefer something more circumspect if you were putting in a paper. :-) ]`

Let's go back to the issue with condition of tensor distributing over joins for the existence of internal homs.

It seems that Matthew is saying that it is not necessary that a monoidal preorder has the monoidal product distributing over joins for it to be closed.

On the other hand he is saying that by the adjoint functor theorem he can show that a certain monoidal preorder is not closed because the monoidal product does not distribute over the joins.

These two things

seemto contradict each other. Am I misunderstanding the positions here?`Let's go back to the issue with condition of tensor distributing over joins for the existence of internal homs. It seems that Matthew is saying that it is not necessary that a monoidal preorder has the monoidal product distributing over joins for it to be closed. On the other hand he is saying that by the adjoint functor theorem he can show that a certain monoidal preorder is not closed because the monoidal product does not distribute over the joins. These two things *seem* to contradict each other. Am I misunderstanding the positions here?`

Hey Simon

Okay, you missed the exchange between Anindya and me. I originally used the novel name

completemonoidal poset, and Anindya corrected me that it is called a quantale. I read up in them in wikipedia and decided my definition was equivalent to what wikipedia calls a unital quantale. IMOcomplete monoidal posetisn't a silly name, since it's a complete rig and a join-complete semilattice. It's just unconventional.`Hey Simon > Matthew said > > > I don't always know the name of some mathematical object. I like making definitions and reasoning about them. Should I use a convention like this? > > My issue was with you giving an established name -- unital quantale -- to something. It wasn't clear to me that your definition of unital quantale was one you'd just come up with or a definition from the literature. If you want to define something then give it a distinctive name! Okay, you missed the exchange between Anindya and me. I originally used the novel name *complete* monoidal poset, and Anindya corrected me that it is called a quantale. I read up in them in wikipedia and decided my definition was equivalent to what wikipedia calls a unital quantale. IMO *complete monoidal poset* isn't a silly name, since it's a complete rig and a join-complete semilattice. It's just unconventional.`

Simon said in #41

No, I didn't mean that.

You may be confused with my reply to your comment in #27. In #27 you wrote:

(I have added labels (A) and (B) to your question.)

I argued in #29 that (A) implies (B), and tried to provide a counter example to show (B) does not imply (A).

As far as I can tell, I didn't mention closedness in comment #29.

`Simon said in [#41](https://forum.azimuthproject.org/discussion/comment/20242/#Comment_20242) > It seems that Matthew is saying that it is not necessary that a monoidal preorder has the monoidal product distributing over joins for it to be closed. No, I didn't mean that. You may be confused with my reply to your comment in [#27](https://forum.azimuthproject.org/discussion/comment/20221/#Comment_20221). In #27 you wrote: > In the lattice theoretic world, you impose that (A) the monoidal product distributes over joins, whereas in the category theoretic world you impose that (B) the monoidal product preserves the order. Are these equivalent? (I have added labels (A) and (B) to your question.) I argued in [#29](https://forum.azimuthproject.org/discussion/comment/20214/#Comment_20214) that (A) implies (B), and tried to provide a counter example to show (B) does not imply (A). As far as I can tell, I didn't mention closedness in comment #29.`

In the comment #43 we had

Sorry, I should have quoted what I was referring to. In comment #21 you had

And afterwards you said

`In the comment #43 we had >> It seems that Matthew is saying that it is not necessary that a monoidal preorder has the monoidal product distributing over joins for it to be closed. > > No, I didn't mean that. Sorry, I should have quoted what I was referring to. In comment #21 you had > **Lemma.** If \\(\mathcal{V}\\) is monoidal partial order which also an [upper semilattice](https://en.wikipedia.org/wiki/Semilattice#Complete_semilattices) with arbitrary joins, then it is closed. And afterwards you said > The above argument doesn't need \\(\otimes\\) to distribute over \\(\bigvee\\) as far as I can tell. I believe it is necessary to define profunctor composition, however.`

Ah, now I get what you are saying. You are looking at this in comment #21:

I meant I didn't use the assumption that \(\otimes\) distributes in the little lemma.

I didn't mean that I thought there was some closed monoidal partial order which didn't distribute. I hadn't thought about it. But I thought it was necessary to define composition, so I included it in my definition of

unital quantalelater inter comment #21.For what it's worth, using John's separate definition of quantale I tried to show \(\otimes\) distributes in comment #1 of Lecture 63 assuming commutativity.

`Ah, now I get what you are saying. You are looking at this in comment #21: > > **Lemma.** If \\(\mathcal{V}\\) is monoidal partial order which also an [upper semilattice](https://en.wikipedia.org/wiki/Semilattice#Complete_semilattices) with arbitrary joins, then it is closed. > > **Proof.** Just define > > \[ x \multimap y := \bigvee\lbrace z\mid z\otimes x \leq y\rbrace \] > > We know that this exists because \\(\mathcal{V}\\) has arbitrary joins. We have \\((A \otimes -) \dashv (A \multimap -)\\) from an old result back in [Lecture 6](https://forum.azimuthproject.org/discussion/1901/lecture-6-chapter-1-computing-adjoints/). \\( \qquad \blacksquare \\) > > The above argument doesn't need \\(\otimes\\) to distribute over \\(\bigvee\\) as far as I can tell. I believe it is necessary to define profunctor composition, however. I meant I didn't use the assumption that \\(\otimes\\) distributes in the little lemma. I didn't mean that I thought there was some closed monoidal partial order which didn't distribute. I hadn't thought about it. But I thought it was necessary to define composition, so I included it in my definition of *unital quantale* later inter comment #21. For what it's worth, using John's separate definition of quantale I tried to show \\(\otimes\\) distributes in [comment #1](https://forum.azimuthproject.org/discussion/comment/20224/#Comment_20224) of Lecture 63 assuming commutativity.`

I'm still not making myself clear. Your lemma says that having having arbitrary joins suffices, you do not need distributivity in order to be closed. But didn't you give an example in comment #29 with joins which is not closed? Does your example not contradict the lemma?

This is not about John's definition of quantale as he assumes closedness, by the adjoint functor theorem for posets, as you point out, this will have the distributivity property. We are focussing on your lemma and your example of a non-closed monoidal poset.

`I'm still not making myself clear. Your lemma says that having having arbitrary joins suffices, you do not need distributivity in order to be closed. But didn't you give an example in comment #29 with joins which is not closed? Does your example not contradict the lemma? This is not about John's definition of quantale as he assumes closedness, by the adjoint functor theorem for posets, as you point out, this will have the distributivity property. We are focussing on your lemma and your example of a non-closed monoidal poset.`

Okay, I understand.

This thing I tried to show in comment #21

This contradicts a counter example I invented in comment #13 in Lecture 61, and later mentioned in comment #29.

The lemma is wrong. Can I cross it out? If I define \(x \Rightarrow y := \bigvee\lbrace z\mid x\otimes z \leq y\rbrace\), then the most I can show is \(x \otimes z \leq y \text{ implies } z \leq x \Rightarrow y\).

As an aside, I feel a little honored you are scrutinizing me like this. This feels a bit like practice for actual journal review! It's just a shame I'm too dumb to come up with anything original so it's sort of wasted on me.

`> I'm still not making myself clear. Your lemma says that having having arbitrary joins suffices, you do not need distributivity in order to be closed. But didn't you give an example in comment #29 with joins which is not closed? Does your example not contradict the lemma? Okay, I understand. This thing I tried to show in [comment #21](https://forum.azimuthproject.org/discussion/comment/20204/#Comment_20204) > **Lemma.** If \\(\mathcal{V}\\) is monoidal partial order which also an [upper semilattice](https://en.wikipedia.org/wiki/Semilattice#Complete_semilattices) with arbitrary joins, then it is closed. This contradicts a counter example I invented in [comment #13](https://forum.azimuthproject.org/discussion/comment/20139/#Comment_20139) in Lecture 61, and later mentioned in comment #29. The lemma is wrong. Can I cross it out? If I define \\(x \Rightarrow y := \bigvee\lbrace z\mid x\otimes z \leq y\rbrace\\), then the most I can show is \\(x \otimes z \leq y \text{ implies } z \leq x \Rightarrow y\\). As an aside, I feel a little honored you are scrutinizing me like this. This feels a bit like practice for actual journal review! It's just a shame I'm too dumb to come up with anything original so it's sort of wasted on me.`

Matthew, I think crossing it out (but not deleting) with a note directing people to your comment 47 might be sensible. Can you prove the following? That is to say, is the following a theorem?

Or maybe even the following is true.

`Matthew, I think crossing it out (but not deleting) with a note directing people to your comment 47 might be sensible. Can you prove the following? That is to say, is the following a theorem? > If \\(\mathcal{V}\\) is a monoidal partial order which has all joins and for which the monoidal product distributes over joins, then \\(\mathcal{V}\\) is closed. Or maybe even the following is true. > Suppose \\(\mathcal{V}\\) is a monoidal partial order which has all joins, then \\(\mathcal{V}\\) is closed if and only if the monoidal product distributes over joins.`

Hey Simon,

Sure, I can try your proofs. I will try to prove the stronger statement.

A lot of this is just reproving the adjoint functor theorem for posets, but I am trying to internalize this stuff so I am reviewing it.

Proof.Let \(\mathcal{V} = (V, \leq, \otimes, I, \bigvee)\) be a monoidal partial order with arbitrary joins \(\bigvee\).

Closed\(\implies\)Distributivity: Assume \(\mathcal{V}\) is closed. Then \(\mathcal{V}\) has a residual \(\multimap : V \to V \to V\) such that \(a \otimes - \dashv a \multimap -\). Using this Galois connection we have$$ \begin{align} \bigvee (a \otimes x) \leq y & \iff \forall x. a \otimes x \leq y \\ & \iff \forall x. x \leq a \multimap y \\ & \iff \bigvee x \leq a \multimap y \\ & \iff a \otimes \bigvee x \leq y \end{align} $$ Hence \(\bigvee (a \otimes x) \leq y \iff a \otimes \bigvee x \leq y\).

Since \(\bigvee (a \otimes x) \leq \bigvee (a \otimes x) \) we have \(a \otimes \bigvee x \leq \bigvee (a \otimes x). \)

Moreover, because \(a \otimes \bigvee x \leq a \otimes \bigvee x \) we have \(\bigvee (a \otimes x) \leq a \otimes \bigvee x. \)

Hence \(\bigvee (a \otimes x) = a \otimes \bigvee x \) since \(\mathcal{V}\) is a partial order.

Distributivity\(\implies\)Closed: Assume that \(\mathcal{V}\) distributes \(\otimes\) over \(\bigvee\). To show that \(\mathcal{V}\) is closed, we need a right adjoint to \(a \otimes -\). Using the old result from Lecture 6, if the right adjoint \(a \multimap -\) does exist it is defined by:$$ a \multimap y := \bigvee\lbrace x\mid a\otimes x \leq y\rbrace $$ In order to establish \(a \otimes - \dashv a \multimap -\), we need to show:

$$ a \otimes x \leq y \iff x \leq a \multimap y $$ The forward direction is simple and does not rely on distributivity. Assume \(a \otimes x \leq y\). Then we know that \(x \in \lbrace x \mid a \otimes x \leq y \rbrace\) hence \( x \leq \bigvee \lbrace x \mid a \otimes x \leq y \rbrace \), which is the same as \(x \le a \multimap y\).

The converse requires distributivity. Assume \(x \leq \bigvee \lbrace x \mid a \otimes x \leq y \rbrace\). Since \(a \otimes -\) is monotonic we have

$$ a \otimes x \leq a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace $$ So it suffices to show \(a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace \leq y\).

Since \(\mathcal{V}\) is distributive by hypothesis, we have:

$$ a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace = \bigvee \lbrace a \otimes x \mid a \otimes x \leq y \rbrace $$ However we can see that \(y\) is an upper bound of \(\lbrace a \otimes x \mid a \otimes x \leq y \rbrace\), hence \( \bigvee \lbrace a \otimes x \mid a \otimes x \leq y \rbrace \leq y\), and thus the theorem by distributivity. \( \qquad \blacksquare \)

I have been thinking about the assumption that \(\mathcal{V}\) has arbitrary joins.

Is there a closed monoidal partial order which does not have arbitrary joins?

`Hey Simon, Sure, I can try your proofs. I will try to prove the stronger statement. A lot of this is just reproving the adjoint functor theorem for posets, but I am trying to internalize this stuff so I am reviewing it. > Suppose \\(\mathcal{V}\\) is a monoidal partial order which has all joins, then \\(\mathcal{V}\\) is closed if and only if the monoidal product distributes over joins. **Proof.** Let \\(\mathcal{V} = (V, \leq, \otimes, I, \bigvee)\\) be a monoidal partial order with arbitrary joins \\(\bigvee\\). **Closed** \\(\implies\\) **Distributivity**: Assume \\(\mathcal{V}\\) is closed. Then \\(\mathcal{V}\\) has a [residual](https://en.wikipedia.org/wiki/Residuated_lattice) \\(\multimap : V \to V \to V\\) such that \\(a \otimes - \dashv a \multimap -\\). Using this Galois connection we have \[ \begin{align} \bigvee (a \otimes x) \leq y & \iff \forall x. a \otimes x \leq y \\\\ & \iff \forall x. x \leq a \multimap y \\\\ & \iff \bigvee x \leq a \multimap y \\\\ & \iff a \otimes \bigvee x \leq y \end{align} \] Hence \\(\bigvee (a \otimes x) \leq y \iff a \otimes \bigvee x \leq y\\). Since \\(\bigvee (a \otimes x) \leq \bigvee (a \otimes x) \\) we have \\(a \otimes \bigvee x \leq \bigvee (a \otimes x). \\) Moreover, because \\(a \otimes \bigvee x \leq a \otimes \bigvee x \\) we have \\(\bigvee (a \otimes x) \leq a \otimes \bigvee x. \\) Hence \\(\bigvee (a \otimes x) = a \otimes \bigvee x \\) since \\(\mathcal{V}\\) is a partial order. **Distributivity** \\(\implies\\) **Closed**: Assume that \\(\mathcal{V}\\) distributes \\(\otimes\\) over \\(\bigvee\\). To show that \\(\mathcal{V}\\) is closed, we need a right adjoint to \\(a \otimes -\\). Using the old result from [Lecture 6](https://forum.azimuthproject.org/discussion/1901/lecture-6-chapter-1-computing-adjoints/), if the right adjoint \\(a \multimap -\\) does exist it is defined by: \[ a \multimap y := \bigvee\lbrace x\mid a\otimes x \leq y\rbrace \] In order to establish \\(a \otimes - \dashv a \multimap -\\), we need to show: \[ a \otimes x \leq y \iff x \leq a \multimap y \] The forward direction is simple and does not rely on distributivity. Assume \\(a \otimes x \leq y\\). Then we know that \\(x \in \lbrace x \mid a \otimes x \leq y \rbrace\\) hence \\( x \leq \bigvee \lbrace x \mid a \otimes x \leq y \rbrace \\), which is the same as \\(x \le a \multimap y\\). The converse requires distributivity. Assume \\(x \leq \bigvee \lbrace x \mid a \otimes x \leq y \rbrace\\). Since \\(a \otimes -\\) is monotonic we have \[ a \otimes x \leq a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace \] So it suffices to show \\(a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace \leq y\\). Since \\(\mathcal{V}\\) is distributive by hypothesis, we have: \[ a \otimes \bigvee \lbrace x \mid a \otimes x \leq y \rbrace = \bigvee \lbrace a \otimes x \mid a \otimes x \leq y \rbrace \] However we can see that \\(y\\) is an upper bound of \\(\lbrace a \otimes x \mid a \otimes x \leq y \rbrace\\), hence \\( \bigvee \lbrace a \otimes x \mid a \otimes x \leq y \rbrace \leq y\\), and thus the theorem by distributivity. \\( \qquad \blacksquare \\) ----------------------------- I have been thinking about the assumption that \\(\mathcal{V}\\) has arbitrary joins. Is there a closed monoidal partial order which does not have arbitrary joins?`

Matthew asked:

How about \(( [0,\infty), \ge, +, 0)\)? Just remove the initial/bottom element from \(\textbf{Cost}\). Does that work?

Ooops, that's a meet not a join.

How about \(( (-\infty,\infty), \ge, +, 0)\)?

`Matthew asked: > Is there a closed monoidal partial order which does not have arbitrary joins? How about \\(( [0,\infty), \ge, +, 0)\\)? Just remove the initial/bottom element from \\(\textbf{Cost}\\). Does that work? Ooops, that's a meet not a join. How about \\(( (-\infty,\infty), \ge, +, 0)\\)?`