Category Theory
Zulip Server
Archive

You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.


Stream: learning: questions

Topic: lifting a subset-valued operation


view this post on Zulip Naso (May 18 2023 at 02:23):

Let PP be the covariant powerset functor, and suppose we have an operation :X×XP(X)* : X \times X \to P(X).
We can lift this to an operation :P(X)×P(X)P(X)*' : P(X) \times P(X) \to P(X) by defining

ab={xyxayb} a *' b = \cup \{ x * y \mid x \in a \land y \in b \}

How can we express what's going on here in a categorical way?

view this post on Zulip Ralph Sarkis (May 18 2023 at 02:41):

You can factorize *' as

PX×PX×P(X×X)PPPXμXPPXPX \times PX \xrightarrow{\times} P(X\times X) \xrightarrow{P*} PPX \xrightarrow{\mu^P_X} PX

Where μP\mu^P is the multiplication of the monad PP. Also, the composition of the last two arrows is the extension of * to the free PP-algebra on X×XX\times X.

I am not sure if there is a nice way to see the first morphism that takes (a,b)(a,b) to a×ba \times b in a categorical way. It is a right inverse to the pairing Pπ1,Pπ2:P(X×X)PX×PX\langle P\pi_1,P\pi_2\rangle : P(X\times X) \to PX \times PX given by the universal property of the product.

view this post on Zulip Mike Shulman (May 18 2023 at 02:50):

I think this is a two-variable Kleisli extension for the monad PP. That is, given XP(Y)X \to P(Y) there is a unique way to extend it to a PP-algebra morphism P(X)P(Y)P(X) \to P(Y), and for a [[strong monad]] we can do this in two variables one after the other -- and when the monad is commutative the order doesn't matter. In functional programming syntax this would be

let x <- a in
let y <- b in
return (x * y)