#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Options

# Programming with Categories - Lecture 2 Discussion

edited February 5

I agree with @LeifMetcalf, who started the lecture 3 discussion, that it may be good to have a discussion for each lecture. I'm starting this discussion because I have some thoughts on lecture 2 which I will post soon.

• Options
1.

In lecture 2 (about time 5:30), Brendan introduces a notion of Shape. I like this idea. Each Shape (object, pair, arrow, isomorphism) suggests the essence of a basic idea in Category Theory. An essence is not formally defined. I can play with it in my own way, with tools I'm familiar with.

This is roughly the table that Brendan presented.

| Shape Label | Essence Of | Objects | Arrows | | ----------- | ----------- | ------- | ------ | | 1 | object | 1 | 1 | | P | pair | 2 | 2 | | 2 | arrow | 2 | 3 | | I | isomorphism | 2 | 4 |

Graphviz, can roughly reproduce what Brendan drew on the blackboard. A number of online sites can parse Graphviz .dot notation, and display it as a Scalable Vector Graphics (SVG) image. WebGraphviz is one such site. Copy any of the following four digraph lines, paste it into the WebGraphviz site, click Generate Graph!, and view the SVG image (as shown below).

digraph 1 {x->x; label="1 object";}


digraph P {x->x y->y; label="P pair";}


digraph 2 {x->x->y->y; label="2 arrow";}


digraph I {x->x->y->y->x; label="I isomorphism";}


I wonder what other essences are lurking out there, or is this as far as we can go with this concept?

