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: defining an internal category without using pullbacks?


view this post on Zulip David Egolf (Jun 01 2024 at 22:16):

A monoid involving a set MM requires some multiplication function μ:M×MM\mu: M \times M \to M. Noticing this, we can be inspired to define a monoid internal to any category with products. Our multiplication for a monoid involving an object MM will be a morphism μ:M×MM\mu: M \times M \to M. However, we can generalize further and define a monoid in any monoidal category! Then the "multiplication" for a monoid involving an object MM in a monoidal category CC involves a morphism μ:MMM\mu: M \otimes M \to M. Here :C×CC\otimes: C \times C \to C is the functor that is part of the data that makes CC a monoidal category.

So, although our initial definition of a monoid involved a morphism from a product, it turns out we can define monoids internal to monoidal categories. And we don't need to use a product in the process! Instead, we can do this by making use of the "product-like" functor \otimes any monoidal category provides.

I am wondering if a similar thing can be done for categories instead of monoids. Now, in a category we can't compose all our morphisms: we can only compose a morphism bb after a morphism aa if the target of aa is the source of bb. To express this fact, one can form the pullback C1×C0C1C_1 \times_{C_0} C_1, which is the limit of the diagram C1tC0sC1C_1 \to_t C_0 \leftarrow_s C_1. Here C1C_1 is our collection of arrows and C0C_0 is our collection of objects, while s:C1C0s:C_1 \to C_0 tells us the source of any given arrow, and t:C1C0t:C_1 \to C_0 tells us the target of any given arrow. Assuming we have a set of objects and a set of arrows, C1×C0C1C_1 \times_{C_0} C_1 is then the set containing pairs of arrows (a,a)(a,a') such that t(a)=s(a)t(a)=s(a'). Each element of this set corresponds to a pair of composable arrows. Our composition of arrows can then be defined by a function c:C1×C0C1C1c:C_1 \times_{C_0} C_1 \to C_1 which sends each pair of composable arrows to its composite.

To define a category internal to some other category DD, we then ask for (among other things) some objects C1C_1 and C0C_0, and some morphisms s:C1C0s:C_1 \to C_0 and t:C1C0t:C_1 \to C_0. If DD has pullbacks, then we can form C1×C0C1C_1 \times_{C_0} C_1 as the limit (pullback) of the diagram C1tC0sC1C_1 \to_t C_0 \leftarrow_s C_1. And then we can define a "composition" morphism c:C1×C0C1C1c:C_1 \times_{C_0} C_1 \to C_1, and we are on our way to specifying some category internal to DD.

I am curious if we can do all this without requiring the pullback of C1tC0sC1C_1 \to_t C_0 \leftarrow_s C_1 to exist in DD. Instead, perhaps we could make use of a "pullback-like" functor P:DJDP:D^J \to D, where JJ is the category that looks like this (omitting identity arrows): 0100 \to 1 \leftarrow 0'. So DJD^J is the category of functors from JJ to DD, which is the category of diagrams of shape JJ in DD. If DD actually has pullbacks, then PP can really be the functor that sends each diagram in DD of shape JJ to its pullback. And then we can define the source and target of our composition morphism as c:P(C1tC0sC1)C1c:P(C_1 \to_t C_0 \leftarrow_s C_1) \to C_1.

But if DD doesn't have pullbacks, maybe sometimes we can still define a (generalized "category internal to DD". I'm hoping that a functor P:DJDP:D^J \to D that is "pullback-like" can be used instead, so that we can then define an category internal to DD using some composition morphism c:P(C1tC0sC1)C1c:P(C_1 \to_t C_0 \leftarrow_s C_1) \to C_1.

I am wondering these things:

Any thoughts are welcome!

view this post on Zulip Rémy Tuyéras (Jun 02 2024 at 00:32):

It feels like the tensor you might be after is given by the composition of spans of the form XC0X \rightrightarrows C_0 (the "category" of spans is a bicategory, so taking subbicategories on a single object will turn the compositions into tensors).

Specifically, you might want to consider the category of spans SpanC0={(f,g):XC0}\mathsf{Span}_{C_0} = \{(f,g):X \rightrightarrows C_0\} such that the pair of arrows (s,t):C1C0(s,t):C_1 \rightrightarrows C_0 is an object in this category SpanC0\mathsf{Span}_{C_0} and the composition of the category C1C_1 is given by an arrow μ:(s,t)(s,t)(s,t)\mu:(s,t) \otimes (s,t) \to (s,t) in SpanC0\mathsf{Span}_{C_0}.

view this post on Zulip Bryce Clarke (Jun 02 2024 at 04:23):

It is possible to define internal categories in a monoidal category with equalisers preserved by the tensor product: https://ncatlab.org/nlab/show/internal+category+in+a+monoidal+category

view this post on Zulip Rémy Tuyéras (Jun 02 2024 at 12:14):

Note that when I wrote the expression μ:(s,t)(s,t)(s,t)\mu:(s,t) \otimes (s,t) \to (s,t), what I really meant is the expression

μ:(s,t)(s,t)(s,t)\mu:(s,t) \circ (s,t) \to (s,t)

where the tensor \otimes is in fact the 1-composition \circ associated with the bicategory Span(Set)\mathsf{Span}(\mathbf{Set}). In other words, an internal category is a monad in the bicategory Span(Set)\mathsf{Span}(\mathbf{Set}). This viewpoint aligns with Bryce's suggestion and the link he provided.

To recover the type of formalism you specifically described, I would probably start from a category C\mathcal{C} and define Span(C)\mathsf{Span}(\mathcal{C}) as the 2-graph

Now, the operation P:DJDP:D^J \to D that you mention should arise from giving a formal bicategory structure to Span(C)\mathsf{Span}(\mathcal{C}). Like how we formalize the concept of monoidal category by abstracting the relations satisfied by a Cartesian product ×\times into some formal operation \otimes, here, you would equip the abstract category C\mathcal{C} with:

  1. an operation 1:Span(C)(A,B)×Span(C)(B,C)Span(C)(A,C)\odot_1:\mathsf{Span}(\mathcal{C})(A,B) \times \mathsf{Span}(\mathcal{C})(B,C) \to \mathsf{Span}(\mathcal{C})(A,C)
  2. an operation 2:Span(C)(A,B)(X,Y)×Span(C)(A,B)(Y,Z)Span(C)(A,B)(X,Z)\odot_2:\mathsf{Span}(\mathcal{C})(A,B)(X,Y) \times \mathsf{Span}(\mathcal{C})(A,B)(Y,Z) \to \mathsf{Span}(\mathcal{C})(A,B)(X,Z)

such that 1\odot_1 and 2\odot_2 satisfy the axioms for bicategories. Then, your internal category in C\mathcal{C} is a monad in the bicategory Span(C)\mathsf{Span}(\mathcal{C}).

Note that the operation P:DJDP:D^J \to D is recovered by taking P=1P = \odot_1 where JJ captures a binary product and DD is Span(C)\mathsf{Span}(\mathcal{C}) (up to some indexation).

view this post on Zulip David Egolf (Jun 02 2024 at 15:45):

Thanks @Rémy Tuyéras and @Bryce Clarke for your comments! It will take me some time to absorb what you both just said. Once I've given your posts a proper read, I hope to respond more fully.

view this post on Zulip David Egolf (Jun 02 2024 at 16:38):

Rémy Tuyéras said:

It feels like the tensor you might be after is given by the composition of spans of the form XC0X \rightrightarrows C_0 (the "category" of spans is a bicategory, so taking subbicategories on a single object will turn the compositions into tensors).

(I'm not yet comfortable with bicategories, so it's challenging for me to understand your comments above! But this is a good chance for me to get some practice with these concepts!)

If I understand correctly, you are introducing the bicategory of spans Span(D)\mathsf{Span}(D). Then the idea is to focus attention on the endo-category of C0C_0, having objects that are spans from C0C_0 to C0C_0. This endo-category will in fact be a monoidal category.

Referencing "2-Dimensional Categories" (by Johnson and Yau), page 31, it looks like horizontal composition of 1-cells and 2-cells in Span(C)\mathsf{Span}(C) (for some category CC) makes use of pullbacks in CC. Our category DD doesn't necessarily have pullbacks. So, I'm worried that we won't be able to form the bicategory of spans in DD.

view this post on Zulip David Egolf (Jun 02 2024 at 17:13):

Rémy Tuyéras said:

In other words, an internal category is a monad in the bicategory Span(Set)\mathsf{Span}(\mathbf{Set}). This viewpoint aligns with Bryce's suggestion and the link he provided.

I did not know that one could define a monad in a bicategory! I was only familiar with the definition: "A monad is a monoid in the monoidal category of endofunctors of some category". But, noticing that Cat\mathsf{Cat} is a bicategory, and that the endocategory of any object in a bicategory is monoidal, we can generalize the definition: a monad in a bicategory is a monoid internal to the (monoidal) endocategory of some object in that bicategory. Very cool!

view this post on Zulip David Egolf (Jun 02 2024 at 17:18):

I'm going to take a break now. Here's my understanding of things so far, part way through reading your post:

view this post on Zulip Rémy Tuyéras (Jun 02 2024 at 17:27):

Referencing "2-Dimensional Categories" (by Johnson and Yau), page 31, it looks like horizontal composition of 1-cells and 2-cells in Span(C)\mathsf{Span}(C) (for some category CC) makes use of pullbacks in CC. Our category DD doesn't necessarily have pullbacks. So, I'm worried that we won't be able to form the bicategory of spans in DD.

Glad you found a reference that details the definition for Span(C)\mathsf{Span}(C), I will try to stick to their Example 2.1.22 as a reference (if needed). Also, for clarity, I will use curly notations (e.g. C\mathcal{C} and D\mathcal{D}) to refer to the external context. In your case, the external context is given by the category C=Set\mathcal{C} = \mathbf{Set}. Then, I will use standard math symbols (e.g. CC and DD) to refer to the internal context, meaning some objects living in the categories denoted with the curly notations. For example, the sets C1C_1 and C0C_0 in C=Set\mathcal{C} = \mathbf{Set} are part of the internal context because they will be used to define internal categories in C\mathcal{C}.

Now, to go back to your question, the framework I am proposing is not exactly the same as that used in Example 2.1.22. In that example, they assume to have pullbacks in order to show that compositions exist. In the framework I proposed, I do not assume any pullback, which forces me to request axioms to hold in order for the "graph of spans" to be a bicategory.

Note that this is the same idea that you suggested in your first message. To come up with monoidal categories, you look at how a Cartesian product behaves. First, you realize that the map (X,Y)X×Y(X,Y) \mapsto X \times Y is a bifunctor. Then, you realize that the universality of products gives you canonical maps
αX,Y,Z:X×(Y×Z)(X×Y)×Z\alpha_{X,Y,Z}:X \times (Y \times Z) \cong (X \times Y) \times Z
λX:I×XX\lambda_X:I \times X \cong X
ρX:X×IX\rho_X:X \times I \cong X
Once you understand how all this works, you forget about products, and you come up with the notion of monoidal categories by formally requesting a functor \otimes and the map α\alpha, λ\lambda and ρ\rho as starting data for your structure.

We do the same for the bicategory structure associated with spans. Specifically, once we are done reviewing Example 2.1.22, we want to completely forget about pullbacks and recover the structural data presented in that example formally. This gives rise to a definition of the form category ++ some structure. Maybe we could call it a spanoidal category? (I do not necessarily like that name, but hopefully it helps to see how we replicate the process above).

Before I define what a spanoidal category is, let us observe that for any category C\mathcal{C} we can define the 2-graph FSpan(C)\mathsf{FSpan}(\mathcal{C}) (stands for formal spans) such that its objects are those of C\mathcal{C}, its 1-arrows, from AA to BB, are given by pairs AXBA \leftarrow X \rightarrow B of morphisms in C\mathcal{C} and its 2-arrows, from a 1-arrow AXBA \leftarrow X \rightarrow B to a 1-arrow AYBA \leftarrow Y \rightarrow B, are given by morphisms XYX \to Y in C\mathcal{C} making the underlying triangles commute. And that is it for the definition of FSpan(C)\mathsf{FSpan}(\mathcal{C}) (no compositions and no pullbacks used).

Now, we define as spanoidal category C\mathcal{C} as a category equipped with two functions

  1. an operation 1:FSpan(C)(A,B)×FSpan(C)(B,C)FSpan(C)(A,C)\odot_1​:\mathsf{FSpan}(\mathcal{C})(A,B)\times \mathsf{FSpan}(\mathcal{C})(B,C)\to \mathsf{FSpan}(\mathcal{C})(A,C)
  2. an operation 2:FSpan(C)(A,B)(X,Y)×FSpan(C)(A,B)(Y,Z)FSpan(C)(A,B)(X,Z)\odot_2​:\mathsf{FSpan}(\mathcal{C})(A,B)(X,Y)\times \mathsf{FSpan}(\mathcal{C})(A,B)(Y,Z)\to\mathsf{FSpan}(\mathcal{C})(A,B)(X,Z)

such that 1\odot_1 and 2\odot_2 satisfy all the axioms for bicategories. These axioms are stated in Definition 2.1.3 of (Johnson and Yau) and we simply request them to hold for the operations 1\odot_1 and 2\odot_2 (no pullbacks have been used). And this defines what a spanoidal category is.

Finally, we choose to formally define an internal category in a spanoidal category C\mathcal{C} as a monad in the associated bicategory FSpan(C) \mathsf{FSpan}(\mathcal{C}).

view this post on Zulip Julius Hamilton (Jun 02 2024 at 17:40):

the "multiplication" for a monoid involving an object MM in a monoidal category CC involves a morphism μ:MMM\mu: M \otimes M \to M. Here :C×CC\otimes: C \times C \to C is the functor that is part of the data that makes CC a monoidal category.

I think you are saying:

I am wondering if a similar thing can be done for categories instead of monoids.

So, we can define any binary operation in a categorical way by first having products, then determining commutative diagrams reflecting certain properties, such as associativity, commutativity, etc. Then we take it even further by replacing the category-internal constructions just to functors, with those same properties?

I need to wrap my head around this.

Now, in a category we can't compose all our morphisms: we can only compose a morphism bb after a morphism aa if the target of aa is the source of bb. To express this fact, one can form the pullback C1×C0C1C_1 \times_{C_0} C_1, which is the limit of the diagram C1tC0sC1C_1 \to_t C_0 \leftarrow_s C_1. Here C1C_1 is our collection of arrows and C0C_0 is our collection of objects, while s:C1C0s:C_1 \to C_0 tells us the source of any given arrow, and t:C1C0t:C_1 \to C_0 tells us the target of any given arrow. Assuming we have a set of objects and a set of arrows, C1×C0C1C_1 \times_{C_0} C_1 is then the set containing pairs of arrows (a,a)(a,a') such that t(a)=s(a)t(a)=s(a'). Each element of this set corresponds to a pair of composable arrows. Our composition of arrows can then be defined by a function c:C1×C0C1C1c:C_1 \times_{C_0} C_1 \to C_1 which sends each pair of composable arrows to its composite.

Would like to understand this. We have s and t, mapping objects to their sources and targets. You can define a set of all pairs of composable arrows. The category is defined by mapping composable arrows to their composition.

That seems pretty brilliant. I know I’ll be going over this mentally for a few days till it feels more clear and natural and obvious to me.

view this post on Zulip David Egolf (Jun 03 2024 at 16:35):

Julius Hamilton said:

You can make a category with finite products into a monoidal category by letting the product be the monoidal product. Similarly, you can make a category with finite coproducts into a monoidal category by letting the coproduct be the monoidal product. (See here, for example.)

In general though, the monoidal product doesn't need to be the product or coproduct in the category we are working in. (Although I wouldn't say that it is an "arbitrary operation").

