Not every way to model reality defines identity and composition. You can start with a category-without-those G (a quiver) and end up at a category C by defining C-arrows as chains of G-arrows (the quiver’s free category), but it doesn’t seem necessary or a priori likely to give new insights. Can you justify this rules choice?
Honestly my real justification would be “adjoint functors awesome, and you need categories to do adjoint functors, so use categories.” More broadly...as long as it’s free to create a category out of whatever you’re studying, there’s clearly no harm. The question is whether anything’s lost by treating the subject as a category, and while I fully expect that there are entire universes of mathematics and reality out there where categories are harmful, I don’t think we live in one like that. Categories may not capture everything you can think of, but they can capture so much that I’d be stunned if they didn’t yield amazing fruit eventually. I’d acknowledge that novel, groundbreaking theorems are still forthcoming.
Let’s take a somewhat-concrete example. Your post mentions birds. OK, so let’s consider e.g. a model of birds flying in a flock, how they position themselves relative to one another, and so on. You suggest that we consider the birds as objects: so far, so good. And then you say “they do stuff like fly, tweet, lay eggs, eat, etc. I.e., verbs (morphisms).” For the purpose of a flocking model, the most relevant one of those is flying. How are you going to consider flying as a morphism in a category of birds? If A and B are birds, what is this morphism from A to B that represents flying? I’m not seeing how that could work.
In the context of a flocking model, there are some things involving two birds. E.g., one bird might be following another, tending to fly toward it. Or it might be staying away from another, not getting too close. Obviously you can compose these relations if you want. (You can compose any relations whose types are compatible.) But it’s not obvious to me that e.g. “following a bird that stays away from another bird” is actually a useful notion in modelling flocks of birds. It might turn out to be, but I would expect a number of other notions to be more useful: you might be interested in some sort of centre of mass of a whole flock, or the density of birds in the flock; you might want to consider something like a velocity field of which the individual birds’ velocities are samples; etc. None of these things feel very categorical to me (though of course e.g. velocities live in a vector space and there is a category of vector spaces).
Maybe flocking was a bad choice of example. Let’s try another: let the birds be hens on a farm, kept for breeding and/or egg-laying. We might want to understand how much space to give them, what to feed them, when to collect their eggs, whether and when to kill them, and so on. Maybe we’re interested in optimizing taste or profit or chicken-happiness or some combination of those. So, according to your original comment, the birds are again objects in a category, and now when they “lay eggs, etc., etc.” these are morphisms. What morphisms? When a bird lays an egg, what are the two objects the morphism goes between? When are we going to compose these morphisms and what good will it do us?
How does it actually help anything to consider birds as objects of a category?
Here’s the best I can do. We take the birds, and their eggs, and whatever else, as objects in a category, and we somehow cook up some morphisms relating them. The category will be bizarre and jury-rigged because none of the things we care about are really very categorical, but its structure will somehow correspond to some of the things about the birds that we care about. And then we make whatever sort of mathematical or computational model of the birds we would have made without category theory. So now instead of birds and eggs we have tuples (position, velocity, number of eggs sat on) or objects of C++ classes or something. Now since we’ve designed our mathematical model to match up, kinda, to what the birds actually do, maybe we can find a morphism between these two jury-rigged categories corresponding to “making a mathematical model of”. And then maybe there’s some category-theoretic thing we can do with this model and other mathematical models of birds, or something. But I gravely doubt that any of this will actually deliver any insight that we didn’t ourselves put into it. I’d be intrigued to be proved wrong.
That a construction is free doesn’t mean that you lose nothing. It means that if you’re going to do some construction anyway, you might as well use the free one, because the free one can get to any other. (Attainable utility anyone?)
Showing that your construction is free means that all you need to show as worthwhile is constructing any category from our quiver. Adjunctions are a fine reason, though I wish we could introduce adjunctions first and then show that we need categories to get them.
Not every way to model reality defines identity and composition. You can start with a category-without-those G (a quiver) and end up at a category C by defining C-arrows as chains of G-arrows (the quiver’s free category), but it doesn’t seem necessary or a priori likely to give new insights. Can you justify this rules choice?
Honestly my real justification would be “adjoint functors awesome, and you need categories to do adjoint functors, so use categories.” More broadly...as long as it’s free to create a category out of whatever you’re studying, there’s clearly no harm. The question is whether anything’s lost by treating the subject as a category, and while I fully expect that there are entire universes of mathematics and reality out there where categories are harmful, I don’t think we live in one like that. Categories may not capture everything you can think of, but they can capture so much that I’d be stunned if they didn’t yield amazing fruit eventually. I’d acknowledge that novel, groundbreaking theorems are still forthcoming.
Let’s take a somewhat-concrete example. Your post mentions birds. OK, so let’s consider e.g. a model of birds flying in a flock, how they position themselves relative to one another, and so on. You suggest that we consider the birds as objects: so far, so good. And then you say “they do stuff like fly, tweet, lay eggs, eat, etc. I.e., verbs (morphisms).” For the purpose of a flocking model, the most relevant one of those is flying. How are you going to consider flying as a morphism in a category of birds? If A and B are birds, what is this morphism from A to B that represents flying? I’m not seeing how that could work.
In the context of a flocking model, there are some things involving two birds. E.g., one bird might be following another, tending to fly toward it. Or it might be staying away from another, not getting too close. Obviously you can compose these relations if you want. (You can compose any relations whose types are compatible.) But it’s not obvious to me that e.g. “following a bird that stays away from another bird” is actually a useful notion in modelling flocks of birds. It might turn out to be, but I would expect a number of other notions to be more useful: you might be interested in some sort of centre of mass of a whole flock, or the density of birds in the flock; you might want to consider something like a velocity field of which the individual birds’ velocities are samples; etc. None of these things feel very categorical to me (though of course e.g. velocities live in a vector space and there is a category of vector spaces).
Maybe flocking was a bad choice of example. Let’s try another: let the birds be hens on a farm, kept for breeding and/or egg-laying. We might want to understand how much space to give them, what to feed them, when to collect their eggs, whether and when to kill them, and so on. Maybe we’re interested in optimizing taste or profit or chicken-happiness or some combination of those. So, according to your original comment, the birds are again objects in a category, and now when they “lay eggs, etc., etc.” these are morphisms. What morphisms? When a bird lays an egg, what are the two objects the morphism goes between? When are we going to compose these morphisms and what good will it do us?
How does it actually help anything to consider birds as objects of a category?
Here’s the best I can do. We take the birds, and their eggs, and whatever else, as objects in a category, and we somehow cook up some morphisms relating them. The category will be bizarre and jury-rigged because none of the things we care about are really very categorical, but its structure will somehow correspond to some of the things about the birds that we care about. And then we make whatever sort of mathematical or computational model of the birds we would have made without category theory. So now instead of birds and eggs we have tuples (position, velocity, number of eggs sat on) or objects of C++ classes or something. Now since we’ve designed our mathematical model to match up, kinda, to what the birds actually do, maybe we can find a morphism between these two jury-rigged categories corresponding to “making a mathematical model of”. And then maybe there’s some category-theoretic thing we can do with this model and other mathematical models of birds, or something. But I gravely doubt that any of this will actually deliver any insight that we didn’t ourselves put into it. I’d be intrigued to be proved wrong.
That a construction is free doesn’t mean that you lose nothing. It means that if you’re going to do some construction anyway, you might as well use the free one, because the free one can get to any other. (Attainable utility anyone?)
Showing that your construction is free means that all you need to show as worthwhile is constructing any category from our quiver. Adjunctions are a fine reason, though I wish we could introduce adjunctions first and then show that we need categories to get them.