Comment Source:In [lecture 2](https://www.youtube.com/watch?v=jm3bJrULMqM) (about time 5:30), Brendan introduces a notion of **Shape**. I like this idea. Each Shape (object, pair, arrow, isomorphism) suggests _the essence of_ a basic idea in Category Theory. An essence is not formally defined. I can play with it in my own way, with tools I'm familiar with. This is roughly the table that Brendan presented.  | Shape Label | Essence Of | Objects | Arrows | | ----------- | ----------- | ------- | ------ | | 1 | object | 1 | 1 | | P | pair | 2 | 2 | | 2 | arrow | 2 | 3 | | I | isomorphism | 2 | 4 |  [Graphviz](https://graphviz.org/), can roughly reproduce what Brendan drew on the blackboard. A number of online sites can parse Graphviz .dot notation, and display it as a Scalable Vector Graphics (SVG) image. [WebGraphviz](http://www.webgraphviz.com/) is one such site. Copy any of the following four _digraph_ lines, paste it into the WebGraphviz site, click _Generate Graph!_, and view the SVG image (as shown below). digraph 1 {x->x; label="1 object";} ![Figure 1](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/ca6b84a43225657fbc55fef19c4ccdb473882f2c/object1.svg?sanitize=true "Figure 1") digraph P {x->x y->y; label="P pair";} ![Figure P](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/ca6b84a43225657fbc55fef19c4ccdb473882f2c/pairP.svg?sanitize=true "Figure P") digraph 2 {x->x->y->y; label="2 arrow";} ![Figure 2](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/ca6b84a43225657fbc55fef19c4ccdb473882f2c/arrow2.svg?sanitize=true "Figure 2") digraph I {x->x->y->y->x; label="I isomorphism";} ![Figure I](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/ca6b84a43225657fbc55fef19c4ccdb473882f2c/isomorphismI.svg?sanitize=true "Figure I") I wonder what other essences are lurking out there, or is this as far as we can go with this concept?
• Options
2.

Are there any good resources for understanding the concept of one set "probing" another? I was pretty lost when Brendan labeled one set a "probe" or another set an "observer".

It sounded like the arrow going from one set to another was itself a set of all possible functions but I don't understand how those functions can be used to probe the target set.

Thanks!

Comment Source:Are there any good resources for understanding the concept of one set "probing" another? I was pretty lost when Brendan labeled one set a "probe" or another set an "observer". It sounded like the arrow going from one set to another was itself a set of all possible functions but I don't understand how those functions can be used to probe the target set. Thanks!
• Options
3.

@PeterJones, I was confused at first by that too, but I think it's making sense to me now.

It seems that part of the idea is that you're supposed to take this very zoomed out abstract view, where you don't care so much about the individual objects in a category (in this case, sets), but you care more about the morphisms, or the relationships between them.

With that (admittedly vague) idea in mind, consider a set with only one element in it, and all the morphisms (functions) it has to a set with n elements in it. How many possible different functions are there from a set with one element to a set with n elements?

The answer is that there are n such functions -- one for each element in the target set. So you could say that all the morphisms (functions) from the 1 element set to the n element set "range over" the elements in that set.

Or, looking at it a different way, if you want to represent the idea of "picking out" a single element from a set S, you could think of that as the same thing as choosing one function from among all the possible functions from a one element set to S.

Similarly, as I think Brendan mentioned more briefly, if you wanted to choose a pair of elements in a set S, you could think of that as the same thing as choosing one function from a two element source set to S as the target set (because each possible pair of elements in S -- including pairs that have the same element twice -- is a possible mapping/function from the two source elements in the two-element set).

As for why it's natural to think of things this way. I'm not really sure yet, as I'm just learning this stuff, but I think it comes from having a very morphism-centric point of view, or something like that.

Comment Source:@PeterJones, I was confused at first by that too, but I think it's making sense to me now. It seems that part of the idea is that you're supposed to take this very zoomed out abstract view, where you don't care so much about the individual objects in a category (in this case, sets), but you care more about the morphisms, or the relationships between them. With that (admittedly vague) idea in mind, consider a set with only one element in it, and all the morphisms (functions) it has to a set with n elements in it. How many possible different functions are there from a set with one element to a set with n elements? The answer is that there are n such functions -- one for each element in the target set. So you could say that all the morphisms (functions) from the 1 element set to the n element set "range over" the elements in that set. Or, looking at it a different way, if you want to represent the idea of "picking out" a single element from a set S, you could think of that as the same thing as choosing one function from among all the possible functions from a one element set to S. Similarly, as I think Brendan mentioned more briefly, if you wanted to choose a pair of elements in a set S, you could think of that as the same thing as choosing one function from a two element source set to S as the target set (because each possible pair of elements in S -- including pairs that have the same element twice -- is a possible mapping/function from the two source elements in the two-element set). As for why it's natural to think of things this way. I'm not really sure yet, as I'm just learning this stuff, but I think it comes from having a very morphism-centric point of view, or something like that.
• Options
4.

At 22 minutes and 7 seconds into the lecture, Brendan holds up a Rubik's cube and says it's a category with one object. And then he demonstrates several rotations and says they are the arrows of the category.

But if rotations are morphisms, then wouldn't the objects of the category be the different configurations the cube could be in (in which case there's more than one object)?

That seems a more natural way to think about it at first (though maybe that's just a programmer's intuitions from graph theory sneaking in), and I think all the rules for a category (associativity, etc) are satisfied that way.

On the other hand, maybe since you have the exact same transformations available to you at each step, then a more native category theory way of thinking about it is to say it's just one object, and each arrow takes you back to that object.

Curious whether this is obvious to others.

Comment Source:At 22 minutes and 7 seconds into the lecture, Brendan holds up a Rubik's cube and says it's a category with one object. And then he demonstrates several rotations and says they are the arrows of the category. But if rotations are morphisms, then wouldn't the objects of the category be the different configurations the cube could be in (in which case there's more than one object)? That seems a more natural way to think about it at first (though maybe that's just a programmer's intuitions from graph theory sneaking in), and I think all the rules for a category (associativity, etc) are satisfied that way. On the other hand, maybe since you have the exact same transformations available to you at each step, then a more native category theory way of thinking about it is to say it's just one object, and each arrow takes you back to that object. Curious whether this is obvious to others.
• Options
5.

