Does this statement about Hilbert spaces make any sense?
This is an old joke that's done the rounds on the internet a few times.
Stephan Rauh gave it a pretty good treatment on his blog last year, in which he concludes that it is indeed nonsense:
Funny thing is it took me a while to figure out that the sentence really is utter nonsense. Most people immediately dismiss it as a joke – but they’ll never know for sure. It sounds oh so scientific. Mathematicians like me know what the words mean, and we know a lot of weird ways to make sense of them. So my first reaction was “It’s obviously a joke – but what’s the truth behind it?”.
Well, there’s none. Or rather, there is. You can make the branch operator a homeomorphic endofunctor living in a Hilbert space by defining a mapping from the set of all git repositories to the sequence space ℓ∞. You can achieve this easily by using the byte representations of the git repository.
You can do even simpler by interpreting the bytes a git repository consists of as a giant number. Thus every each git repository is an integer, i.e. an element of Z, which can easily embedded into a Hilbert space. Unfortunately the operations of the Hilbert space don’t map to a sensible operations on git repositories.
But still, it sounds intriguing. This much is true: the branch function is a surjective function mapping a git repository to another. Let’s use the commit operation as the addition. Obviously, the set of git repositories form an abelian group, but the branch operator isn’t a homomorphism. Actually, that’s good news, because it would be useless otherwise.
I had a lot of fun this afternoon to find out that almost every word of the sentence is nonsense:
- branch() isn’t a functor but a function,
- it’s not homomorphic, let alone homeophic,
- it’s hard to see how the Hilbert space is defined and so on.
I tend to disagree with the arguments given by Stefan Rauh. First of all $l^\infty$ is not a Hilbert Space. However every discrete set (e.g. a countable set of numbers or a set of files or a set of Git repositories) can always be interpreted as a 0-manifold. If these manifoldes are to be interpreted as a submanifold of a Hilbert space there must be some metric which is compatible with the scalar product in this space. If its dimension is high enough, e.g. use $l^2$, then we can always embedd our 0-manifold and still be compatible with the requirements for a Hilbert Space. For example we might map each point to unit vector of an orthonormal basis.
So far I did not settle on what these Submanifolds are. I only noticed that any discrete set can be mapped to a 0-submanifold of a suitable Hilbert space.
So I want to restate the original quote to '... homeomorphic endofunctors mapping discrete sets.' Now the question becomes what the category should be.
Another observation is that the commits of a git repo form a directed graph. No matter how one branches this does not change the repository content. Instead it just labels some specific commit in some specific way.
So branching just adds another label to some node of this specific directed graph. Since the number of commits is finite the directed graph is also finite. Thus the possible labelings can be considered a countable discrete set. Excellent. I will make the vertices of these labelled graphs the objects of my category. The edges shall be the morphisms. The branch functor maps then just maps vertices (of one graph) to differently named vertices and edges (commits) to the "same" edges (commits) of the now named vertices. With other words: if you ignore the labels this is the identity mapping.
By construction this is an endomorphism. So we now already have an endofunctor that maps submanifolds of a Hilbert space. Now we need to take care of the "homeomorphic" part.
Choose whatever definition of homeomorphic that you want as long as it does not include the labels. Since the branch functor will only alter labels it will become homeomorphic.
Seems the statement is true nonsense.
Interpreted that way it is just a complicated way of saying "branching does not alter the commit structure".