view this post on Zulip David Egolf (Jun 03 2024 at 16:43):

Julius Hamilton said:

I find the concept of a monoid in a monoidal category exciting. That's because of this: you can get many interesting structures just by considering monoids in different monoidal categories! Here are a few structures you can form by considering monoids in appropriate monoidal categories:

These examples were taken from this list.

If you have some monoidal category of interest, you can arrive at a potentially interesting notion just by considering what a monoid would look like in that category! (I call this sort of thing an "idea machine".)

view this post on Zulip David Egolf (Jun 03 2024 at 16:48):

Julius Hamilton said:

Given a monoidal category CC, one can form the category Mon(C)\mathsf{Mon}(C) of monoids in CC, where:

I learned recently that if CC is a "braided" monoidal category, then Mon(C)\mathsf{Mon}(C) is not just a category - it's a monoidal category!

view this post on Zulip David Egolf (Jun 03 2024 at 16:56):

Rémy Tuyéras said:

Now, to go back to your question, the framework I am proposing is not exactly the same as that used in Example 2.1.22. In that example, they assume to have pullbacks in order to show that compositions exist. In the framework I proposed, I do not assume any pullback, which forces me to request axioms to hold in order for the "graph of spans" to be a bicategory.

Ah, that makes sense! And, just to review:

