Abstract
It is well known that the Kolmogorov complexity function (the minimal length of a program producing a given string, when an optimal programming language is used) is not computable and, moreover, does not have computable lower bounds. In this paper we investigate a more general question: can this function be approximated? By approximation we mean two things: firstly, some (small) difference between the values of the complexity function and its approximation is allowed; secondly, at some (rare) points the values of the approximating function may be arbitrary.
For some values of the parameters such approximation is trivial (e.g., the length function is an approximation with error d except for a
A preliminary version of this paper was presented at CiE 2019 conference (In Computing with Foresight and Industry – 15th Conference on Computability in Europe, CiE 2019, Durham, UK, July 15–19, 2019, Proceedings (2019) 230–239 Springer).
Introduction
Kolmogorov complexity
A simple observation similar to the Berry paradox shows that Kolmogorov complexity is not computable, and, moreover, all computable lower bounds for the Kolmogorov complexity function, even partial ones, are bounded. In this paper we study how far is
One may consider the length function as an approximation for Kolmogorov complexity. It is well known that
In Section 4 we consider the approximation problem as a mass problem in the sense of Medvedev (an element of Medvedev lattice, see, e.g., [12] for definitions). We prove, under some natural assumptions about the approximation parameters, that this problem is hard (is above the halting problem in the Medvedev lattice).
Finally, in Section 5 we discuss some results about provability in formal arithmetic that are counterparts of the non-approximability results for Kolmogorov complexity (and use non-approximability in their proofs).
Approximations have high complexity
Plain and prefix complexities
Saying that “Kolmogorov complexity of a string is the length of a shortest program that generates this string”, we need to specify a programming language. Formally speaking, we introduce the notion of a decompressor. Let us give this definition for a more general case of conditional complexity.
Let D be a computable function of two arguments. The complexity
For every string x one may consider a decompressor that contains x as a constant and outputs it on all inputs. Then the empty string is a description and the complexity is zero. Thus, by changing the decompressor, we may drastically change the complexity. The following result (discovered by Solomonoff and Kolmogorov) shows that this change is limited. It was the starting point for the algorithmic information theory.
There exists a decompressor U such that for every decompressor D there exists a constant c such that
Such machine U is called an optimal decompressor. The proof is simple: U treats a part of its first input as a self-delimited description of some decompressor D and launches D on the rest of the input. Considering a different optimal decompressor U, we change the complexity function at most by a constant. So the Kolmogorov complexity function is defined up to an
Fix some optimal decompressor U. The value
Here is the statement relating complexity and length (mentioned in the Introduction).
There is some c such that
The first statement is obtained by comparing the optimal decompressor D used in the definition of complexity to the trivial one were each x is a description of itself. The second statement is true because different strings must have different descriptions and there are at most
We will need also a version of complexity called prefix complexity introduced (independently) by Levin and Chaitin.
A decompressor D is prefix-free if
There is a version of the Solomonoff–Kolmogorov result for prefix-free decompressors saying that there exists an optimal one (for this class):
There exists a prefix-free decompressor U such that for every prefix-free decompressor D there exists a constant c such that
Fix some optimal prefix-free decompressor U. Then the complexity
Since the class of allowed decompressors is smaller for prefix complexity, the plain complexity (Definition 2) does not exceed the prefix complexity (up to a constant). The difference between them is not very big, as the following result says:
The left inequality is obvious; to prove the right one we have to convert an arbitrary programming language (decompressor) into a prefix one. Informally speaking, one could prepend each program by the self-delimited code of its length. Here is the sketch. Consider, for each natural number k, a binary string
We refer the reader to [11] for the details of this proof and for other properties of plain and prefix complexities that are used in the sequel.
In this section we prove a basic technical result that deals with finite strings. This result says that every table that approximates (with small error) the complexity values for all strings of length n, except for a small fraction, has high complexity. Here is the exact statement. Consider some n and a finite function Reorder all strings x of length n in the order of non-increasing values Knowing n, the array of In this theorem the length of the interval where the values of complexity should lie, is As we have mentioned, the bound provided by Theorem 1 is tight: the complexity of n-bit string is in the interval
For a tighter bound (that will be used in the next section) we need to use the prefix version of complexity.
Under the conditions of Theorem
1
, we have
Now a bit more careful analysis is needed. Consider the concatenation of the following strings:
prefix-free description of d, of length prefix-free description of the bit string of length
We claim that the length of this concatenation, i.e.,
Indeed, having this combined string as an input, we first find m by reading the prefix-free description of it. Then we find d in the same way. We also know
It is important that at this moment we already know n. Indeed, the prefix-free property is valid only for the fixed condition (cf. the discussion in [1]).
Looking at the proof, we can extract a bit more. We used d only to find n when
Under the conditions of Theorem
1
, we have
Note also that
The following variation of our result extends it to the case when approximation is partial, i.e., when we allow
Consider some n and some program
The proof goes as before up to the point where we reconstruct
There is an alternative argument that may look a bit easier in the case of a partial table computed by some program. Instead of reordering the array and specifying an index in the reordered array, we may let m be the number of strings x of length n such that
A better and simpler bound can be obtained for the length conditional complexity, i.e., for function Consider some n and a finite function Using the same argument as in the proof of Theorem 1, we can find a string z among the first
Now we consider a uniform setting where some computable function is given and we study how well it approximates the complexity function for strings of all lengths. There are several ways to ask this question.
Computable bounds
Let us start with a version where parameters e and d are computable functions of n (the length of the string whose complexity is approximated).
Let
Assume this is not the case, and
On the other hand, for each n we may consider the array
The bound provided by this theorem is rather tight. Indeed, for every computable function
This result can be applied to resource-bounded versions of complexity. Let
We assume that
There are two well-known notions of approximate computability defined in [7].
Let
There is a subtle point in this definition. When defining the density for subsets of
A total function
A total function
It is natural to ask whether the complexity function is generically or coarsely computable. For the generic computability the negative answer is obvious, since any partial computable function that is a restriction of the complexity function and has infinite domain would allow us to find effectively, for every m, a string of complexity at least m (and this is impossible since this string is determined by m, that is, by
The complexity function
Assume that such a function c exists. By definition of coarse computability there exists a total computable function
Now we apply Corollary 1 and note that
If d is no more a constant but a computable function of n such that
A more general statement gives a lower bound for the number of n-bit strings where some partial computable function c fails to produce a d-approximation for complexity, for any value of d.
Let c be a partial computable function. For every two integers n and d consider the fraction of n-bit strings x where
We apply Theorem 3 to the program
The term
In this case
Let
In this section we consider approximation as a mass problem in the sense of Medvedev (see, e.g., [12] for details).
A mass problem
Usually total functions in this definition are understood as functions of type
For every set A we may consider a decision problem for A, i.e., the mass problem that is a singleton formed by the characteristic function of A. In this way the semilattice of Turing degrees is embedded in the semilattice of mass problems (ordered by reducibility). In particular, we may consider the halting problem as a mass problem (the decision problem for the set of halting programs).
Let
Let
Consider a function c that is a solution of Fix some n. For every number T consider the values Let us provide more details. Recall that we used some fixed optimal decompressor U in the definition of Kolmogorov complexity. Fix some computational model (say, Turing machines) and some machine that computes U. Now, consider the function We use also the relation between Kolmogorov complexity and busy beaver numbers that goes back to Chaitin (see [11, Section 1.2.2] for details). Denote by
There exists some c such that
The standard construction of the optimal decompressor uses the universal Turing machine, so the halting problem is reducible to the domain of U. Proposition 5 shows that this domain is reducible to the mass problem given m, compute some upper bound for Therefore, it remains to show how this mass problem can be reduced to the mass problem Assume that some function Now we get from the oracle c the array of length
If
The condition (*) remains true when T increases, so
Lemma 1 is proven, and this finishes the proof of Theorem 9. □
There is a connection between Kolmogorov complexity theory and logic. Probably the most simple and impressive example of this type is Chaitin’s proof [5] of Gödel incompleteness theorem: if all true statements were provable, we would be able to find effectively strings of high complexity searching for the proofs of statements “
Universal complexity statements
Universal statements are statements of the form
Following the idea suggested in [3,4], one may classify universal statements according to their complexity: the complexity of a universal statement U is the minimal length of a program u such that U is provably equivalent (in formal arithmetic) to non-termination of u. As usual, we should consider some optimal programming language that makes the complexity (defined as above) minimal, see [2, Section 3.2, p. 1388] for details. One can also consider the minimal Kolmogorov complexity of a program whose non-termination is provably equivalent to U.
There is a special class of universal statements considered by Chaitin [5]: the statements of the form “
The notion of a universal complexity statement depends on the choice of the optimal decompressor (though Chaitin’s result is true for all optimal decompressors). We assume in the sequel that a standard decompressor based on the universal machine is used.
It is shown in [2, Theorem 5, p. 1387] that if we add to formal arithmetic all true universal complexity statements as axioms, then all true universal statements are provable in the resulting theory. This motivates the following question: is it true that every universal statement is provably equivalent to some universal complexity statement? (Speaking about provable equivalence, we always have in mind provability in formal arithmetic.) If it were the case, then the mentioned result from [2] would be a corollary of this conjecture. However, some results from computability theory imply that this conjecture is false.
There is a universal statement that is not provably equivalent to any universal complexity statement.
This result is a proof-theoretic corollary of the following result in computability theory:
The set
This proposition is a special case of [10, Theorem 2.3]; we will provide its proof below for the reader’s convenience, but first let us show that it implies Theorem 10. Assume that every universal statement is provably equivalent to some complexity statement. Let us construct a total computable function that m-reduces the halting problem to U. Given a program p, we are looking for a universal complexity statement that is provably equivalent to non-termination of p. By assumption, such a statement Consider two disjoint (computably) enumerable sets if if To separate The set If If This finishes the proof of Theorem 10. □ We may consider universal conditional complexity statements, i.e., statements of the form It is easy to see that for some optimal decompressors it is true for trivial reasons. For example, we may consider an optimal decompressor It may seem at first glance that the answer is provided by [10, Theorem 2.1]: it is shown there that the set
In particular, the second case happens for all
Therefore, the set of p such that
In this section we present some other results that connect Kolmogorov complexity and proof theory. They are related to approximations for the Kolmogorov complexity function and extend the remarks made in [2, Section 3.1].
We have considered approximations up to an additive term; one may also consider approximations up to a constant factor. It is easy to see, for example, that there is no computable approximation up to factor 2 (everywhere; now we do not allow exceptions). Indeed, assume that some computable function c is such an approximation, i.e.,
As before, this result can be extended: the mass problem whose solutions are total approximations for C up to factor 2, is above the halting problem in the Medvedev lattice. In other words, we can construct a machine that solves the halting problem using (any) approximation c up to factor 2 as an oracle. Indeed, given some n and having access to c, we increase T until the function
One can also rephrase this argument in a different way. Consider the following mass problem: to separate incompressible strings x (such that
If for some length n and for some T the bounded complexity
(Recall that
We need to show that for every
Now, given n and the oracle for the separation problem that contains all strings of complexity less than
As before, this argument can be converted into a logic statement (briefly mentioned in [2, Section 3.1, remark on p. 1388]; here we provide a more detailed proof).
For every string x consider its complexity
In this proof we use that Lemma 2 can be stated and proven in formal arithmetic.
Consider some length n. Consider all compressible strings of length n. Consider some T that is enough to discover their compressibility, i.e.,
On the other hand, if we add only one axiom of this type (for some n-bit string x of complexity
Let x be a string of complexity m. Assume that some formula φ is provable in formal arithmetic with additional axiom
One can speculate about the philosophical meaning of this result as follows. Usually we want to prove formulas that have rather small complexity (and even small length), so an extension of a theory that does not change the class of provable formulas of small complexity can be considered as a “quasi-conservative” extension. So our result shows that a universal complexity statement that has a large gap between the actual complexity and the claimed lower bound generates a quasi-conservative extension.
Assume that φ is not provable without this additional axiom. Consider all strings x such that the implication
Note that there are less than
We can enumerate strings that have this property (implication is provable). For that we need to know only φ and
Assume that we add several (say, two) universal complexity statements with large gaps between the actual complexity and the claim. Can we then prove some simple statement that is not provable without them?
Footnotes
Acknowledgements
The authors are grateful to the participants of Kolmogorov seminar and to their colleagues at LIRMM for useful discussions. We also thank the anonymous reviewers for their comments and the editors of Computability for their kind support.
The first author was supported by RaCAF ANR-15-CE40-0016-01 grant. The third author was supported by ANR-15-CE40-0016-01 RACAF and ANR-21-CE48-0023 FLITTLA grants.