My intuition on what is a probe derives from my own background with programming and graphs. To me it sounds like an index into an array, or a pointer to a single object in some collection of objects. At different times, the index or pointer or arrow or morphism may target something different. I have to draw some diagrams to demonstrate what I'm thinking, which I believe is pretty much what @EricRogstad suggests.

// Probe at some time t digraph G { graph[style=dotted]; subgraph clusterA {p} subgraph clusterB {1 2 3 4} p->2 }

// Probe at some other time t' digraph H { graph[style=dotted]; subgraph clusterA {p} subgraph clusterB {1 2 3 4} p->1 }

// Selecting 2 elements from a set digraph I { graph[style=dotted]; subgraph clusterA {p q} subgraph clusterB {1 2 3 4} p->1; q->4; }

I used WebGraphviz to generate the images from the Graphviz notation.

Comment Source:My intuition on _what is a **probe**_ derives from my own background with programming and graphs. To me it sounds like an index into an array, or a pointer to a single object in some collection of objects. At different times, the index or pointer or arrow or morphism may target something different. I have to draw some diagrams to demonstrate what I'm thinking, which I believe is pretty much what @EricRogstad suggests.  // Probe at some time t digraph G { graph[style=dotted]; subgraph clusterA {p} subgraph clusterB {1 2 3 4} p->2 }  ![Figure G](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/fa53e8fc74845d887fd5cde8a9cda27642bf4893/probeG.svg?sanitize=true "Figure G")  // Probe at some other time t' digraph H { graph[style=dotted]; subgraph clusterA {p} subgraph clusterB {1 2 3 4} p->1 }  ![Figure H](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/fa53e8fc74845d887fd5cde8a9cda27642bf4893/probeH.svg?sanitize=true "Figure H")  // Selecting 2 elements from a set digraph I { graph[style=dotted]; subgraph clusterA {p q} subgraph clusterB {1 2 3 4} p->1; q->4; }  ![Figure I](https://gist.githubusercontent.com/kenwebb/b8a7893bc4723388cd6e355069c9fd55/raw/fa53e8fc74845d887fd5cde8a9cda27642bf4893/probeI.svg?sanitize=true "Figure I") I used [WebGraphviz](http://www.webgraphviz.com/) to generate the images from the Graphviz notation. 
• Options
6.

@EricRogstad, @kenwebb: thank you for the answers. I don't quite understand yet but what you are saying makes sense. I'm sure as I watch more lectures and work through the book it will become clear.

Comment Source:@EricRogstad, @kenwebb: thank you for the answers. I don't quite understand yet but what you are saying makes sense. I'm sure as I watch more lectures and work through the book it will become clear.
• Options
7.

@EricRogstad I believe that Brendan was saying that a Rubik's cube is a Monoid.

Even thought the rotations change the way it looks and it's orientation, the Rubik's cube is still a Rubik's cube. In the same way that a monoid where the arrows are the natural numbers and addition is the way you compose them doesn't change the underlying object when you compose 2 and 3.

Another way to think of it, assume that the Rubik's cube is only changed while you are observing one of the arrows. Once you stop looking at the arrow it goes back to its "resting state".

My question would be, in a Rubik's cube, if it is indeed a monoid, what is the identity arrow?

Comment Source:@EricRogstad I believe that Brendan was saying that a Rubik's cube is a Monoid. Even thought the rotations change the way it looks and it's orientation, the Rubik's cube is still a Rubik's cube. In the same way that a monoid where the arrows are the natural numbers and addition is the way you compose them doesn't change the underlying object when you compose 2 and 3. Another way to think of it, assume that the Rubik's cube is only changed while you are observing one of the arrows. Once you stop looking at the arrow it goes back to its "resting state". My question would be, in a Rubik's cube, if it is indeed a monoid, what is the identity arrow?
• Options
8.

The identity arrow is no moves. An operation that takes a cube sand does nothing. It is a left and right unit, and it's unique because we say so.

The arrows are all the valid permutations of the "current state." Note that operations don't really know anything about the actual state of the cube.

Comment Source:The identity arrow is no moves. An operation that takes a cube sand does nothing. It is a left and right unit, and it's unique because we say so. The arrows are all the valid permutations of the "current state." Note that operations don't really know anything about the actual state of the cube.
• Options
9.