view this post on Zulip David Egolf (Jun 03 2024 at 17:03):

Rémy Tuyéras said:

We do the same for the bicategory structure associated with spans. Specifically, once we are done reviewing Example 2.1.22, we want to completely forget about pullbacks and recover the structural data presented in that example formally. This gives rise to a definition of the form category ++ some structure. Maybe we could call it a spanoidal category? (I do not necessarily like that name, but hopefully it helps to see how we replicate the process above).

Monoidal categories are the categories in which we can define internal monoids. Our goal is to figure out the categories in which we can define internal categories. So I'd be tempted to call these things "categoryial" categories by analogy with "monoidal categories", although I'm not convinced that this is a good name :laughing:.

view this post on Zulip David Egolf (Jun 03 2024 at 17:07):

(I'll stop here for today, as I'm getting tired. But I look forward to working through the rest of your post!)

view this post on Zulip John Baez (Jun 03 2024 at 17:09):

David Egolf said:

I learned recently that if CC is a "braided" monoidal category, then Mon(C)\mathsf{Mon}(C) is not just a category - it's a monoidal category!

Yes, that's cool - and it's good to see how we use the braiding when trying to make the tensor product of monoids in CC into a monoid in CC.

A related fact is: when CC is a symmetric monoidal category then Mon(C)\mathsf{Mon}(C) is a symmetric monoidal category.

