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.
Consider the category with two objects and two non-identity arrows . Then a graph can be described as a presheaf . In particular, we obtain a category of graphs.
However, for a graph theorist, is more likely described as a directed multigraph possibly with self-loops. The usual graph our graph theorist has in mind usually involves more constraints. For the sake of simplicity, just consider the constraint stating that there is at most one edge between any two vertices.
Now, say I want to describe this data structure with presheaves. I see, at least, two options:
I can just select the presheaves on which satisfy condition . I obtain a collection of presheaves. But now it is not clear, at first sight, that we obtain a category (we need to work to check, e.g., if the -morphisms are compatible with ).
Or maybe I can change the base category for another category . Something like two objects and an epi . And selecting only presheaves that preserve some stuff (e.g. products, epi to mono, ...)
Maybe there are other ways I am missing.
My question is: are there typical and nice ways to express constraints like in a presheaf-based model? By nice, I mean, for instance, that some general results apply to produce an actual category .
You could restate using an [[orthogonality]] condition (see section orthogonality of morphisms to objects).
Consider the two following graphs with two vertices and a single edge (the walking edge) and with 2 vertices as well and two parallel edges between these vertices. Let map the unique edge of to . Now given a graph , is the set of edges of while is the set of parallel pairs in . Precomposition by induces a restriction
and this map is invertible exactly when has no distinct pair of parallel edges. This is exactly stating that is (right) orthogonal to .
We usually start from a presentation of a category rather than a category, so you can literally write down equations you want to hold in your category. But certain classes of constraint, like an arrow being mono, will go beyond equational presentations.
Just a remark concerning your particular example: "simple" directed graphs (in the sense of graphs with at most one edge between any two nodes ) may be expressed as [[separated presheaves]] on the coverage saying that the two arrows are a covering family. While this does not generalize to obtain more sophisticated constraints that you may have in mind, it does tell us that the category of simple directed graphs is a [[quasitopos]] (a potentially interesting side remark).
That's not just a potentially interesting side remark, it's a very important point. There are various ways of expressing constraints like this, but they all tell you something important about what the resulting category is like.
Another important point is that when you have constraints that only eliminate objects, there is no chance of ending up with something that isn't a category. It's only when you start eliminating arrows that that can happen.
Thank you all for your answers. I didn't know about these concepts, I'll try to work them out on a few other cases.
So, I tried to practice a bit by considering another property: the source and target of every edge are distinct (aka no self-loops).
My attempts to reuse a technique based on orthogonality, or presheaf separation, didn't work.
But I think that's because property differs from in the sense that somehow that asserts that two things are equal (uniqueness), whereas asserts that two things are distinct.
Moreover, note that if the domain of a graph homomorphism satisfies beta then this need not be the case for its codomain (this can be used to prove that indeed it cannot be capture by right orthogonality, I think)
One hack is to introduce a self loop at every vertex and then assert that all self loops are equal—i.e., replace ‘no self loops’ with ‘no non-trivial self loops’
(Beware the notion of homomorphism this induces is very wonky)
I originally started typing something along the lines of Nathan's comment, but the homomorphism thing is important: without self-loops you cannot identify vertices (so you only get graph homs which are injective on vertices) whereas with unique self-loops more graph homomorphisms are possible.
It is interesting to see how the naive picture of a graph can get subtle when formalizing its details.
The naive picture of a graph is very vague. There are many different kinds of graphs depending on various choices you can make:
I think this gives definitions of graph, and I'm probably leaving out some important choices.
There are also other choices, a bit less common, like:
I've used this feature when studying topological crystals, for example. They'd also be good for electrical circuits, where you want to have a direction on each wire so the current flowing along the wire is a real number - but you can change your mind about the direction of the wire, and then that number changes sign.
John Baez said:
I've used this feature when studying topological crystals, for example.
The link to your website is broken, but I found your paper on the arxiv here
Thanks. By the way, if people don't copy a broken link when telling someone that a link is broken, that person can fix all copies of that link. But we can't fix other people's comments!
In this case I forgot that the paper is called crystal.pdf, not crystals.pdf, so here's a working link:
http://math.ucr.edu/home/baez/crystal.pdf
This version may be slightly newer than the arXiv version: I forget.
This might not get to the core of the question, but here are some ways to define different categories of graphs pretty efficiently, and I think you can generalize some of the lessons here. Since you're working with presheaves, you can talk about the cardinality of the sets to define conditions like . Commutation conditions generally have to be described by limits, but a lot of the time they can be incorporated into the structure, like how the property of every edge-set being symmetric can be rolled up into an opposition morphism, and the same with group inverses.
Thank you, this is very useful. It is interesting how the author combines all the topics discussed here (full subcategory of presheaf categories, adapting the base category, and orthogonality).