More detailed description is here: https://en.m.wikipedia.org/wiki/Rubik's_Cube_group

Group is a monoid in which every element has an inverse.

Comment Source:More detailed description is here: https://en.m.wikipedia.org/wiki/Rubik%27s_Cube_group Group is a monoid in which every element has an inverse.
• Options
10.

I have a query around "generalized element" or "probe". If we are discussing a small Set as a category, I could understand that there are could be multiple morphism (function) from set A to X to pick each element in X. But the Category theory is more abstract where we don't know what is inside the category object.

So if I don't know what is inside X, how can I define a morphism to pick each element using probe object? Isn't it a catch-22 position? I can't look into the object X but at the same time I can define a "n" morphism to pick n element. It's confusing me

Comment Source:I have a query around "generalized element" or "probe". If we are discussing a small Set as a category, I could understand that there are could be multiple morphism (function) from set A to X to pick each element in X. But the Category theory is more abstract where we don't know what is inside the category object. So if I don't know what is inside X, how can I define a morphism to pick each element using probe object? Isn't it a catch-22 position? I can't look into the object X but at the same time I can define a "n" morphism to pick n element. It's confusing me 
• Options
11.
edited January 17

You generalize the whole scheme of "probing" in Set to probing in a general category. In Set, a probe of set Y is a mapping from a singleton object {a} to a set Y.

Here we need to generalize from mapping, singleton, and target set.

Mapping becomes morphism.

Target set becomes target object.

What does a singleton set generalize to?

Hint: How can you characterize a singleton set, not by looking inside it and seeing only one element, but only in terms of the graph structure of its relationships (morphisms) with other sets?

Comment Source:You generalize the whole scheme of "probing" in Set to probing in a general category. In Set, a probe of set Y is a mapping from a singleton object {a} to a set Y. Here we need to generalize from mapping, singleton, and target set. Mapping becomes morphism. Target set becomes target object. What does a singleton set generalize to? Hint: How can you characterize a singleton set, not by looking inside it and seeing only one element, but only in terms of the graph structure of its relationships (morphisms) with other sets?
• Options
12.
edited January 17

@David Tanzer

What does a singleton set generalize to?

In terms of morphism, a generalized element for Y of Shape 1 will have "n" morphism from singleton category to every "n" object in category Y?

Comment Source:@David Tanzer What does a singleton set generalize to? In terms of morphism, a generalized element for Y of Shape 1 will have "n" morphism from singleton category to every "n" object in category Y? 
• Options
13.

I have roughly the same question as @Mitesh.

Following David Tanzer's line of reasoning, I would say that Singleton set generalizes to (becomes) source object.

I now have two objects, and a morphism, which are necessary components of a category, according to the definition of category. I will label the source object S, the target object T, and the morphism m.

So I have: m: S -> T

If there were also a reverse morphism from T to S (morphism n), n: T -> S, and not knowing anything about how many elements each object has, then I might say something like:

For any two elements in S, say a and b, and any two elements in T, say x and y, given x->a (x maps to a) and y->b (y maps to b), then in all cases a = b (a and b are the same thing). This is something that must be true of any singleton set.

And I might also say something about identities: m ; n = id(a) = id(b) or n(m(a)) = id(a) = n(m(b)) = id(b)

Does this way of looking at it make sense?

Comment Source:I have roughly the same question as @Mitesh. Following David Tanzer's line of reasoning, I would say that **Singleton set generalizes to (becomes) source object**. I now have two objects, and a morphism, which are necessary components of a category, according to the definition of category. I will label the source object **S**, the target object **T**, and the morphism **m**. So I have: **m: S -> T** If there were also a reverse morphism from T to S (morphism **n**), **n: T -> S**, and not knowing anything about how many elements each object has, then I might say something like: For any two elements in S, say a and b, and any two elements in T, say x and y, given x->a (x maps to a) and y->b (y maps to b), then in all cases a = b (a and b are the same thing). This is something that must be true of any singleton set. And I might also say something about identities: **m ; n = id(a) = id(b)** or **n(m(a)) = id(a) = n(m(b)) = id(b)** Does this way of looking at it make sense?
• Options
14.
edited January 17