For example this is true for C=(Set,×)C = (\mathsf{Set}, \times). Then a monoid in CC is called just a 'monoid', and it's well known that if M,NM, N are monoids, so is M×NM \times N, where we multiply two elements of M×NM \times N by

(m,n)(m,n)=(mm,nn)(m,n) (m', n') = (mm', nn')

(See how we used the braiding in C=(Set,×)C = (\mathsf{Set}, \times) to braid nn past mm' in this formula?)

Furthermore, we have an isomorphism of monoids

M×NN×MM \times N \cong N \times M

making the category of monoids symmetric monoidal.

view this post on Zulip Rémy Tuyéras (Jun 03 2024 at 20:08):

Monoidal categories are the categories in which we can define internal monoids. Our goal is to figure out the categories in which we can define internal categories. So I'd be tempted to call these things "categoryial" categories by analogy with "monoidal categories", although I'm not convinced that this is a good name :laughing:.

I have not thoroughly checked the details, but I am pretty sure that these "categoryial/spanoidal categories" intersect with a generalized variant of duoidal categories, also called 2-monoidal categories. Specifically, the two operations associated with a duoidal structure would be obtained by restricting 1\odot_1 and 2\odot_2 to some given object A=B=A0A = B = A_0. [...] The only discrepancy here is that duoidal categories are more on the lax side.

In the same spirit as Bénabou's generalization of monoidal categories to bicategories, I would almost be tempted to have the name related to duoidal categories, 2-monoidal categories, bicategories, or some kind of 2-based name.

Also, on a lighter note, I asked ChatGPT, and this is what it gave me :sweat_smile:

view this post on Zulip David Egolf (Jun 05 2024 at 16:22):

Rémy Tuyéras said:

such that 1\odot_1 and 2\odot_2 satisfy all the axioms for bicategories. These axioms are stated in Definition 2.1.3 of (Johnson and Yau) and we simply request them to hold for the operations 1\odot_1 and 2\odot_2 (no pullbacks have been used). And this defines what a spanoidal category is.

Finally, we choose to formally define an internal category in a spanoidal category C\mathcal{C} as a monad in the associated bicategory FSpan(C) \mathsf{FSpan}(\mathcal{C}).

I finally got around to finishing reading this! If I understand correctly 1\odot_1 provides our horizontal composition of 1-arrows, and 2\odot_2 provides our horiziontal composition of 2-arrows.

Now that we have a category like our original category of spans (which used pullbacks, and which facilitated a definition of an internal category), we can define a "generalized internal category" in C\mathcal{C} using FSpan(C)\mathsf{FSpan}(\mathcal{C}). Cool!

view this post on Zulip David Egolf (Jun 05 2024 at 16:25):

Rémy Tuyéras said:

In the same spirit as Bénabou's generalization of monoidal categories to bicategories, I would almost be tempted to have the name related to duoidal categories, 2-monoidal categories, bicategories, or some kind of 2-based name.

Also, on a lighter note, I asked ChatGPT, and this is what it gave me :sweat_smile:

I like using ChatGPT to help me think of names for things. It's already good at making up things that sound like they should be right (even if they are wrong!), which is probably a relevant skill to have when inventing names.

Maybe it would be easier to think of a good name if we could dream up some more examples of these things.

view this post on Zulip David Egolf (Jun 05 2024 at 16:28):

One more question occurs to me regarding these "spanoidal" (or whatever we wish to call them!) categories that let us talk about categories internal to them: Can we find any example of such a category C\mathcal{C} where our horizontal composition operations 1\odot_1 and 2\odot_2 are not induced by pullbacks in C\mathcal{C}?

If we can, it might be fun to work out what particular structure our generalized notation of internal category gives when applied to C\mathcal{C}.

view this post on Zulip David Egolf (Jun 05 2024 at 16:44):

John Baez said:

A related fact is: when CC is a symmetric monoidal category then Mon(C)\mathsf{Mon}(C) is a symmetric monoidal category.

Yes, I also ran into this recently! At first I thought it was quite exciting that we could get an infinite sequence of symmetric monidal categories like this: CC, Mon(C)\mathsf{Mon}(C), Mon(Mon(C))\mathsf{Mon}(\mathsf{Mon}(C))... However, the book I was reading ("Monoidal Functors, Species and Hopf Algebras" by Aguiar and Mahajan) says this:

In the symmetric case the monoid and comonoid constructions can be further iterated, but no new categories are obtained beyond those of (co)commutative (co, bi)monoids.

So, it seems like our infinite sequence of symmetric monoidal categories stops giving us new categories rather quickly.

view this post on Zulip John Baez (Jun 05 2024 at 20:32):

Yes, a simple and beautiful argument called the [[Eckmann-Hilton argument]] shows that if CC is symmetric monoidal, a monoid in Mon(C)\mathsf{Mon}(C) is the same as a commutative monoid in CC. So Mon(Mon(C))\mathsf{Mon}(\mathsf{Mon}(C)) is the category of commutative monoids in CC.

Then a monoid in Mon(Mon(C))\mathsf{Mon}(\mathsf{Mon}(C)) is again just a commutative monoid in CC, so we don't get anything new:

Mon(Mon(Mon(C)))Mon(Mon(C)) \mathsf{Mon}(\mathsf{Mon}(\mathsf{Mon}(C))) \simeq \mathsf{Mon}(\mathsf{Mon}(C))

view this post on Zulip John Baez (Jun 05 2024 at 20:35):

This game becomes much more interesting as we move right on the periodic table of n-categories, and I could talk about that for a long time, but here we are in the left-most column so the fun stops fairly soon:

.

view this post on Zulip John Baez (Jun 05 2024 at 20:48):

However, we've already been peeking a bit into the next column, since we needed some facts:

and you might wonder how braided monoidal categories get into the game.

view this post on Zulip Rémy Tuyéras (Jun 05 2024 at 23:11):

David Egolf said:

One more question occurs to me regarding these "spanoidal" (or whatever we wish to call them!) categories that let us talk about categories internal to them: Can we find any example of such a category C\mathcal{C} where our horizontal composition operations 1\odot_1 and 2\odot_2 are not induced by pullbacks in C\mathcal{C}?

If we can, it might be fun to work out what particular structure our generalized notation of internal category gives when applied to C\mathcal{C}.

Instead of strict pullbacks, we can take pullbacks up to some kind of diagrammatic property. To formalize this, I will take Γ\Gamma to be that diagrammatic property. It is important to remember that the property Γ\Gamma will be considered fixed once passed this introductory paragraph. Here are examples of such properties; we will say that:

"an arrow θ\theta (in a given category) satisfies the property Γ\Gamma"

to mean one of the following statements:

  1. θ\theta is an identity (this will recover strict pullbacks)
  2. θ\theta is an isomorphism (this will recover pseudo pullbacks)
  3. θ\theta is a retraction (unknown)
  4. θ\theta is any arrow in the category (unknown)

You can even make up your own property Γ\Gamma as long as that property includes all identities (and is optionally preserved by all functors).

Now, let us fix that property Γ\Gamma (just take one of the items listed above) and let us take C=Cat\mathcal{C} = \mathbf{Cat}. The property Γ\Gamma now being fixed, we want to define the operation

1:Span(Cat)(A,B)×Span(Cat)(B,C)Span(Cat)(A,C)\odot_1:\mathsf{Span}(\mathbf{Cat})(A,B) \times \mathsf{Span}(\mathbf{Cat})(B,C) \to \mathsf{Span}(\mathbf{Cat})(A,C)

to be induced by the "pseudo" pullback relative to the property Γ\Gamma.

Specifically, let us consider two spans S0=(F0:X0A,G0:X0B)S_0 = (F_0:X_0 \to A,G_0:X_0 \to B) and S1=(F1:X1B,G1:X1C)S_1 = (F_1:X_1 \to B,G_1:X_1 \to C). The Γ\Gamma-pullback of G0G_0 and F1F_1 is given by the category X0BX1X_0 \otimes_B X_1 whose objects are triples (x0,θ,x1)(x_0,\theta,x_1) where

  1. x0obj(X0)x_0 \in \mathsf{obj}(X_0)
  2. x1obj(X1)x_1 \in \mathsf{obj}(X_1)
  3. θ\theta is an arrow G0(x0)F1(x1)G_0(x_0) \to F_1(x_1) in BB satisfying the property Γ\Gamma

and whose arrows (x0,θ,x1)(y0,ϕ,y1)(x_0,\theta,x_1) \to (y_0,\phi,y_1) are pairs (f0,f1)(f_0,f_1) where

  1. f0:x0y0f_0:x_0 \to y_0 in X0X_0
  2. f1:x1y1f_1:x_1 \to y_1 in X1X_1
  3. such that ϕG0(f0)=F1(f1)θ\phi \circ G_0(f_0) = F_1(f_1) \circ \theta

Now, the composition 1\odot_1 is given by the following span (I omitted the obvious projections):

S11S0=(F0:X0BX1X0A,G1:X0BX1X1C)S_1 \odot_1 S_0 = (F_0:X_0 \otimes_B X_1 \to X_0 \to A,G_1:X_0 \otimes_B X_1 \to X_1 \to C)

We can check that there is an isomorphism of spans as follows:

S21(S11S0)(S21S1)1S0S_2 \odot_1 (S_1 \odot_1 S_0) \to (S_2 \odot_1 S_1) \odot_1 S_0
((x0,θ,x1),θ,x2)(x0,θ,(x1,θ,x2))((x_0,\theta,x_1),\theta',x_2) \mapsto (x_0,\theta,(x_1,\theta',x_2))

