Incompressibility method
In mathematics, the incompressibility method is a proof method like the probabilistic method, the counting method or the pigeonhole principle. To prove that an object in a certain class (on average) satisfies a certain property, select an object of that class which is incompressible. If it does not satisfy the property, it can be compressed by computable coding. Since it can be generally proven that almost all objects in a given class are incompressible, the argument demonstrates that almost all objects in the class have the property involved (not just the average). To select an incompressible object is  ineffective, and cannot be done by a computer program. However, a simple counting argument usually shows that almost all objects of a given class can be compressed by only a few bits (are incompressible). History. The incompressibity method depends on an objective, fixed notion of incompressibility. Such a notion was provided by the Kolmogorov complexity theory, named for Andrey Kolmogorov. One of the first uses of the incompressibility method with Kolmogorov complexity in theory of computation was to prove that the running time of a one-tape Turing machine is quadratic for accepting a palindromic language and sorting algorithms  require at least formula_1 time to sort formula_2 items. One of the early influential papers using the incompressibility method was published in 1980. The method was applied to a number of fields, and its name was coined in a textbook. Applications. Number theory. According to an elegant Euclidian proof, there is an infinite number of prime numbers. Bernhard Riemann demonstrated that the number of primes less than a given number is connected with the 0s of the Riemann zeta function. Jacques Hadamard and Charles Jean de la Vallée-Poussin proved in 1896 that this number of primes is asymptotic to  formula_3; see Prime number theorem (use formula_4 for the natural logarithm an formula_5 for the binary logarithm). Using the incompressibility method, G. J. Chaitin argued as follows: Each formula_2 can be described by its prime factorization formula_7 (which is unique), where formula_8 are the first formula_9 primes which are (at most) formula_2 and the exponents (possibly) 0. Each exponent is (at most) formula_11, and can be described by formula_12 bits. The description of formula_2 can be given in formula_14 bits, provided we know the value of formula_15 (enabling one to parse the consecutive blocks of exponents). To describe formula_15 requires  only formula_17 bits. Using the incompressibility of most positive integers, for each formula_18 there is a positive integer formula_2 of binary length formula_20 which cannot be described in fewer than formula_21 bits. This shows that the number of primes, formula_22 less than formula_2, satisfies A more-sophisticated approach attributed to Piotr Berman (present proof partially by John Tromp) describes every incompressible formula_2 by formula_9 and formula_27, where formula_28 is the largest prime number dividing formula_2. Since formula_2 is incompressible, the length of this description must exceed formula_11. To parse the first block of the description formula_9 must be given  in prefix form formula_33, where formula_34 is an arbitrary, small, positive function. Therefore, formula_35. Hence, formula_36 with formula_37 for a special sequence of values formula_38. This shows that the expression below holds for this special sequence, and a simple extension shows that it holds for every formula_39: Both proofs are presented in more detail. Graph theory. A labeled graph formula_41 with formula_2 nodes can be represented by a string formula_43 of formula_44 bits, where each bit indicates the presence (or absence) of an edge between the pair of nodes in that position. formula_45, and the degree formula_46 of each vertex  satisfies To prove this by the incompressibity method, if the deviation is larger we can compress the description of formula_48 below formula_49; this provides the required contradiction. This theorem is required in a more complicated proof, where the incompressibility argument is used a number of times to show that the number of unlabeled graphs is Combinatorics. A transitive tournament is a complete directed graph, formula_41; if formula_52, formula_53. Consider the set of all transitive tournaments on formula_2 nodes. Since a tournament is a labeled, directed complete graph, it can be encoded by a string formula_43 of formula_44 bits where each  bit indicates the direction of the edge between the pair of nodes in that position. Using this encoding, every transitive tournament contains a transitive subtournament on (at least) formula_57 vertices with This was shown as the first problem. It is easily solved by the incompressibility method, as are the coin-weighing problem, the number of covering families and expected properties; for example, at least a fraction of formula_59 of all transitive tournaments on formula_2 vertices have transitive subtournaments on not more than formula_61 vertices. formula_2 is large enough. If a number of events are independent (in probability theory) of one  another, the probability that none of the events occur can be easily calculated. If the events are dependent, the problem becomes difficult. Lovász local lemma is a principle that if events are mostly independent of one another and have an individually-small probability, there is a positive probability that none of them will occur. It was proven by the incompressibility method. Using the incompressibility method, several versions of expanders and superconcentrator graphs were shown to exist. Topological combinatorics. In the Heilbronn triangle problem, throw formula_2 points in the unit square and determine the maximum of the minimal area of a  triangle formed by three of the points over all possible arrangements. This problem was solved for small arrangements, and much work was done on asymptotic expression as a function of formula_2. The original conjecture of Heilbronn was formula_65 during the early 1950s. Paul Erdős proved that this bound is correct for formula_2, a prime number. The general problem remains unsolved, apart from the best-known lower bound formula_67 (achievable; hence, Heilbronn's conjecture is not correct for general formula_2) and upper bound formula_69 (proven by Komlos, Pintsz and Szemeredi in 1982 and 1981, respectively). Using the incompressibility method, the average  case was studied. It was proven that if the area is too small (or large) it can be compressed below the Kolmogorov complexity of a uniformly-random arrangement (high Kolmogorov complexity). This proves that for the overwhelming majority of the arrangements (and the expectation), the area of the smallest triangle formed by three of formula_2 points thrown uniformly at random in the unit square is formula_71. In this case, the incompressibility method proves the lower and upper bounds of the property involved. Probability. The law of the iterated logarithm, the law of large numbers and the recurrence property were shown  to hold using the incompressibility method and Kolmogorov's zero–one law, with normal numbers expressed as binary strings (in the sense of E. Borel) and the distribution of 0s and 1s in binary strings of high Kolmogorov complexity. Turing-machine time complexity. The basic Turing machine, as conceived by Alan Turing in 1936, consists of a memory: a tape of potentially-infinite cells on which a symbol can be written and a finite control, with a read-write head attached, which scans a cell on the tape. At each step, the read-write head can change the symbol in  the cell being scanned and move one cell left, right, or not at all according to instruction from the finite control. Turing machines with two tape symbols may be considered for convenience, but this is not essential. In 1968, F. C. Hennie showed that such a Turing machine requires order formula_72 to recognize the language of binary palindromes in the worst case. In 1977, W. J. Paul presented an incompressibility proof which showed that order formula_72 time is required in the average case. For every integer formula_2, consider all words of that length. For convenience, consider words with the middle  third of the word consisting of 0s. The accepting Turing machine ends with an accept state on the left (the beginning of the tape). A Turing-machine computation of a given word gives for each location (the boundary between adjacent cells) a sequence of crossings from left to right and right to left, each crossing in a particular state of the finite control. Positions in the middle third of a candidate word all have a crossing sequence of length formula_75 (with a total computation time of formula_76), or some position has a crossing sequence of formula_77. In the latter case , the word (if it is a palindrome) can be identified by that crossing sequence. If other palindromes (ending in an accepting state on the left) have the same crossing sequence, the word (consisting of a prefix up to the position of the involved crossing sequence) of the original palindrome concatenated with a suffix the remaining length of the other palindrome would be accepted as well. Taking the palindrome of formula_78, the Kolmogorov complexity described by formula_77 bits is a contradiction. Since the overwhelming majority of binary palindromes have a high Kolmogorov complexity, this gives a lower bound on the average -case running time. The result is much more difficult, and shows that Turing machines with formula_80 work tapes are more powerful than those with formula_9 work tapes in real time (here one symbol per step). In 1984, W. Maass and M. Li and P. M. B. Vitanyi showed that the simulation of two work tapes by one work tape of a Turing machine takes formula_82 time deterministically (optimally, solving a 30-year open problem) and formula_83 time nondeterministically (in, this is formula_84. More results concerning tapes, stacks and queues, deterministically and nondeterministically, were proven with the incompressibiity method. Theory of  computation. Heapsort is a sorting method, invented by J. W. J. Williams and refined by R. W. Floyd, which always runs in formula_85 time. It is questionable whether Floyd's method is better than Williams' on average, although it is better in the worst case. Using the incompressibility method, it was shown that Williams' method runs on average in formula_86 time and Floyd's method runs on average in formula_87 time. The proof was suggested by Ian Munro. Shellsort, discovered by Donald Shell in 1959, is a comparison sort which divides a list to be sorted into sublists and sorts  them separately. The sorted sublists are then merged, reconstituting a partially-sorted list. This process repeats a number of times (the number of passes). The difficulty of analyzing the complexity of the sorting process is that it depends on the number formula_2 of keys to be sorted, on the number formula_89 of passes and the increments governing the scattering in each pass; the sublist is the list of keys which are the increment parameter apart. Although this sorting method inspired a large number of papers, only the worst case was established. For the average running time, only the best case  for a two-pass Shellsort and an upper bound of formula_90 for a particular increment sequence for three-pass Shellsort were established. A general lower bound on an average formula_89-pass Shellsort was given which was the first advance in this problem in four decades. In every pass, the comparison sort moves a key to another place a certain distance (a path length). All these path lengths are logarithmically coded for length in the correct order (of passes and keys). This allows the reconstruction of the unsorted list from the sorted list. If the unsorted list is incompressible (or nearly  so), since the sorted list has near-zero Kolmogorov complexity (and the path lengths together give a certain code length) the sum must be at least as large as the Kolmogorov complexity of the original list. The sum of the path lengths corresponds to the running time, and the running time is lower-bounded in this argument by formula_92. This was improved to a lower bound of where formula_94. This implies for example the Jiang-Li-Vitanyi lower bound for all formula_89-pass increment sequences and improves that lower bound for particular increment sequences; the Janson-Knuth upper bound is  matched by a lower bound for the used increment sequence, showing that three pass Shellsort for this increment sequence uses formula_96 inversions. Another example is as follows. formula_97 are natural numbers and formula_98, it was shown that for every formula_2 there is a Boolean formula_100 matrix; every formula_101 submatrix has a rank at least formula_102 by the incompressibility method. Logic. According to Gödel's first incompleteness theorem, in every formal system with computably enumerable theorems (or proofs) strong enough to contain Peano arithmetic, there are true (but unprovable) statements or theorems. This is proved by the incompressibility method; every formal  system formula_103 can be described finitely (for example, in formula_104 bits). In such a formal system, we can express formula_105 since it contains arithmetic. Given formula_103 and a natural number formula_107, we can search exhaustively for a proof that some string formula_108 of length formula_2 satisfies formula_110. In this way, we obtain the first such string; formula_111: contradiction. Comparison with other methods. Although the probabilistic method generally shows the existence of an object with a certain property in a class, the incompressibility method tends to show that the overwhelming majority of objects in the class (the average, or the expectation ) have that property. It is sometimes easy to turn a probabilistic proof into an incompressibility proof or vice versa. In some cases, it is difficult or impossible to turn a proof by incompressibility into a probabilistic (or counting proof). In virtually all the cases of Turing-machine time complexity cited above, the incompressibility method solved problems which had been open for decades; no other proofs are known. Sometimes a proof by incompressibility can be turned into a proof by counting, as happened in the case of the general lower bound on the running time of Shellsort.