Let me try again. I was trying to make a statement by asking a question, but it seems that some ambiguity in notion of generalizing a singleton led to confusion. To rephrase the question:

Within the category of Set, how can we abstractly characterize a singleton set -- meaning, without looking inside of it, just looking at the arrows in which it participates?

Well, if you picture the category Set as a directed graph, with one node for each set, and a directed edge $$f: A \rightarrow B$$ for every function from A to B, the answer is easy to see. (This is a multigraph, because there can be self-loops and multiple arrows from A to B.)

What's special about a singleton set Y in this graph? For any set Y (including X itself), there is one and only one edge going from X to Y. Since Y contains only one member, there is only one way to construct a function from X to Y. This is called a terminal object in the graph.

And singletons are the only terminal objects in the graph.

So to saying that a set is a terminal object is logically equivalent to saying that it contains a single member.

It is the abstract, categorical way of saying it, because it only involves the relationships, and makes no reference to any internal structures of the object.

Comment Source:Let me try again. I was trying to make a statement by asking a question, but it seems that some ambiguity in notion of generalizing a singleton led to confusion. To rephrase the question: Within the category of Set, how can we abstractly characterize a singleton set -- meaning, without looking inside of it, just looking at the arrows in which it participates? Well, if you picture the category Set as a directed graph, with one node for each set, and a directed edge \$$f: A \rightarrow B\$$ for every function from A to B, the answer is easy to see. (This is a multigraph, because there can be self-loops and multiple arrows from A to B.) What's special about a singleton set Y in this graph? For any set Y (including X itself), there is one and only one edge going from X to Y. Since Y contains only one member, there is only one way to construct a function from X to Y. This is called a **terminal object** in the graph. And singletons are the only terminal objects in the graph. So to saying that a set is a terminal object is logically equivalent to saying that it contains a single member. It is the abstract, categorical way of saying it, because it only involves the relationships, and makes no reference to any internal structures of the object. 
• Options
15.

So the "generalization" from a singleton set that I was hinting at was the concept of a terminal object. In the context of Set, terminal coincides with singleton, but the concept is well defined in every category.

Comment Source:So the "generalization" from a singleton set that I was hinting at was the concept of a terminal object. In the context of Set, terminal coincides with singleton, but the concept is well defined in every category. 
• Options
16.

Revisting the original question about probing.

In Set, a probe of a set S is a function from a singleton set X into S.

Now let's generalize this to all categories.

In a general category, a probe of an object A is a morphism from a terminal object T into A.

Comment Source:Revisting the original question about probing. In Set, a probe of a set S is a function from a singleton set X into S. Now let's generalize this to all categories. In a general category, a probe of an object A is a morphism from a terminal object T into A. 
• Options
17.

My understanding of terminal object is that there is an incoming arrow from all other object of the Category and initial object has an outgoing arrow to all other object of the category

But as per the definition of generalized element, we are saying that there is an outgoing arrow from terminal object to object A.

But at the same time, there would also be an incoming arrow from A to terminal object because of the later property of being a terminal. In that case, wouldn't we end up having an isomorphism between object A and terminal object? Which means that I can replace object A with a morphism between A and terminal object and vice versa

Comment Source:Hi @DavidTanzer My understanding of terminal object is that there is an incoming arrow from all other object of the Category and initial object has an outgoing arrow to all other object of the category But as per the definition of generalized element, we are saying that there is an outgoing arrow from terminal object to object A. But at the same time, there would also be an incoming arrow from A to terminal object because of the later property of being a terminal. In that case, wouldn't we end up having an isomorphism between object A and terminal object? Which means that I can replace object A with a morphism between A and terminal object and vice versa 
• Options
18.
edited January 17

Hi @Mitesh, what you wrote is correct except for your conclusion at the end about isomorphism.