In other words, we have a composition that is associative up to an invertible 2-cell. Our only real obstacle are the identities. Ideally, we would want the following span of identities to be our identity on AA:

1A=(idA,idA)\mathbf{1}_A = (\mathsf{id}_A,\mathsf{id}_A).

First, note that the span A1A1S0BA \leftarrow \mathbf{1}_A \odot_1 S_0 \rightarrow B maps the object (a,θ,x0)(a,\theta,x_0) in AAX0A \otimes_A X_0, where the arrow θ:aF0(x0)\theta:a \to F_0(x_0) satisfies the property Γ\Gamma, to:

There is also a functor X01AAX0X_0 \to \mathbf{1}_A \otimes_A X_0 induced by the mapping

x0(F0(x0),idF0(x0),x0)x_0 \mapsto (F_0(x_0),\mathsf{id}_{F_0(x_0)},x_0).

While this functor induces a 2-cell S01A1S0S_0 \to \mathbf{1}_A \odot_1 S_0 in Span(Cat)\mathsf{Span}(\mathbf{Cat}), this 2-cell is unfortunately not invertible. We conclude similarly for the 2-cell S0S011AS_0 \to S_0 \odot_1 \mathbf{1}_A.

Despite this defect, we should not give up on spanoidal categories. We just need to require the identities to be left-biased oplax, which means that the spanoidal category structure only requires (coherent) 2-cells of the following form:

