jwbuurlage / category-theory-programmers

Category theory in the context of (functional) programming
MIT License
513 stars 37 forks source link

Alternative diagram for initial/terminal objects #3

Closed matt-noonan closed 6 years ago

matt-noonan commented 6 years ago

In the original diagram, all objects are both initial and terminal. I think the idea was to show that terminal objects can still have outgoing arrows, and initial objects can still have incoming arrows. But maybe it would be clearer to have a diagram where the initial and terminal objects aren't isomorphic.

On the other hand, now that I've drawn this out, I'm not sure it is much of an improvement! So take it or leave it, no hard feelings either way :)

jwbuurlage commented 6 years ago

Hi Matt,

For initial (terminal) objects there has to be exactly, not at most, one arrow to (from) each object x. Hence, i and t are really the only such objects. For example, there is no arrow a -> b, so b is not terminal, and so on.

Jan-Willem

matt-noonan commented 6 years ago

That's exactly what is misleading about the original diagram; there actually is exactly one arrow from a to b! You can follow the composition a -> t -> i -> b (or indeed, anything -> t -> i -> anything else), and the composition must be unique since i is initial, t is terminal, and there is a unique t -> i.

jwbuurlage commented 6 years ago

Oh you are absolutely right, I thought I had set the diagram up so that this did not happen (it is hard to read TikZ 😆). I will reopen this and check out your version. Thanks!

JW

jwbuurlage commented 6 years ago

I definitely like your diagram better, since it forces the reader to think about the concept a bit more. My version only tries to illustrate that, as you said, terminal objects can still have outgoing arrows and initial objects can still have incoming arrows.

Thanks again.