But at the same time, there would also be an incoming arrow from A to terminal object because of the later property of being a terminal.

Yes.

In that case, wouldn't we end up having an isomorphism between object A and terminal object?

No.

Just having some arrow from A to B, and another from B to A, does not make A and B isomorphic.

But the definition of isomorphism calls for more than that: these arrows must be "inverses" of each other, meaning that when they are composed, the result is an identity arrow.

If it happens to be that the only endomorphisms (self-arrows) in a category are the identities, only then can one immediately conclude that two objects are isomorphic based on the existence of arrows going both ways.

This is concretely shown in the category of sets. In the old days, when we talked about sets without category theory, the definition of isomorphism meant that two sets have the same size. So the general categorical definition of isomorphism needs to amount to the same thing for Set.

Take two non-empty sets, A and B, of different sizes. They are not isomorphic, in the classical sense of having the same number of elements. And they are not isomorphic categorically either. There will always be an ample number of functions from A to B and vice-versa - at least one, and more than one if the target set is non a singleton.

But by and large, two opposite moving arrows from A to B will not compose to the identity function - that's a strong extra requirement, that two arrows are inverse to each other. For example, if A has multiple elements, and a function $$f: A \rightarrow B$$ sends everything in A to single element in B, then there is no way that a function $$g: B \rightarrow A$$ can be inverse to $$f$$. The result of going through $$f$$ and then back through $$g$$ will be to take you to some fixed element in A. But that composition is a constant function on A, not the identity function on A.

Comment Source:Hi @Mitesh, what you wrote is correct except for your conclusion at the end about isomorphism. > But at the same time, there would also be an incoming arrow from A to terminal object because of the later property of being a terminal. Yes. > In that case, wouldn't we end up having an isomorphism between object A and terminal object? No. Just having some arrow from A to B, and another from B to A, does not make A and B isomorphic. But the definition of isomorphism calls for more than that: these arrows must be "inverses" of each other, meaning that when they are composed, the result is an identity arrow. If it happens to be that the only endomorphisms (self-arrows) in a category are the identities, only then can one immediately conclude that two objects are isomorphic based on the existence of arrows going both ways. This is concretely shown in the category of sets. In the old days, when we talked about sets without category theory, the definition of isomorphism meant that two sets have the same size. So the general categorical definition of isomorphism needs to amount to the same thing for Set. Take two non-empty sets, A and B, of different sizes. They are not isomorphic, in the classical sense of having the same number of elements. And they are not isomorphic categorically either. There will always be an ample number of functions from A to B and vice-versa - at least one, and more than one if the target set is non a singleton. But by and large, two opposite moving arrows from A to B will not compose to the identity function - that's a strong extra requirement, that two arrows are inverse to each other. For example, if A has multiple elements, and a function \$$f: A \rightarrow B\$$ sends everything in A to single element in B, then there is no way that a function \$$g: B \rightarrow A\$$ can be inverse to \$$f\$$. The result of going through \$$f\$$ and then back through \$$g\$$ will be to take you to some fixed element in A. But that composition is a constant function on A, not the identity function on A. 
• Options
19.
edited January 18

Hello @DavidTanzer,

Below are few diagraph representation. I have dropped an incoming arrow to terminal object.

Does below graph indicate a generalized element

digraph G {
subgraph clusterA {1}
subgraph clusterC {x}
subgraph clusterD {y}
subgraph clusterB {a b c}
1 -> a -> 1
x -> b -> x
y -> c -> y
1 -> x -> 1
x -> y -> x
1 -> y -> 1
a -> x
a -> y
b -> 1
b -> y
c -> 1
c -> x
}

So there are three terminal object viz; 1, x and y. Since if there are more than one terminal object they are isomorphic in nature. Also, one terminal object probe one object from other category, so "1" probe "a" and "x" probe "b" and "y" probe "c".

So each object a, b and c terminates at each terminal object; 1, x and y

If this is true, there aren't the morphism from 1-> a and a-> isomorphic in nature?

