Here's the tl;dr version: The question addressed is by Cubitt et al is, in their words, "Given a quantum many-body Hamiltonian, is the system to be described gapped or gapless?" They show that, in a very strong sense, the problem is undecidable. My claim is that this is much more than is needed to demonstrate undecidability in the sense relevant to decision problems in physics, and that, in the sense relevant to physics, undecidability is generic. [

*Edited 12*

*-13-15*]

Question: what should be meant by a decision problem of this sort?

When it comes to decision problems regarding sets of integers, there's no issue. Thanks to Church, Turing, and Post, we have a well-agreed upon definition of computable function on the natural numbers, and of decidable subset of the natural numbers: a subset

*A*of the natural numbers is decidable if and only if it is recursive, that is, if and only if there is a computable function

*f*such that

*f*(

*n*) is equal to 1 if

*n*∈

*A*, and 0 otherwise.

But the question posed isn't one of classifying integers, it's one of classifying

*Hamiltonians*. Given a Hilbert space, there are uncountably many Hermitian operators on the space, and so we can't code up the full decision problem in natural numbers that we can feed into a Turing machine.

What Cubitt at al. do is to construct a family of Hamiltonians that depend on a real parameter

*φ*, such that the system is gapped for some values of

*φ*, and gapless for others. Clearly, if this restricted problem is undecidable, then the general problem is.

So, let's think about decision problems on the reals. How should we think of the question of whether a given subset

*A*of the reals is algorithmically decidable?

I can think of a few ways to do this.

- There is a widely accepted notion of a computable function on the reals. We could adopt that, and ask whether there is a computable function
*f*such that*f*(*x*) is equal to 1 if*x*is in*A*, and 0 if not. - Alternatively, one could restrict the problem to the computable reals. There are only countably many of those, and they can be indexed by the code-numbers of the Turing machines that compute them. We could ask whether there is a computable function
*f*such that*f*(*n*) is equal to 1 if*n*is the index of a Turing machine that computes a real number*x*that is in*A*, and equal to 0 if*n*is the index of a Turing machine that computes a real number*x*that is not in*A*. We don't care what it does when*n*is not the index of a machine that computes a number; it can fail to halt, for all we care. - One could restrict the problem to rationals. We can index the rationals by natural numbers, and we can ask whether there is a computable function
*f*such that*f*(*n*) is equal to 1 if*n*is the index of a rational number in*A*, and equal to 0 if it's not.

Clearly, if a problem is undecidable in sense 3, it's undecidable. But I want to claim that sense 1, which is far weaker, is really the relevant sense. This is, perhaps, disappointing, because it makes the question of decision problems on the reals into a boring one.

First: what is a computable function on the reals? The standard answer, known as Grzegorczyk computability, is reminiscent of floating point computation. A program that computes a real function works with rationals as approximations to inputs and outputs. Suppose you want the program to compute the value of

*f*(

*x*) within a certain rational degree of precision ε. You provide the program with ε

*,*and with rational approximations to the input

*x*. The program is allowed to request closer and closer approximations to the input, which you are obliged to provide, but it has to halt and yield an approximation, within ε, to

*f*(

*x*), after finitely many steps.

This is, I think, the notion of computable function relevant to decision problems in physics. If you are asked to decide whether a given physical system, characterized by certain parameters, is in one class or another, you can ask the experimentalists to provide you with values of the parameters, but they will only be able to yield approximations within experimental error. You might ask them for better and better information about the relevant parameters, but, if you are to render a decision, you have to do so with only an approximation to the input parameter.

It's easy to see that, on this notion of a computable function on the reals, all computable functions are continuous. Which means that, in sense 1, there are no non-boring decision problems.

This strikes some people as counter-intuitive. But it is, I claim, the right answer.

Here's why. Recall that a sequence {

*x*} of real numbers is a

_{n}*computable sequence*if and only if there is a computable function that yields rational approximations, within 2

^{-m}, to

*x*, as a function of

_{n}*n*and

*m*. I claim that

- a necessary condition for a function
*f*on the reals to be a computable function is that it map computable sequences onto computable sequences, and

- a necessary condition for a set
*A*of reals to be decidable is that, for every computable sequence {*x*}, the sequence {χ_{n}_{A}(*x*)}is a computable sequence of 1s and 0s, where χ_{n}_{A}is the characteristic function of*A*.

If you do agree that these are necessary conditions on the relevant notions, they have far-reaching consequences. Mazur (1963, Th. 4.28) proved the following (see also Weihrauch 2000, Th. 9.1.2).

- If
*f*is a real-valued function on the reals that maps computable sequences to computable sequences, then, if {*a*}is a computable sequence that converges to a computable limit_{k}*a*, the sequence {*f*(*a*)} converges to_{k}*f*(*a*).

What people who work in computable analysis do, in light of this, is to replace questions of deciding membership in a set of reals with other questions. We can, for example, ask whether, for a given set

*A*, there is a computable function is equal to 1 in the interior of

*A*, equal to 0 in the exterior, and is undefined on its boundary. Or we can ask whether the distance function

*d*(

_{A}*x*), defined as the greatest lower bound of |

*x*–

*y*| for

*y*∈

*A*, is a a computable function. See Weihrauch 2000, Chs 4 & 5 for more on this sort of thing.

It seems to me that, given a fixed Hilbert space, one ought to be able to extend notions like these to subsets of the set of all Hermitian operators on the space. It would be interesting to see how the spectral gap problem looks from that point of view.

**References**

Cubitt, Toby S., David Perez-Garcia, & Michael M. Wolf, “Undecidability of the spectral gap”

*Nature*

**528**(10 December 2015), 207–211.

Mazur, S. (1963). Computable Analysis.

*Rozprawy Matematyczne*

**33**, 1-111.

Weihrauch, Klaus (2000).

*Computable Analysis*. Springer.