I was inspired by this flowchart of mathematical sets and wanted to try and visualize it, since I internalize math best in that way. This is what I've come up with so far:

Version 1 (old diagram)

Version 2: enter image description here

Is there anything that I'm missing, or that is incorrectly marked? For example, where exactly should I insert a box for Fréchet Spaces? And, is it safe to say that Normed Vector Spaces are a proper subset of the intersection between Locally Convex Spaces and Metric Spaces (or is it the entire intersection?)

Edit: Thank you, everyone, for your input. Obviously no single diagram is going to encapsulate the entirety of functional analysis, geometry, and topology (not to mention the myriad of algebraic structures I've ignored, as some of you have pointed out.) As someone who does a lot of analysis, I would often find myself going back to Wikipedia or my textbooks to re-read the definitions of the various spaces and sets I am working with. I just wanted something that could help me keep a lot of these ideas straight in my head; and was pretty and useful to glance at. I think I've settled on my final version (for now.) In summary, here is a quick bullet list of the labeled components of the diagram:

  • Topological Spaces: sets with a notion of what is "open" and "closed".
  • Vector Spaces: sets with operations of "addition" and "(scalar) multiplication".
  • Topological Vector Spaces: "addition" and "multiplication" are continuous in the topology.
  • Metric Spaces: sets that come with a way to measure the "distance" between two points, called a metric; the topology is generated by this metric.
  • Locally Convex Spaces: sets where the topology is generated by translations of "balls" (balanced, absorbent, convex sets); do not necessarily have a notion of "distance".
  • Normed Vector Spaces: sets where the topology is generated by a norm, which in some sense is the measure of a vector's "length". A norm can always generate a metric (measure the "length" of the difference of two vectors), and every normed space is also locally convex.
  • Fréchet Spaces: a set where the topology is generated by a translation-invariant metric; this metric doesn't necessarily have to come from a norm. All Fréchet spaces are complete metric spaces (meaning that if elements of a sequence get arbitrarily "close", then the sequence must converge to an element already in the space.)
  • Banach Spaces: a set that is a complete metric space, where the metric is defined in terms of a norm.
  • Inner Product Spaces: sets with a way to measure "angles" between vectors, called an inner product. An inner product can always generate a norm, but the space may or may not be complete with respect to this norm.
  • Hilbert Spaces: an inner product space that is complete with respect to this induced norm. Any inner product space that is incomplete (called a "pre-Hilbert Space") can be completed to a Hilbert space.
  • Manifold: a set with a topology that locally "looks like" Euclidean space. Any manifold can be turned into a metric space.
  • 3,738
  • 1
  • 28
  • 37
  • 4
    are there inner product spaces that are Banach spaces but not Hilbert spaces? – J. W. Tanner Aug 18 '19 at 05:00
  • @J. W. Tanner Aren't all $L^p$ spaces inner product spaces when equipped with the $L^2$ inner product? It's just that $L^2$ is the only one of those that's also a Hilbert space. I think that's correct. – Patch Aug 18 '19 at 06:12
  • Thats pretty nice looking, but think you’ve run up against the limits of usefulness for a chart if this type. It is getting complicated, unwieldy to revise, and hard to read. The flowchart is actually a bit more robust showing the relationships. – rschwieb Aug 18 '19 at 11:32
  • There is undoubtedly something missing. As long as you don’t define what complete is, there will be “something missing.” – rschwieb Aug 18 '19 at 11:35
  • Besides: How did you generate the graphic? Is there a clever TikZ tool or something similar for this kind of tasks? – user7427029 Apr 17 '21 at 19:02
  • @ user7427029: I actually just used Photoshop. I made a bunch of rectangles with dashed edges and low opacity fills. – Patch Apr 20 '21 at 00:27

4 Answers4


My advice is to place a lot more landmarks like $\mathbb R^n$. Ideally, every area should have at least one point in it, which will serve to prove that the area really belongs there. It will also clarify what the relationships really mean. For example, all manifolds are metrizable, but not uniquely. So if you want "manifolds" to extend outside of "metric spaces", then you should add a landmark like $S^1$ and then, in a list of landmarks below the diagram, explain why it's there:

$S^1$ denotes the circle as a topological space. It is a manifold. It is not homeomorphic to any real vector space, since it is compact. It is metrizable, like all manifolds, but it doesn't come equipped with any particular metric.

Speaking of which, manifolds have a finite dimension, which is a topological invariant. So if a real manifold does have a real vector space structure, then it is a finite-dimensional vector space, and that may make it difficult to draw meaningful distinctions within all the little slices in the manifold box. Again, depending on what you really mean, you might be able to justify those slices, so I'm not going to say that they're wrong. Trying to place landmarks in there will force you to decide what you want them to mean.

Once you go through enough examples, then you can summarize the meanings in a preface to the diagram:

This diagram depicts X. One box is placed entirely inside another box if either Y or (when it makes sense) Z.

Chris Culter
  • 26,935
  • 4
  • 46
  • 102
  • Honestly, I was unaware that all manifolds were metrizable. I was just going off the flowchart from Wikipedia for that one. In the revision I would keep "Manifolds" completely contained inside metric spaces. – Patch Aug 18 '19 at 05:53
  • In general I agree about adding more concrete examples. Would you happen to know if there are any other improper inclusions? Particularly, is J. W. Tanner correct? Are all complete inner product spaces also Banach spaces? Or is there a space that has an incompatible inner product and norm, but is still complete? – Patch Aug 18 '19 at 05:57

Ad the issue with inner product Banach space vs. Hilbert space: Every inner product space induces a norm and every norm induces a metric. A Banach space is a normed vector space such that the induced metric is complete. A Hilbert space is an inner product space such that the induced metric is complete. So in your diagram, Hilbert spaces should really be the whole intersection. In principle you may have a Banach space with some extra incompatible inner product, but then you have a normed vector space with two different norms, which is of course possible, but imho not in the spirit of your diagram.

Note that your diagram is simplifying (which is ok) in the following sense: an inclusion sometimes mean slightly different things. A Banach space is really the same structure as a normed vector space, it just has some extra property – that the induced metric is complete. In the same spirit you could add complete metric spaces in your diagram. On the other hand, a metric space is a topological space in the sense that the metric canonically induces a topology. But it is formally a different structure. Also, two different metric spaces may induce the same topological space this way, but two different Banach spaces always correspond to different normed vector spaces (since the corresponding functor is just the identity).

An inner product space is formally a different structure than the normed vector space it induces, but in fact the inner product may be reconstructed, so it may be viewed a normed vector space with an extra property. You may also consider the notion of a metrizable space. Structurally, it is just a topological space, but it has the property that there exists a compatible metric. Various relations between different structures may be probably best understood using the notion of functor from category theory.

For more concepts: every vector space is an abelian group, every abelian group is a group. Every vector space is over some field. Every field may be viewed as a vector space of dimension one over itself. A field has an additive group, but also a multiplicative group, so a field is a group in two different ways. There is a notion of a topological group. In fact, any algebraic structure may be additionally endowed with a compatible topology, so besides a topological group and a topological vector space you may have a topological ring, topological field or topological lattice.

I encourage you to draw such diagrams and experiment with various visualisations. Considering particular representative examples, as mentioned, is a good idea. Diagrams like this can be often extended various ways, but they easily become cluttered, so don't focus on tring to find one big diagram containing everything you know. Having multiple small and comprehensible diagrams representing various pieces/aspects/relations in the mathematical world will be more useful (it even often helps designing better bigger diagrams).

  • 8,576
  • 1
  • 13
  • 31
  • 3
    I took the liberty to elaborate a bit on your comments regarding inclusions vs. "transporting to a formally different structure" in [my answer](https://math.stackexchange.com/a/3327051/85341). (I first wanted to write a comment only, but it soon exploded into a full answer.) – ComFreek Aug 18 '19 at 15:01

Your profile says you are a PhD Candidate, so perhaps you are interested in some more details. Also maybe this answer is a bit off-topic and a bit overly advertising! But I found the things below extremely helpful for my own understanding how mathematics can be structured (digitally).

I would like to elaborate on user87690's answer. They are correct that your diagram treats obvious inclusions, e.g. Vectorspace $\hookrightarrow$ NormedVectorSpace, in the same way as non-obvious "inclusions", e.g. TopologicalSpace $\hookrightarrow$ MetricSpace. Let me introduce you to the the theoretical side of some very general framework called MMT, which is able to exactly capture all those cases of "blah induces blub". In one sentence, one could say MMT is a scalable module system for mathematical knowledge management. Knowledge is organized into MMT theories and MMT morphisms (or short morphisms) -- but we'll get to this. Let's first start where your post ended.

(Disclaimer: I have contributed to and written about MMT in the past. However, I'd dare to say that the things you'll hopefully learn below will easily convert over to other mathematical knowledge management systems. They all have a notion of modules and interconnection between modules.)

Generalized Inclusions

The generalization of inclusions are so-called MMT morphisms written as $\rightsquigarrow$, e.g. $$\text{TopologicalSpace} \rightsquigarrow \text{MetricSpace}.$$ You can read this as "any metric space induces a topological space". The same holds true for ordinary inclusions $\hookrightarrow$, e.g. $$\text{VectorSpace} \hookrightarrow \text{NormedVectorspace}$$ can also be read as "every normed vectorspace induces a vectorspace", but it's special insofar that a normed vectorspace is the same as a vectorspace with additional things -- norms and norm axioms.

With this notation, I can give you a new picture:

New theory graph with adapted notation of inclusions (\hookrightarrow) and general MMT morphisms (\rightsquigarrow)

Note that there is no arrow from $\text{BanachSpace}$ to $\text{InnerProductSpace}$ precisely because the latter is not necessarily complete. Hence an incomplete inner product space cannot induce a Banach space, which is complete by the very definition!

I'd like to remark that one can compose MMT morphisms. For example, we can obtain a morphism $\text{TopologicalSpace} \rightsquigarrow \text{HilbertSpace}$ by composition! It would translate to your diagram as follows: if a box $B$ is in a box $C$, and the box $C$ is in a box $D$, then $B$ is also in $D$.

What do MMT morphisms look like?

Until know I only told you how we could conveniently make use of that $\rightsquigarrow$ notation without telling you how it is really defined. For that we first have to define in between what this arrow actually is. What are its domain and codomain? They are MMT theories.


An MMT theory captures a specific mathematical theory. More precisely, it can list its signatures, axioms, theorems and proofs. All these notions are subsumed by so-called (typed) declarations. Essentially, theories are nothing else than list of such declarations. You can also think of the declarations as specifying a language for you to talk in.

Let me provide a running example. It'll be a bit easier than the mathematical theories you had in your diagram. Particularly, let us walk through the following assertion: $$\text{Monoid} \rightsquigarrow \text{NaturalNumbers}$$ Recall, this means that "natural numbers form a monoid". I assume you know what a monoid is: it's a set $U$ equipped with a binary associative operation $op: U \times U \to U$ and a neutral element $e \in U$. We've just identified three declarations we would formalize for the domain theory in MMT. Indeed, the formalization looks as follows:

theory Monoid =
    U: type ❙
    e: U ❙
    op: U ⟶ U ⟶ U ❙

I'll skip over some details, but you can recognize the same $U$, $e$ and $op$, right? Perhaps read $U \to U \to U$ as $U \times U \to U$. If you're interested, this is the same by currying. So far so good! (You might rightly remark that I skipped the associativity and neutrality axioms. Indeed, I did. You can add them in a very similar way via the propositions-as-types idiom/Curry-Howard correspondende.)

Let's continue with the natural numbers, the codomain of our morphism. They look as follows:

theory NaturalNumbers =
    ℕ: type ❙
    0: ℕ ❙
    successor: ℕ ⟶ ℕ ❙
    plus: ℕ ⟶ ℕ ⟶ ℕ ❙

We have the actual symbol $\mathbb{N}$, declare a zero symbol $0$, a successor function and finally a plus function.


Remember we wanted to make a formal version of our assertion $$\text{Monoid} \rightsquigarrow \text{NaturalNumbers}.$$ Now I finally can tell you what MMT morphisms are. Such a morphism $\varphi: S \rightsquigarrow T$ is a list of assignments: for every declaration $s \in S$ we have to give an assignment $\varphi(s)$, which is a $T$-expression. Let's see how the above envisioned morphism looks like:

view σ : Monoid -> NaturalNumbers =
    U = ℕ ❙
    e = 0 ❙
    op = plus ❙

You can replace the word view by morphism in your head. I am just sticking to the official syntax. That's it! This tells us that natural numbers form a monoid in the following sense:

  • we take their universe set $U$ precisely as $\mathbb{N}$,
  • we take the neutral element as $0$,
  • and we take the binary operation as plus.

Multiple Morphisms

One nice aspect of our generalization is that we can also express multiple inductions. Consider this:

  • the natural numbers form a monoid wrt. $0$ and $+$
  • the natural numbers form a monoid wrt. $1$ and $\cdot$

We already did the first bullet point above! Can you see how we would do the second one?

Overall, it's not enough to say that "natural numbers form a monoid". We must say how. Precisely by giving a concrete mapping -- a morphism. Often we omit this if there is only one obvious canonical morphism. For a different example, you might consider in which ways a Hilbert space might induce a topological space. Ever heard of the weak topology? :)

One more complex example

To conclude this introduction to MMT, I'll provide one more complex morphism, namely the one $$\text{MetricSpace} \rightsquigarrow \text{NormedVectorspace}.$$ I'll omit the code for involved (co)domain theories for brevity. Just imagine the domain had a declarataion $X: type$ for its universe and a declaration $d: X \to X \to \mathbb{R}$ for its metric. Similarly, imagine the codomain theory had a declaration $Y: type$ for its universe and -- among others -- a $norm: Y \to \mathbb{R}$ function as well as a subtraction function denoted by $-$. Then the morphism code would look as follows:

view σ : MetricSpace -> NormedVectorspace =
    X = Y ❙
    d = [y1: Y, y2: Y] norm (y1 - y2) ❙

You can read […] as (typed) lambda binders. So we assign to $d$ the anonymous function $Y \to Y \to \mathbb{R}$ with $y_1 \mapsto \left(y_2 \mapsto \lVert y_1 - y_2 \rVert\right)$.

Where to go from here?

Having formalized theories and morphisms allows us working with mathematical knowledge, especially auto-generating visualizations. Have a look at a TGView3D demo view and its corresponding arXiv article.

If you have further interest, you can

I am more than happy to answer questions if you have any :)

  • 1,411
  • 1
  • 9
  • 17
  • Of course it is just a convention, but it would seem more natural to me if the arrows depicting morphisms were going opposite way. You take a structure of natural numbers and turn it to a monoid structure, so the transformation is NaturalNumbers → Monoid. Of course you still define the transformation by defining every member of the target structure by the means of source structure. In the source code 'view σ : Monoid <- NaturalNumbers...' would be more natural to me. – user87690 Aug 18 '19 at 16:27
  • Also in your hand drawn diagram, the arrow between InnerProductSpace and HilbertSpace should be just an inclusion. And the arrow between VectorSpace and NormedVectorSpace is more like "forgetting" than just inclution, the signatures are different. – user87690 Aug 18 '19 at 16:31
  • @user87690 I can totally see where you are coming from regarding the morphism direction. I felt the same when I began learning this system. The idea is that for morphisms you have two sides of the medal: a syntax and a model side. MMT morphisms follow the syntactical direction and represent translation/specialization/refinement there. This gets evident if you consider the homomorphic extension $\bar{\sigma}$ for a morphism $\sigma$, which extends it to all closed well-typed domain expressions. Now consider you declared a theorem $thm$ together with a proof in $\text{Monoid}$... – ComFreek Aug 18 '19 at 18:51
  • … computing $\bar{\sigma}(thm)$ gives you the theorem's instantiation inside natural numbers *together* with the proof. There is an MMT meta theorem stating that this translated theorem and its proof are indeed well-typed, i.e. valid! Now, on the other hand, model-theoretic arguments work in the opposite direction. All models of the $\text{NaturalNumbers}$ theory induce a $\text{Monoid}$ model precisely in the way one might imagine. So forward direction = as above, backward direction = model induction... – ComFreek Aug 18 '19 at 18:54
  • Re your second comment: I agree, the one arrow should be an inclusion. Why are the signatures of VS and NVS different, though? NVS takes the signature of VS and *extends* it with one more declaration $norm: U \to \mathbb{R}$ and some norm axioms. Inclusions subsume signature extensions. (Perhaps you were coming from *mathematical* embeddings? The word *inclusion* is to be understood as importing the list of typed declarations of one theory. Literally as "#include theory.cpp" would do in C++.) – ComFreek Aug 18 '19 at 18:58
  • I just meant that extending a signature is still slightly more than just adding axioms – every normed space is a vector space if you forget the norm, but a Banach space just is a normed space. – user87690 Aug 18 '19 at 21:17

(I wanted to add this as a comment, but I don't have enough reputation)

Not really an answer to your question, but your visualization method looks quite similar to the diagrams in Counterexamples in Topology, see for example pages 16 and 21. What makes that approach very useful is that the authors provide examples for each area in the diagram ("landmarks" as Chris Culter called them), you may want to do the same. Another lesson from that book is that sometimes a single diagram may be too complex, and it's worthwhile to create several diagrams instead, especially if the concerns in question are not that closely related.

  • Thanks for taking the time to comment/post. I actually have never found the time to flip through that text, but you're certainly correct (especially about page 21!) – Patch Aug 19 '19 at 02:17