Second, graph

digraph G {
subgraph clusterA {1}
subgraph clusterB {a b c}
1 -> a -> 1
1 -> b -> 1
1 -> c -> 1
}

It's a similar to first one but with single terminal object. Again isn't this generalized element having an isomorphism with each object in other category

Comment Source:Hello @DavidTanzer, Below are few diagraph representation. I have dropped an incoming arrow to terminal object. Does below graph indicate a generalized element digraph G { subgraph clusterA {1} subgraph clusterC {x} subgraph clusterD {y} subgraph clusterB {a b c} 1 -> a -> 1 x -> b -> x y -> c -> y 1 -> x -> 1 x -> y -> x 1 -> y -> 1 a -> x a -> y b -> 1 b -> y c -> 1 c -> x } So there are three terminal object viz; 1, x and y. Since if there are more than one terminal object they are isomorphic in nature. Also, one terminal object probe one object from other category, so "1" probe "a" and "x" probe "b" and "y" probe "c". So each object a, b and c terminates at each terminal object; 1, x and y If this is true, there aren't the morphism from 1-> a and a-> isomorphic in nature? Second, graph digraph G { subgraph clusterA {1} subgraph clusterB {a b c} 1 -> a -> 1 1 -> b -> 1 1 -> c -> 1 } It's a similar to first one but with single terminal object. Again isn't this generalized element having an isomorphism with each object in other category 
• Options
20.
edited January 18

Note: there was a formatting problem with the previous post, which I corrected. In the Markdown language, which is used here, in order to force a line break, you have to put at least two invisible trailing spaces on the line. Hey, I didn't design that feature.

Let's look at your second graph, which is simpler. Observe that because there are morphisms $$a \rightarrow 1$$ and $$1 \rightarrow b$$, then by composition there is also a morphism $$a \rightarrow b$$, which is not shown in your graph. By the same reasoning, there will be edges from all of the objects to all of the objects.

These implied edges also completely change the determination of what the terminal objects are, and what the relationships of isomorphism are.

Here is the general takeaway that I see from these observations.

Every category has a graph, but not every graph comes from a category.

So before using a graph to show a point about a category, one has to first be clear about what category you intend to represent by the graph, and to check that this category is indeed represented by the graph.

Comment Source:Hi @MiteshPandey, Note: there was a formatting problem with the previous post, which I corrected. In the Markdown language, which is used here, in order to force a line break, you have to put at least two invisible trailing spaces on the line. Hey, I didn't design that feature. Let's look at your second graph, which is simpler. Observe that because there are morphisms \$$a \rightarrow 1\$$ and \$$1 \rightarrow b\$$, then by composition there is also a morphism \$$a \rightarrow b\$$, which is not shown in your graph. By the same reasoning, there will be edges from all of the objects to all of the objects. These implied edges also completely change the determination of what the terminal objects are, and what the relationships of isomorphism are. Here is the general takeaway that I see from these observations. Every category has a graph, but not every graph comes from a category. So before using a graph to show a point about a category, one has to first be clear about what category you intend to represent by the graph, and to check that this category is indeed represented by the graph. 
• Options
21.
edited January 18

A nicer way to format code blocks in Markdown is like this:

digraph G {
subgraph clusterA {1}
subgraph clusterB {a b c}
1 -> a -> 1
1 -> b -> 1
1 -> c -> 1
}


To do this, you begin the block with a line ~~~, and end it with a line ~~~ as well.

To see how I did this, click on the gear for this comment (which becomes visible when you hover the mouse over top right corner of the comment panel), and click View Source.

Comment Source:A nicer way to format code blocks in Markdown is like this: ~~~ digraph G { subgraph clusterA {1} subgraph clusterB {a b c} 1 -> a -> 1 1 -> b -> 1 1 -> c -> 1 } ~~~ To do this, you begin the block with a line ~~~, and end it with a line ~~~ as well. To see how I did this, click on the gear for this comment (which becomes visible when you hover the mouse over top right corner of the comment panel), and click View Source.