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.
I keep seeing fibration composition defined using their projections down to the base space, but is there a resource elaborating how this composition is done when I view a fibration using its pseudofunctor? These are equivalent,but somehow I can't wrap my head around the pseudofunctor "composition" here...
This has long been one of Benabou's arguments for the superiority of fibrations over pseudofunctors. Indeed, even making precise what the input data would be for a "composite" of pseudofunctors seems to basically require applying the Grothendieck construction to one of them to define the domain of the other one. I don't know of a reference that works it out explicitly.
I've been interested in this question in connection with combinatorics, where you often stack one type of structure or stuff on another, getting a composite of forgetful functors like
[graphs with two-colored edges] [graphs] [sets]
which are often fibrations. The pseudofunctor point of view is important in Joyal's approach (and its generalization to "stuff types"). But understanding composition in these terms is harder.
There must be some equally important thing that's a lot easier to do in the pseudofunctor approach, no? What's the go-to example?
John Baez said:
There must be some equally important thing that's a lot easier to do in the pseudofunctor approach, no? What's the go-to example?
@John Baez
I'm wondering that myself!
I have a hunch that some game-theoretic stuff can be phrased more intuitively using the pseudofunctor approach. My thinking is "a pseudofunctor maps each state in (state here being just an object) to a category of possible choices in that state". This is along the lines of Spivak's Poly interpretation of "positions" and "directions". Then composition of pseudofunctors would correspond to chaining choices of agents.
But I haven't managed to make much progress since I can't wrap my head around how these pseudofunctors are composed.
Here's what I got so far:
If we have a pseudofunctor (i.e. a fibration , where is the Grothendieck construction of ) then the second pseudofunctor needs to have the domain of a particular form. I.e. (corresponding to a fibration ).
Then, I think that is equivalent to the composition of the corresponding fibrations. So . Does that check out?
Yes, that sounds right to me, if you're using to mean "equivalent" - I use to mean "equivalent" and to mean "isomorphic".
The second pseudofunctor needs to have as domain, to correspond to a fibration .
John Baez said:
Yes, that sounds right to me, if you're using to mean "equivalent" - I use to mean "equivalent" and to mean "isomorphic".
Ah, yes
Amar Hadzihasanovic said:
The second pseudofunctor needs to have as domain, to correspond to a fibration .
Ah, right, I somehow keep ignoring/forgetting the variance here (I guess one can form the analogous version where there's no 's anywhere).
I'm tempted to check if this is a category, but as it was pointed out already, to define the domain of the second "morphism" we need to know what the first one is. This sounds like a job for dependent types.
I guess this brings me to the question, does the concept of "dependent composition" make sense, and has anybody studied it?
To avoid ops, I often work with the ironically named "opfibrations": opfibrations correspond to pseudofunctors .
There's a 2-category of
categories, opfibrations, and natural transformations
and we can describe the morphisms in here as pseudofunctors ; in this other description a pseudofunctor should be considered as a morphism .
To get this worked out carefully it may be best to use cloven opfibrations, since only a cloven opfibration gives you a specific pseudofunctor . The link starts with a nice pep talk on how cleaving makes the property-like structure of being an opfibration "algebraic", i.e. lifting a morphism from to now becomes an operation.
Ah, thanks. I guess I was wondering when I'll start needing this cloven/cleavage/normal/split stuff. will I'll have to meditate on this for a while before I can respond, but I guess this might not (or maybe it does, but I don't see it) answer my question about looking at all this fibration stuff in terms of pseudofunctors.
As in, I'd expect there to be some abstract dependently-typed way of composing them. I.e. a map that takes a dependent pair of )and gives me back a functor of type , representing the pseudofunctor corresponding to the composite fibration.
I already feel uneasy writing this, not knowing whether this makes any sense :grinning: I guess I need to meditate on your last paragraph, but I'm saying this in case this resonates with you/might help you understand what I mean.
And yeah, I don't know why, but there's this deep inkling in me attempting to understand this through pseudofunctors... somehow it feels "more natural". Or maybe I just didn't internalize the Grothendieck equivalence properly.
You definitely need to cleave a fibration to turn it into a pseudofunctor - so if you're wanting to reformulate composition of fibrations in terms of some operation on pseudofunctors, or just understand how fibrations give pseudofunctors, it's good to ponder the art of cleaving.
Since I rarely think about dependent types, I don't find that helps me very much here, but this stuff is connected to dependent types. In my example of a composite of fibrations:
[graphs with two-colored edges] [graphs] [sets],
to put the structure of a graph with two-colored edges on a set (which will then be the set of vertices), it's good to first put the stuff of a graph on that set, by equipping it with edges, and then put the structure of a 2-coloring on that graph. I think we are "stacking dependent types" here, if you know what I mean.
So, the first obstacle, as Mike points out, is that there's no explicit way to see whether two pseudofunctors are composable, since you don't have the total category of the second to check whether it matches the first's base.
Working one dimension down, when you have functors , with sets, you can define their composition as the (= composition of functors) of their associated polynomial functors. As we discussed yesterday, Bruno, this means that you don't assume the total space of one coincides with the base of the other, you simply assume there's some map between the two and index over the collection of all these maps. Indeed, gives you:
Specifying a mapping allows you to collapse this into a functor . Indeed, if you know in advance that , then there's a canonical way to do so, namely with the map , where is the inclusion of into .
I suspect the above can be easily generalized to the next dimension by noting that the Grothendieck construction is an oplax colimit, hence you get 'inclusions' of fibers into it. The rest stays pretty much the same, I guess.
That said, this is all very painful.
John Baez said:
You definitely need to cleave a fibration to turn it into a pseudofunctor - so if you're wanting to reformulate composition of fibrations in terms of some operation on pseudofunctors, or just understand how fibrations give pseudofunctors, it's good to ponder the art of cleaving.
Thanks John. I think I now get the idea, but the naming between fibration, Grothendieck fibration and cloven fibration is still confusing to me. This nLab passage says that a functor "being a fibration" is exactly what we need to turn it into a pseudofunctor, but you you just said a fibration needs to be cloven.
Screenshot_20210323_204438.png
Here's my understanding now:
1) An fibration is just any functor
2) A cleavage is exactly the thing we need to turn this fibration into a pseudofunctor (making it also a Grothendieck fibration)
3) Every pseudofunctor can canonically be turned into a fibration (no extra conditions necessary)
A fibration is not any functor. The definition of fibration includes a lifting property. A cleavage is a choice of specific liftings. A cleavage is necessary to construct the corresponding pseudofunctor.
You're right that a pseudofunctor can always be turned into a fibration without anything extra.
And "fibration" is short for "Grothendieck fibration" in this particular scenario. There are many other notions of fibration in other branches of math.
Joe Moeller said:
A fibration is not any functor. The definition of fibration includes a lifting property. A cleavage is a choice of specific liftings. A cleavage is necessary to construct the corresponding pseudofunctor.
Hmm, okay, so there's one more term here: "lifting property". I take it then a fibration is any functor that has a lifting property. And I guess that somehow this isn't enough to construct a pseudofunctor into - we need to cleave it, that is, provide a specific lifting?
I find this whole fibration business pretty strange! I'm definitely not used to thinking about this
Sorry, here's the lifting property spelled out:
image.png
No worries, I was only reminding myself about this lifting property; I've seen it enough times already that I should know it...
The idea is that when you start with a pseudofunctor , and you do the Grothendieck construction to get a category , you have forgotten something about the original piece of data: you forgot that and where separate categories. There is a straightforward functor which does remember that data.
But not all functors arise this way. You could view fibrations as a characterization of precisely which functors you get this way.
Specifically, the lifting property tells you that the maps in which did not only arise as the maps in the categories , but as one which actually has stuff coming from the nontrivial functors of the form in them, can be sorta "straightened back out" into functors between the "fibers".
Right... so let me see if I understand it now:
We start with an arbitrary functor that we're conjecturing is forgetting some data coherently, i.e. for each there's more than one object in mapping to it. So we conjecture this collection of objects is a subcategory!
So is a subcategory, and is a subcategory, for some other . And if we have a map , we might be interested in getting a functor (or perhaps one going the other way).
I guess I now this is where the cartesian morphisms come in, I think I'll have to meditate on this for a bit...
Yes, this is right. You get that is a subcategory of no problem (though you should specify the morphisms as well), and this automatically starts to feel like you're saying is a (pseudo)functor , but you will run into problems without the cartesian lifts.
Right! To define the functor we need to specify how it acts on objects - and this looks like exactly the data of a cartesian morphism. This is slowly making sense... :)
Do you know about covering spaces from topology? This is the first sort of fibration I learned about, and it's pretty much exactly what I think about when I try to understand this stuff, but more arrow-y.
Ah no, I'm coming from CS
Right, you just never know what people know.
Right :)
I guess another useful question to ask is: what examples of functors aren't fibrations (but where one would incorrectly assume that they are) ? Is there any good examples to have in mind? I'd assume most functors won't be fibrations.
Joe explained it all, but I'll do it again: sometimes it seems more convincing when a bunch of people say the same thing.
1) An fibration is just any functor
No, that's called a "functor".
"Fibration" means one thing in topology (actually a bunch of related things), and something else in pure category theory. Fibrations in category theory are Grothendieck fibrations, but people usually say "fibration" for short, so we'll do that.
A fibration is a functor such that given any object and any morphism , there is a "cartesian" morphism with . Such is called a cartesian lifting of .
See the link for the definition of "cartesian morphism". It takes a lot of time and thought and looking at examples to appreciate this definition. I will not attempt to lead you through that right now!
A choice of cartesian lifting for every morphism of the form in is called a cleavage. A fibration with a specific cleavage is called a cloven fibration.
Assuming the axiom of choice, every fibration can be cloven... but of course usually not in a unique way.
2) A cleavage is exactly the thing we need to turn this fibration into a pseudofunctor
Right.
(making it also a Grothendieck fibration)
No, no! A fibration is the exact same thing as a Grothendieck fibration, in the present context. Grothendieck built this world; we just live in it.
3) Every pseudofunctor can canonically be turned into a fibration (no extra conditions necessary).
Right. And this fibration is automatically cloven.
So, the work that's left for you to:
a) get a good intuition of cartesian morphisms and why people care about them,
b) understand how a cloven fibration gives a pseudofunctor ,
c) understand how a pseudofunctor gives cloven fibration.
Bruno Gavranovic said:
I guess another useful question to ask is: what examples of functors aren't fibrations (but where one would incorrectly assume that they are) ? Is there any good examples to have in mind? I'd assume most functors won't be fibrations.
Yeah, most are not. The intuitive idea of a fibration is that it's a forgetful functor with a special nice property. So, we're gonna think of objects in as objects in with extra structure (or stuff), and forgets that extra structure.
Now, say you have an object and it comes from an object by forgetting the extra structure:
And say you have a morphism to
Then if is a fibration, you can "pull back" the extra structure and give the extra structure. In other words, there's a specific best object such that
and a specific best morphism
such that
.
The definition of "cartesian morphism" makes precise what we mean by "best" here. It's a kind of universal property.
Which examples and counterexamples would be good to illustrate this? Well, that depends a lot on what kind of stuff you like.
John Baez said:
c) understand how a pseudofunctor gives cloven fibration.
My personal impression is that when one performs the Grothendieck construction to obtain a fibration , the corresponding "cleavage" of this fibration is left mysterious. However there is a very nice way to "find" it!
It certainly gives a cleavable fibration :upside_down:
One can post-compose the pseudo functor with the underlying objects functor to obtain a discrete fibration from your fibration.
Bryce Clarke said:
John Baez said:
c) understand how a pseudofunctor gives cloven fibration.
My personal impression is that when one performs the Grothendieck construction to obtain a fibration , the corresponding "cleavage" of this fibration is left mysterious.
Left mysterious by whom? Some naughty people who don't explain it well? "One"?
Moreover, whiskering the pseudofunctor with the counit for the underlying objects / discrete category adjunction between and will provide you with a bijective-on-objects functor from this discrete fibration to the fibration that you found.
This tells you exactly what your "cleavage" of your fibration should be.
Well I think the ordinary way you'd go is
at this stage, why would you want to define a cleavage as well?
Well, the cleavage is staring you in the face (now I see why Eugenia Cheng doesn't like this terminology), and you use it to "notice you've got a fibration".
That is, in a fibration the cartesian liftings merely exist, but when you get a fibration from an indexed category specific cartesian liftings are given to you, and that's how you prove they exist.
Joe Moeller said:
at this stage, why would you want to define a cleavage as well?
I think because it should be made explicit that pseudo functors are not equivalent to fibrations but cloven fibrations.
Sure, that's fine. It's absolutely necessary when you're talking about proving the equivalence. In my experience, it doesn't come up as much when you're using the equivalence, in this particular direction.
Bryce Clarke said:
One can post-compose the pseudo functor with the underlying objects functor to obtain a discrete fibration from your fibration.
No, you can't compose a pseudo-functor with a 1-functor. This only works if is a strict functor.
Am I missing something? Can't you regard both as pseudofunctors between (sometimes locally discrete) bicategories?
"underlying objects" isn't a pseudofunctor from Cat to Set because there's nowhere for the 2-cells to go. Even the invertible ones are problematic.
Right, I meant you can't compose a pseudofunctor whose codomain is the 2-category with a 1-functor whose domain is the 1-category .
Oh sure; thanks.
Mike Shulman said:
Bryce Clarke said:
One can post-compose the pseudo functor with the underlying objects functor to obtain a discrete fibration from your fibration.
No, you can't compose a pseudo-functor with a 1-functor. This only works if is a strict functor.
Ah of course, I was thinking strict. Thanks Mike!
Of course the "downhill slide", i.e. the easy way to go, is to turn a discrete fibration into a fibration by postcomposing with .
But now's a chance to ask about something I've never gotten around to thinking about enough: what's the story on when a pseudofunctor is equivalent to a strict 2-functor? Are there some interesting results on when this happens?
Of course this question is sort of the same as when a fibration can be not merely cloven but actually split.
I know (or have heard) that a pseudofunctor to is always equivalent to a normalized pseudofunctor, meaning one where identity 1-morphisms are strictly preserved.
In fact, a pseudofunctor to is always equivalent to a strict 2-functor. Indeed, it is so universally in two different ways: the "inclusion" functor from the 2-category of strict 2-functors and strict 2-natural transformations to the 2-category of pseudofunctors and pseudonatural transformations has both a left adjoint and a right adjoint , and the unit and counit are pseudonatural equivalences.
On the other side this says that any fibration is equivalent to a split fibration. But that's different from asking whether a fibration can be split, i.e. whether you can choose a splitting without changing the functor. That's certainly not always possible, and would correspond on the pseudofunctor side to asking whether a pseudofunctor is isomorphic to a strict 2-functor.
I don't know any general results about when the latter happens.
It occured to me that the right way to compose fibrations in pseudofunctor approach might be more operadic. To get a composite of fibrations you should have a pseudofunctor along with a a family of pseudofunctors for every object c of C and a morphism of pseudofunctors for every morphism .
For example the fibration composite from reflexive graphs to graphs to sets of vertices could be decomposed (I think) into pseudofunctors as follows: first a pseudofunctor sending each set to the category of graphs with that set as its vertices, then for each category F(X) we should have a pseudofunctor sending each graph G to the category of reflexive graphs with G as it's underlying graph.
I think I may have some details wrong about how pseudo some of these things should be...and I may have some ops reversed but does this idea make sense?
I love this. It makes a ton of sense! I've been actually thinking in these terms for the discrete case, but it never occured to me the same thing could apply one level up...
Thanks! What have you used the discrete case of this for?
Oh I suppose the Set version is related to the multiplication of the free cocompletion (pseudo?)monad on Cat
You could also go 0-dimensional to get the way that subsets of subsets turn into subsets.
Right! It's the same idea! So cool
The discrete case turns up in some work I'm doing on a dependently typed version of open games. In that case you have a discrete fibration of 'moves' and you compose those as you explained above. It's very intuitive in that setting since the go-to classical representation of games is 'extensive form', which are just trees. Indeed, in my head I call this way of composing things the 'operad of trees'
Though to be fair I've never seen operads whose operations can have Set-valued arities, as required to compose discrete fibrations, let alone of categorical arity. It's a natural and fascinating generalization, though
Ah, I think I finally get the basic idea behind fibrations (also after conversations with @Matteo Capucci (he/him) ).
I think my main confusion is that I never properly internalized this lifting property; I picked up the idea of what a fibration is from people saying "Let be a fibration" - I remember seeing papers where they'd just define this functor as a projection. I somehow thought this was it, but I guess they were leaving it for the reader to figure out what the lifting property for that particular fibration was.
I also somehow got confused from all the terminology. I think this was partially me not really reading carefully, or maybe expecting the definition to be simpler than it really was.
So here's how I understand the story of fibrations now. There might be some holes here, but this shouldn't be conceptually wrong:
We start with a big space which we conjecture is indexed by a smaller space . We can easily figure out the projection , but we're actually thinking even more: that all the things mapping to a particular are forming a subcategory of . That is, .
Now, surely we can figure out the objects in easily (and I assume morphisms too, even though I have an example where I think this was tricky).
But the real issue is: if forms a category, and so does (for some ), and we have a map , then this means we ought to get a functor ! But what does map some object in to?
This is where the cartesian lifting comes in - we're picking some universal object (from what I can tell, not just by looking inside the category , but even wider, in whole of ). This universal object is exactly the action of on .
I still have to internalize why the cartesian lifting is defined in the way it is and properly unpack it (I wasn't really able to find a clear explanation online), but I guess it shouldn't be hard to figure out...
And yeah, so a fibration is a functor with this lifting property, which is exactly what we need to turn it into a pseudofunctor. And a cloven fibration is just when we have a particular choice of a lifting. (This whole AOC business is still fuzzy to me so I'm not too bothered by this, I guess...)
Another way to see why it is defined the way it is, is because you want to get an equivalence with the category of functors
This perspective may seem unhortodox, but in my recent research I came to appreciate that there is a whole jungle of ways to turn a functor to into a functor from , and vice-versa. That is, you want to consider some flavor of (by this I mean the category as a whole, a subcategory of it that is well behaved in some respect, consider it as a 1-cat, as a 2-cat and so on) and want to get an equivalence/isomorphism/whatnot with a category of (lax/pseudo/monoidal) functors . The point is that, depending on which properties you need (as you see there are a lot of moving parts here) you may get a different something that does the job
I guess the take away message here is: The Grothendieck construction, in a broader sense, is a concept. It allows to turn a functor from something into a functor to something, and vice-versa, using some sort of heuristic process that is more or less always the same. You may say that, in this broader sense, a fibration is what you get when you apply this construction. Obviously all this handwavy way of describing this collapses to the formal stuff you are used with when you specialize it enough
Interesting. What are some other examples of "Something" that isn't or ?
For instance, for each category there is an equivalence , where the means that you are considering lax monoidal functors.
Fundamentally, here we are considering the left hand side as a 1 cat. If you want to consider it as a 2 cat then, if I remember correctly, you need to get on the right, and change the into something a bit different.
We used this result here: https://arxiv.org/abs/2101.09100 here: https://arxiv.org/abs/2101.06234 and here (without really knowing it back then): https://arxiv.org/abs/2002.02762
(It's all Petri net stuff)
Huh, this is surprising. Now I totally don't have an intuition on what are the things that could appear as "Somethings". I thought it had to be something like , or with more higher arrows.
Does that then also mean that ?
No, because in the left hand side of that thing there's a lot of stuff that hasn't lifting properties
we're taking literally the whole thing
Right, I thought you might've been ambiguous, but you're now literally saying that for this example we can literally take any functor , there's no lifting properties required. Got it
Yeps
The only thing we're not considering here are 2-morphisms in the left hand side
But I guess my point is that you can always take "all the stuff that sits on top of an object" and repack it by sending that object to its "fiber", and then the variant of the Grothendieck construction in the setting one works in just glues all these things together giving the original thing back
When people think about ways to get a functor from from a functor to and vice-versa, they often think in terms of fibrations, but you don't really need them to do so. :smile:
Fabrizio Genovese said:
For instance, for each category there is an equivalence , where the means that you are considering lax monoidal functors.
You mean lax 2-functors.
Some other Grothendieck constructions are the monoidal one, the bicategorical one, and the double-categorical one.
Yes, lax 2-functors. Sorry!
Now that I think of it, the source of my confusion was that I was using it in the context of monoidal categories. If your functor is lax monoidal, then you can give a monoidal structure also to , basically applying the monoidal products component-wise
Also, I seem to remember that in the context of spans we call this construction "total category", but I'm really not good with notations and names...
Mike Shulman said:
Some other Grothendieck constructions are the monoidal one, the bicategorical one, and the double-categorical one.
"Bicategorical" here means the vertical categorification of the usual Grothendieck construction. However, considering the existence of the monoidal Grothendieck construction, does that suggest the existence of a horizontal categorification of the Grothendieck construction for monoidal categories, to bicategories?
Bruno Gavranovic said:
I still have to internalize why the cartesian lifting is defined in the way it is and properly unpack it (I wasn't really able to find a clear explanation online), but I guess it shouldn't be hard to figure out.
I was only able to understand it by looking hard at a really simple example.
My favorite example is the functor where the category of graphs is defined in the usual way category theorists define it, and the functor maps any graph to its underlying set of vertices (aka nodes).
The fact that is a fibration then means that for any function between sets, and any way of making into a graph by equipping it with edges, there is a "best" way to make into a graph and lifting to a map of graphs.
It's good to just guess what this "best" way is, and then check that it's a fibration, using the rather complicated usual definition of a fibration. That should convince you that the definition formalizes a certain notion of "best".
It's good to check that is an also opfibration. I'm pretty sure that's true! So, intuitively: given a function between sets, and any way of making into a graph by equipping it with edges, there is a best way to make into a graph.
Regarding terminology, I'm low-key pushing for "cleaving" to replace "cleavage", as it is an acceptable alternative translation of "clivage", and is also immediately clear to those familiar with the existing poor choice of word, rather than trying for some complete neologism (cf supine and prone morphisms; I can never remember which is meant to be which)
Cleaving is a verb though no?
Fabrizio Genovese said:
Also, I seem to remember that in the context of spans we call this construction "total category", but I'm really not good with notations and names...
Yeah, although unfortunately total category also has another meaning. (-:
Nathanael Arkor said:
"Bicategorical" here means the vertical categorification of the usual Grothendieck construction. However, considering the existence of the monoidal Grothendieck construction, does that suggest the existence of a horizontal categorification of the Grothendieck construction for monoidal categories, to bicategories?
I would expect that to be the double-categorical version. (Double categories are often a better horizontal categorification of monoidal categories than bicategories are.) Although it looks like so far the double-categorical version is only done for discrete fibrations.
@Fawzi Hreiki it can be a noun. Compare "splitting", which is both a verb, in present tense, and a noun, with the same formation from "split", as "cleaving" comes from "cleave".
Yeah, I think I'm gonna go with "cleaving".
Almost any verb in English can become a noun.
Often one can avoid the issue entirely, talking about cloven fibrations and about the process of cleaving a fibration without needing to give a name to the structure with which a cloven fibration is equipped.
@Mike Shulman I think Szyld–Bayeh–Pronk have been working on a full version of the double-categorical Grothendieck construction: http://cms.dm.uba.ar/Members/mszyld/slides_uOttawa_szyld.pdf
Great!
Théo said:
Mike Shulman I think Szyld–Bayeh–Pronk have been working on a full version of the double-categorical Grothendieck construction: http://cms.dm.uba.ar/Members/mszyld/slides_uOttawa_szyld.pdf
I think this link is broken
@Joshua Meyers Can you access Szyld's webpage here? The above slides are listed there in the talks section
In any case, here's a copy of them: slides_uOttawa_szyld.pdf
Bruno Gavranovic said:
And yeah, so a fibration is a functor with this lifting property, which is exactly what we need to turn it into a pseudofunctor. And a cloven fibration is just when we have a particular choice of a lifting. (This whole axiom of choice business is still fuzzy to me so I'm not too bothered by this, I guess...)
There's nothing deep about it. In traditional set theory you need the axiom of choice to prove this:
Suppose for any element of a set there exists an element of a set that obeys some property involving . Then there exists a function that sends any element of to an element of obeying that property.
A cleaving of a fibration is an example of such a function.