This is a light reading post about the relations between chemlambda and em, the “emergent” graph rewrite system. Why em? What is the problem with chemlambda? What’s the point?
As you may have seen the chemlambda project entered a less public stage of development. At that stage chemlambda was a made-up very simple (but not too simple) chemistry which could either be implemented in the physical reality or it could be recognized as active in the physical reality. Both possibilities are great! See this html/js short presentation to see why molecular computers based on chemlambda may be very close to reality.
Walk with me on this road. At this moment chemlambda is a chemistry which has the feature that we can abstract from the main problem in computations in real chemistry: space. It is only enough to know that if the reactions are possible, then for well designed molecules, eventually they will do anything (Turing complete).
The main selling point of chemlambda, in my opinion, is the fact that it is a model of computation which is purely local and random. Want to use it for decentralized computing? Be my guest! (and write programs with me) But far more intriguing, at least in my view, is the chemistry part and the amazing (or frightening) avenues which open.
Let’s look at chemlambda working in a computer, by using the programs from the repository. Let’s pick the random reduction algorithm. All over it there are steps where a coin is flipped, which means that we use another program which generates pseudo-random numbers.
Q1: What is probability? (see Q5)
In real chemistry the probability (of chemical reactions, say) is the manifestation of space. Real molecules have shapes and they are in space (and everything is a quantum process) and all this is what creates probability.
Probability is space.
Or in chemlambda from inside the computer this is left to an unspecified program which gives pseudo-random numbers.
The program should be a part of chemlambda and there is where we should look for space.
Let’s continue with the idea that chemlambda is chemistry. A graph in chemlambda is a molecule which interacts randomly with other molecules according to the chemical reactions which are the graph rewrites. We can actually see all the molecules (in the original chemlambda we don’t see the enzymes) if we use another encoding of chemlambda, presented in Chemlambda strings and (partially, the main algorithm) in the needs repository.
Let’s pretend that these are real molecules. We made an artificial chemistry, let’s go one step further and make an artificial physics.
For this we need to reformulate all in terms of a quantum mechanics and a hamiltonian.
We don’t need to be very sophisticated, we just need some simple algorithmic way to look at space, physics and quantum mechanics… of these chemlambda molecules. The ultimate goal would be to build a pseudo-random number generator which is of the same nature, on the same level as the rest of the chemlambda algorithm.
Q2. What is space?
Here we have an answer: algorithmically a space is an emergent algebra, but expressed logically, for example by the em-convex rewrite system. Which is great, but darn, is commutative (as all linear logic btw). OK, we’ll fix it later, what next?
Q3. What is space from the point of view of building a quantum mechanics on it?
There are non-commutative versions of em which answer this. For example we can describe what is algorithmically a state space, by using em. The problem is that em itself describes a much larger class of spaces than needed by physics, but em plus another axiom than (convex) (because (convex) leads us to commutative spaces) gives us exacly what we need.
Q4. What is quantum mechanics?
That’s easy, is just a smooth evolution flow in such a space. Smooth? Yes, in the noncommutative sense which is encountered in sub-riemannian geometry. No need to use Hilbert spaces here, they are built, not primitive, like for example in projective geometry we can build the field of numbers by geometrical means.
Now we just need to pick the simplest hamiltonian for our molecules and eventually we arrive to
Q5. What is probability?
which translates into the real question, which is
Q6. How to merge the chemlambda side of the algorithm with the pseudo-random generator algorithm based on the made up space and physics?
seen that since everything is built from the same ingredients (graphs), they should be actually the same. Or otherwise said, the distinction between the chemlambda rewrites part of the algorithm and the random-generator which decides which rewrites are done, this distinction is artificial, deep down there is no distinction.