AlgebraicJulia / Catlab.jl

A framework for applied category theory in the Julia language
https://www.algebraicjulia.org
MIT License
611 stars 58 forks source link

CSet Functors #201

Closed olynch closed 3 years ago

olynch commented 4 years ago

It seems to me that there should be a general way of defining

After I have done these in the specific case of whole-grained Petri nets, should I look into this? I imagine that this is somewhat dependent on #194.

Oh, also, is doing limits/colimits for CSets in the plan? I think that this wouldn't be too hard, and it seems like part of the advantage of CSets is that (co)limits can be done generically.

jpfairbanks commented 4 years ago

So what does the generic C-Set colimit look like? I think that gets us to structured cospans if we have the "Discrete C-Set functor" which maps n to "the empty presheaf on n vertices" and maps FinOrdMaps to C-Set morphisms. I think this "discrete C-Set on n elements" functor needs to be the adjoint of the forgetful functor of C-Set to FinOrd, which is analogous to counting vertices.

If we can do structured cospans instead of decorated cospans, I think that is actually better because we get a double category where the C-Set morphisms (which are natural transformations between F,G:C-->Set) tell us about relationships between C-Sets. In the graph case this is 0-cells are vertex sets 1 cells are open graphs, 2 cells are graph homomorphisms between the open graphs that respect the adjacency structure and the boundaries.

In that sense structured cospans of C-sets is really natural (pun intended)

epatters commented 3 years ago

Closing this issue since I think we now have everything mentioned here, including left adjoints to forgetful functors, structured cospans of C-sets, and limits and colimits of C-sets.