SS1idS \to S \odot_1 \mathsf{id} and Sid1SS \to \mathsf{id} \odot_1 S

The reason for this slight modification is that the commutative diagrams defining monads do not need identity endomorphisms. In fact, we could say that a monad is given by two 2-cells as follows:

μ:TTT\mu: T \circ T \Rightarrow T and η:idT\eta: \mathsf{id} \Rightarrow T

such that we define TηT\eta as the obvious composition TTidTTT \Rightarrow T \circ \mathsf{id} \Rightarrow T \circ T and ηT\eta T as the obvious composition TidTTTT \Rightarrow \mathsf{id} \circ T \Rightarrow T \circ T.

To finish with the details of this example, let us check that the operation 1\odot_1 is compatible with the 2-cells. To see this, let us note that, for any pair H0:S0T0H_0:S_0 \to T_0 and H1:S1T1H_1:S_1 \to T_1 of 2-cells, where

T0=(F0:Y0A,G0:Y0B)T_0 = (F_0':Y_0 \to A,G_0':Y_0 \to B) and T1=(F1:Y1B,G1:Y1C)T_1 = (F_1':Y_1 \to B,G_1':Y_1 \to C),

we have the morphism of spans

H11H0:S11S0T11T0H_1 \odot_1 H_0:S_1 \odot_1 S_0 \to T_1 \odot_1 T_0

induced by the mapping (x0,θ,x1)(H0(x0),θ,H1(x1))(x_0,\theta,x_1) \mapsto (H_0(x_0),\theta,H_1(x_1)). And if we consider two extra morphisms H0H_0' and H1H_1' that compose with H0H_0 and H1H_1 (respectively), then we can check that the following identity holds.

(H1H1)1(H0H0)=(H11H0)(H11H0)(H_1' \circ H_1) \odot_1 (H_0' \circ H_0) = (H_1' \odot_1 H_0' ) \circ (H_1 \odot_1 H_0)

The previous relation defines an interchange law and since we are trying to recover a bicategory-like structure, let us take the obvious choice 2=\odot_2 = \circ. I will stop checking the details from here, but at this point, I want to believe that we have a bicategory-like structure with some left-biased oplax identities, and a concept of monad we can use to define internal categories.

Now, if all the details above check out, the next question is: given that an internal category in Cat\mathbf{Cat} is a double category, what is a monad in the spanoidal category Cat\mathbf{Cat} defined above? (I will stop here though)

view this post on Zulip David Egolf (Jun 06 2024 at 15:36):

Wow @Rémy Tuyéras! Thanks for typing that all out in detail! I look forward to working through your post carefully. (Although today I need to rest up.) Once I understand your post a bit more, I might try working out the idea I currently have for getting an example of a spanoidal category. Namely, I want to also try working in a poset (or maybe a category of functors to a poset from some fixed category?), which might provide a simpler setting that still conveys some of the intuition involved.

view this post on Zulip David Egolf (Jun 21 2024 at 14:38):

I wanted to work a little bit on this thread again, so that I don't forget about it! Above, @Rémy Tuyéras mentioned the concept of a "pseudopullback" relative to some property Γ\Gamma. I had never heard of pseudopullbacks before!

view this post on Zulip David Egolf (Jun 21 2024 at 14:42):

Referencing "Pullbacks equivalent to pseudopullbacks" by Joyal and Street, which was linked above: the authors begin by discussing the concept of "pseudopullback" in some 2-category of categories. For reference, here is a picture of a relevant diagram:
diagram

view this post on Zulip David Egolf (Jun 21 2024 at 14:45):

In this setting, I'd expect the usual pullback of ff and gg to be a category where:

view this post on Zulip David Egolf (Jun 21 2024 at 14:50):

The pseudopullback discussed in the introduction of the above-mentioned paper is defined similarly, but we relax the above equality condition on objects. Instead, we only require f(a)f(a) and g(x)g(x) to be isomorphic, and we keep track of the isomorphism involved. So, the pseudopullback is a category where:

view this post on Zulip David Egolf (Jun 21 2024 at 14:54):

