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

- All Categories 2.3K
- Chat 494
- ACT Study Group 6
- Green Mathematics 1
- Azimuth Math Review 6
- MIT 2020: Programming with Categories 53
- MIT 2020: Lectures 21
- MIT 2020: Exercises 25
- MIT 2019: Applied Category Theory 339
- MIT 2019: Lectures 79
- MIT 2019: Exercises 149
- MIT 2019: Chat 50
- UCR ACT Seminar 4
- General 64
- Azimuth Code Project 110
- Statistical methods 2
- Drafts 1
- Math Syntax Demos 15
- Wiki - Latest Changes 0
- Strategy 111
- Azimuth Project 1.1K

Options

## Comments

In lecture 2 (about time 5:30), Brendan introduces a notion of

Shape. I like this idea. Each Shape (object, pair, arrow, isomorphism) suggeststhe essence ofa 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

digraphlines, paste it into the WebGraphviz site, clickGenerate Graph!, and view the SVG image (as shown below).I wonder what other essences are lurking out there, or is this as far as we can go with this concept?

`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?`

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!

`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!`

@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.

`@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.`

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.

`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.`

My intuition on

what is aderives 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`// 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.

`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.`

@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.

`@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.`

@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?

`@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?`

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.

`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.`

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.

`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.`

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

`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`

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?

`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?`

@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?

`@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?`

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 objectT, and the morphismm.So I have:

m: S -> TIf 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)orn(m(a)) = id(a) = n(m(b)) = id(b)Does this way of looking at it make sense?

`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?`

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 objectin 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.

`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.`

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.

`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.`

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.

`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.`

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

`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`

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

Yes.

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.

`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.`

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

`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`

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.

`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.`

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

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.

`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.`