I would have expected the condition on morphisms to be stated differently. I would have expected morphisms to be triples (αA1,θ,ξX1)(\alpha \in A_1, \theta', \xi \in X_1) such that θ\theta' provides some "isomorphism" from f(α)f(\alpha) to g(ξ)g(\xi), for some notion of isomorphism between morphisms. Maybe that's still what's going on here? I'm not sure!

view this post on Zulip David Egolf (Jun 21 2024 at 14:59):

I note that @Rémy Tuyéras uses a similar pattern above to define a pseudopullback with respect to some property Γ\Gamma. So it would be nice to better understand the reasoning that led us to defining morphisms in this way in the pseudopullback category!

view this post on Zulip David Egolf (Jun 21 2024 at 15:06):

In case it helps, here is a picture visualizing the situation where we have a morphism in our pseudopullback from (a,θ,x)(a, \theta, x) to (b,ϕ,y)(b, \phi, y):
picture

This diagram commutes when (α,ξ)(\alpha, \xi) provides a morphism from (a,θ,x)(a, \theta, x) to (b,ϕ,y)(b, \phi, y). Note that θ\theta and ϕ\phi are isomorphisms.

view this post on Zulip David Egolf (Jun 21 2024 at 15:14):

If we work in the arrow category of CC, Arr(C)\mathsf{Arr(C)}, then a commutative square like the one above is a morphism from f(α)f(\alpha) to g(ξ)g(\xi). Further, since θ\theta and ϕ\phi are both isomorphisms, this morphism is in fact an isomorphism from f(α)f(\alpha) to g(ξ)g(\xi)!

view this post on Zulip David Egolf (Jun 21 2024 at 15:16):

I think that helps me better understand morphisms in our pseudopullback category! A morphism in our pseudopullback is a pair (α,ξ):(a,θ,x)(b,ϕ,y)(\alpha, \xi):(a, \theta, x) \to (b, \phi, y) such that we have an isomorphism in Arr(C)\mathsf{Arr}(C) from f(α)f(\alpha) to g(ξ)g(\xi) induced by θ\theta and ϕ\phi.

(I'll stop here for today!)

view this post on Zulip Rémy Tuyéras (Jun 21 2024 at 19:13):

In my last post, I gave a detailed description of a specific class of examples for spanoidal structures in Cat\mathbf{Cat}. However, we can generalize these constructions to any category C\mathcal{C}.

Specifically, given a fixed category C\mathcal{C}, we first need to equip ourselves with a function D:Obj(C)Desc(C)\mathbf{D}:\mathsf{Obj}(\mathcal{C}) \to \mathsf{Desc}(\mathcal{C}) where:

  1. Obj(C)\mathsf{Obj}(\mathcal{C}) denotes the class of objects of C\mathcal{C};
  2. Desc(C)\mathsf{Desc}(\mathcal{C}) denotes the class of reflexive 1-graphs in C\mathcal{C}, where

Additionally, our function D:Obj(C)Desc(C)\mathbf{D}:\mathsf{Obj}(\mathcal{C}) \to \mathsf{Desc}(\mathcal{C}) must be such that, for every object Aobj(C)A \in \mathsf{obj}(\mathcal{C}), the reflexive 1-graph D(A)\mathbf{D}(A) is of the form DAAD_A \rightrightarrows A (in other words, the set of objects of the 1-graph is given by the set AA).

Now, this function D\mathbf{D} is meant to abstract away the Γ\Gamma property that I used in my previous post. This abstraction is done by embedding the Γ\Gamma property into the language of spans. Specifically, the 1-graph structure

D(A):DAA\mathbf{D}(A):D_A \rightrightarrows A

gives us a 1-cell D(A):AA\mathbf{D}(A):A \nrightarrow A in the 2-graph Span(C)\mathsf{Span}(\mathcal{C}) and the reflexive structure, given by the arrow i:ADAi:A \to D_A, gives us a 2-cell ιA:1AD(A)\iota_A:\mathbf{1}_A \Rightarrow \mathbf{D}(A) in the 2-graph Span(C)\mathsf{Span}(\mathcal{C}). We will use this 1-cell and 2-cell later, but before continuing, I will make a brief excursus.


Note: I use the notation Desc(C)\mathsf{Desc}(\mathcal{C}) to refer to the concept of descent data. Descent data typically describes information that is intended to be "glued" together. However, the descent data encoded by the 1-graph D(A):DAA\mathbf{D}(A): D_A \rightrightarrows A only provides the "glue" itself, not the actual process of combining these gluings, which is what is usually done.

For example, in the literature, this descent data is often used to define pseudolimits, which in turn are used to define stacks (a generalization of sheaves to functors UCatU \to \mathbf{Cat}). Essentially, the construction D(A)\mathbf{D}(A) can intersect with many topics that are discussed in this forum or on the nLab.


One way to equip C\mathcal{C} with a spanoidal structure is to assume that C\mathcal{C} has pullbacks (I know, this sounds like I am cheating, but I am really not). Specifically:

  1. the category Span(C)\mathsf{Span}(\mathcal{C}) has a bicategory structure (where the 1-compositions are given by pullbacks and the 2-compositions are induced by the compositions of C\mathcal{C}). Let us denote the 1-composition for this bicategory structure as \square (a square notation to refer to pullback squares :smirk:).
  2. then, we can generate a new spanoidal structure by using the bicategory structure (Span(C),,)(\mathsf{Span}(\mathcal{C}),\square,\circ), namely by defining a new 1-composition as follows:

    1:Span(C)(A,B)×Span(C)(B,C)Span(C)(A,C)\odot_1:\mathsf{Span}(\mathcal{C})(A,B) \times \mathsf{Span}(\mathcal{C})(B,C) \to \mathsf{Span}(\mathcal{C})(A,C)
    ((f,g),(u,v))(f,g)D(B)(u,v)((f,g) , (u,v)) \mapsto (f,g) \,\square \, \mathbf{D}(B)\,\square \,(u,v)

    such that the left-biased oplax unitors that I described in my previous post are obtained by 1-composing the 2-cells ιX:1XD(X)\iota_X:\mathbf{1}_X \Rightarrow \mathbf{D}(X) with any 1-cell (f,g):AB(f,g):A \nrightarrow B on the left and right, respectively:

    (f,g)ιB:(f,g)(f,g)D(B)(f,g) \,\square\, \iota_B: (f,g) \Rightarrow (f,g) \,\square \,\mathbf{D}(B) ... which gives a 2-cell (f,g)(f,g)11B(f,g) \Rightarrow (f,g) \odot_1 \mathbf{1}_B
    ιA(f,g):(f,g)D(A)(f,g)\iota_A \,\square\, (f,g): (f,g) \Rightarrow \mathbf{D}(A) \,\square \,(f,g) ... which gives a 2-cell (f,g)1A1(f,g)(f,g) \Rightarrow \mathbf{1}_A \odot_1 (f,g)

view this post on Zulip David Egolf (Jul 10 2024 at 22:34):

Thanks again, @Rémy Tuyéras ! Your most recent post again looks quite interesting! I'm afraid I'm still working to understand the details of your earlier posts. But I'm excited to understand what you're saying, so I'd like to work on this a bit more.

Going back to a much earlier post, I am still trying to understand this:

Rémy Tuyéras said:

Now, we define as spanoidal category C\mathcal{C} as a category equipped with two functions

  1. an operation 1:FSpan(C)(A,B)×FSpan(C)(B,C)FSpan(C)(A,C)\odot_1​:\mathsf{FSpan}(\mathcal{C})(A,B)\times \mathsf{FSpan}(\mathcal{C})(B,C)\to \mathsf{FSpan}(\mathcal{C})(A,C)
  2. an operation 2:FSpan(C)(A,B)(X,Y)×FSpan(C)(A,B)(Y,Z)FSpan(C)(A,B)(X,Z)\odot_2​:\mathsf{FSpan}(\mathcal{C})(A,B)(X,Y)\times \mathsf{FSpan}(\mathcal{C})(A,B)(Y,Z)\to\mathsf{FSpan}(\mathcal{C})(A,B)(X,Z)

such that 1\odot_1 and 2\odot_2 satisfy all the axioms for bicategories. These axioms are stated in Definition 2.1.3 of (Johnson and Yau) and we simply request them to hold for the operations 1\odot_1 and 2\odot_2 (no pullbacks have been used).

I'm looking at Definition 2.1.3 of "2-Dimensional Categories" (by Johnson and Yau), and trying to spot where 1\odot_1 and 2\odot_2 appear.

view this post on Zulip David Egolf (Jul 10 2024 at 22:40):

In Definition 2.1.3, we have a collection of objects which I'll call FSpan(C)0\mathsf{FSpan}(\mathcal{C})_0. I think in our case FSpan(C)0\mathsf{FSpan}(\mathcal{C})_0 is the collection of objects in C\mathcal{C}. Then, for each pair of objects A,BFSpan(C)0A,B \in \mathsf{FSpan}(\mathcal{C})_0, we need to have a category FSpan(C)(A,B)\mathsf{FSpan}(\mathcal{C})(A,B).

If I understand correctly, in our case the objects of this category FSpan(C)(A,B)\mathsf{FSpan}(\mathcal{C})(A,B) are to be the spans in C\mathcal{C} from AA to BB. In this category, a morphism from a span AXBA \leftarrow X \to B to a span AYBA \leftarrow Y \to B is a morphism :XY:X \to Y in CC such that the triangles in the resulting diagram commute.

view this post on Zulip David Egolf (Jul 10 2024 at 22:49):

To actually make FSpan(C)(A,B)\mathsf{FSpan}(\mathcal{C})(A,B) a category, we need a way to compose morphisms. This composition can be inherited from C\mathcal{C} and doesn't require 1\odot_1 or 2\odot_2 if I understand correctly.

In picture form, I think the composite of the two pictured morphisms ff and gg in FSpan(C)(A,B)\mathsf{FSpan}(\mathcal{C})(A,B) can simply be gfg \circ f, where we are using the composition operation provided by C\mathcal{C}:
composing morphisms of spans

view this post on Zulip David Egolf (Jul 10 2024 at 23:00):

Next, Definition 2.1.3 requires a horizontal composition functor cABC:FSpan(C)(B,C)×FSpan(C)(A,B)FSpan(C)(A,C)c_{ABC}: \mathsf{FSpan}(\mathcal{C})(B,C) \times \mathsf{FSpan}(\mathcal{C})(A,B) \to \mathsf{FSpan}(\mathcal{C})(A,C).

view this post on Zulip David Egolf (Jul 10 2024 at 23:02):

This functor cABCc_{ABC} induces two functions:

I am guessing that 1\odot_1 refers to one of these functions - perhaps the one involving objects, which are spans (?).

view this post on Zulip David Egolf (Jul 10 2024 at 23:11):

I had expected 2\odot_2 to also be part of the data of horizontal composition. However, upon reading this  2:FSpan(C)(A,B)(X,Y)×FSpan(C)(A,B)(Y,Z)FSpan(C)(A,B)(X,Z)\odot_2​:\mathsf{FSpan}(\mathcal{C})(A,B)(X,Y)\times \mathsf{FSpan}(\mathcal{C})(A,B)(Y,Z)\to\mathsf{FSpan}(\mathcal{C})(A,B)(X,Z) more carefully, it seems that 2\odot_2 is to be a vertical composition of 2-cells.

view this post on Zulip David Egolf (Jul 10 2024 at 23:14):

Currently, I am wondering these things:

view this post on Zulip David Egolf (Jul 10 2024 at 23:39):

Ah, I see that in one of your later messages you do indeed take 2=\odot_2 = \circ. So, I think I'm at least somewhat following the role of 2\odot_2 in our construction!

I suspect that I will better understand 1\odot_1 once I work through your example where you form 1\odot_1 using pseudo-pullbacks with respect to some property Γ\Gamma. But I will stop here for today!

view this post on Zulip Rémy Tuyéras (Jul 11 2024 at 22:54):

David Egolf said:

Indeed it is :smile: . I addressed this point where I explain this:

To finish with the details of this example, let us check that the operation 1\odot_1 is compatible with the 2-cells. To see this, let us note that, for any pair H0:S0T0H_0:S_0 \to T_0 and H1:S1T1H_1:S_1 \to T_1 of 2-cells, where

T0=(F0:Y0A,G0:Y0B)T_0 = (F_0':Y_0 \to A,G_0':Y_0 \to B) and T1=(F1:Y1B,G1:Y1C)T_1 = (F_1':Y_1 \to B,G_1':Y_1 \to C),

we have the morphism of spans

H11H0:S11S0T11T0H_1 \odot_1 H_0:S_1 \odot_1 S_0 \to T_1 \odot_1 T_0

induced by the mapping (x0,θ,x1)(H0(x0),θ,H1(x1))(x_0,\theta,x_1) \mapsto (H_0(x_0),\theta,H_1(x_1)). And if we consider two extra morphisms H0H_0' and H1H_1' that compose with H0H_0 and H1H_1 (respectively), then we can check that the following identity holds.

(H1H1)1(H0H0)=(H11H0)(H11H0)(H_1' \circ H_1) \odot_1 (H_0' \circ H_0) = (H_1' \odot_1 H_0' ) \circ (H_1 \odot_1 H_0)

view this post on Zulip David Egolf (Jul 11 2024 at 23:15):

Thanks for clarifying that! I look forward to working through that example in detail.