42.04.08 · mathematical-logic / computability-degrees

Kolmogorov Complexity and Algorithmic Randomness

shipped3 tiersLean: none

Anchor (Master): Downey and Hirschfeldt 2010 *Algorithmic Randomness and Complexity* (Springer) Ch. 6-11 (the Schnorr-Levin characterisation, Chaitin's $\Omega$ as a left-c.e. ML-random real, van Lambalgen's theorem, the randomness hierarchy — computable, Schnorr, ML, weak-2, and 2-randomness — and the degree theory of randomness: $K$-lowness, lowness for ML-randomness, the Nies-Hirschfeldt-Downey theorem that low-for-random $=$ low-for-$K$ $=$ $K$-low, and the relation to the c.e. and Turing degrees); Nies 2009 *Computability and Randomness* (Oxford Logic Guides 51) Ch. 3, 5, 8 (the prefix-free machine theory, ML-randomness and its degree theory, the $K$-low reals and the cost-function method); Li and Vitányi 2019 *An Introduction to Kolmogorov Complexity and Its Applications* 4e (Springer) Ch. 2-4, 6 for the incompressibility method in combinatorics and average-case analysis

Intuition Beginner

The earlier units in this chapter measured how hard a set is to compute. This unit measures something that sounds different but turns out to be the same story told backwards: how random a string or a sequence is. The link is a single idea — randomness is the absence of any pattern a computer could exploit.

Think about describing a string of a thousand digits to a friend over the phone. If the string is "one thousand zeros," you say exactly that, and the description is tiny. If the string is the first thousand digits of a familiar constant, you name the constant. But if the string was made by flipping a fair coin a thousand times, there is almost certainly no short way to say it: the shortest description is roughly the string itself, digit for digit. The length of the shortest description is a measure of how much real information the string carries.

Call a string incompressible when its shortest description is about as long as the string. Most strings are incompressible, for a plain counting reason: there are far more long strings than there are short descriptions to go around, so short descriptions run out and most strings are stuck describing themselves. Incompressible is the finite version of random.

For infinite sequences the same instinct needs a second sharpening. A sequence is random when it passes every test a computer could run to catch a pattern — every effective bet, every effective regularity, every shrinking target a program could aim at. Remarkably, three different ways of saying "no pattern" — passing every effective test, having incompressible chunks, and avoiding every small effectively-described target — all pick out the very same sequences. And there is a single most famous random number, built straight from the halting problem, called Chaitin's number. The rest of the unit makes the three pictures precise and proves they coincide.

Visual Beginner

Picture every length- string on the left and every shorter program on the right, and try to pair each string with a program that prints it.

   strings of length n            programs shorter than n
   (there are 2^n of them)        (there are 2^n - 1 of them)

   000...0  --------------------> "n zeros"        (a short program)
   a familiar pattern  ---------> "the pattern"    (a short program)
   ...
   most strings  ----- ? -------> NOT ENOUGH short programs left
                                  -> the string must describe itself

   Count: 2^n strings, only 2^n - 1 shorter programs.
   The short programs run out, so most strings are INCOMPRESSIBLE.

Now the infinite picture. A test is a shrinking sequence of targets a computer can list, with the targets getting smaller and smaller; a sequence is caught if it lands in every target.

picture of "random" what the computer does a sequence is random when
incompressible chunks compress each starting block no block compresses by more than a fixed amount
passes every test list shrinking targets to catch patterns it escapes every shrinking target
avoids small targets aim at effectively-described tiny regions it sits in no effectively-tiny region

Read the table across: three different machines, three different verdicts, but they agree on exactly which sequences count as random. The agreement is the heart of the subject.

Worked example Beginner

We compare three length-eight strings and read off how compressible each is, to feel the difference between order and randomness with concrete numbers.

Step 1. Take . A description is "print eight times," which is far shorter than the string itself once the count gets large; the content is just the pair "the symbol " and "the number ." This string is highly compressible — almost all of its eight bits are predictable from a short recipe.

Step 2. Take . A description is "print four times." Again the recipe is short: one small block plus a repeat count. Compressible, for the same reason — a rule generates the whole string, so you ship the rule, not the string.

Step 3. Take , produced by eight coin flips. There is no shorter rule in sight: "print " is about the best you can do, so the description is roughly the string itself. Among the strings of length eight, at most can have a description shorter than eight bits, because there are only programs of length seven or less. So at least one string of length eight is incompressible, and in fact the large majority are within a bit or two of incompressible.

What this tells us: compressibility tracks pattern. A string with a rule behind it has a short description; a string made at random almost surely has none, because short descriptions are a scarce resource that the many random strings cannot all share. The same scarcity, pushed to infinite sequences, is what makes "random" mean "no effective pattern, anywhere, ever."

Check your understanding Beginner

Formal definition Intermediate+

Fix the standard enumeration , the c.e. sets with stage approximations of 42.04.03, oracle functionals , the jump , and the iterated jumps of 42.04.04. Strings are elements of , sequences elements of Cantor space with the uniform (Lebesgue) measure ; is the length- prefix of , and is the basic clopen cylinder, .

A machine is a partial computable . The plain complexity relative to is ( if none). A machine is universal if for every there is a constant with for all ; the invariance theorem gives such a , and any two universal machines agree up to an additive constant, so is well-defined modulo [Li-Vitanyi Ch. 2]. A machine is prefix-free if its domain is an antichain under (no halting program is a prefix of another). A universal prefix-free machine exists by the same argument; its complexity is the prefix (Kolmogorov-Chaitin) complexity , again well-defined up to . The defining inequalities are and .

A prefix-free machine's domain satisfies the Kraft inequality . Conversely, the Kraft-Chaitin theorem: given a c.e. set of requests with , there is a prefix-free machine and, for each request, a program with and . Hence is subadditive, , repairing the failure of subadditivity for [Nies Ch. 2].

A Martin-Löf test is a uniformly c.e. sequence of classes in with . A sequence fails the test if ; the failure set is an effective null set. is Martin-Löf random (ML-random) if it fails no ML-test, equivalently passes a single universal ML-test obtained by effectively combining all tests [Downey-Hirschfeldt Ch. 6]. A real is left-c.e. if it is the increasing limit of a computable sequence of rationals.

A set is -low if for all . A set is low for ML-randomness if every ML-random sequence is ML-random relative to , and low for if for all .

Counterexamples to common slips Intermediate+

  • "Plain complexity is subadditive." It is not: fails because a plain decoder cannot tell where the program for ends and that for begins. The self-delimiting prefix-free domain is precisely what restores and hence .

  • " characterises ML-randomness." The exact bound must absorb an additive constant: ML-randomness is . With plain even fails for every complexity oscillations force infinitely often, which is why the Schnorr-Levin theorem uses , not .

  • "Random means avoiding every measure-zero set." Only the effective null sets count. A single ML-random is the sole member of the measure-zero set , which it certainly does not avoid; the constraint is to avoid every effectively-presented (uniformly c.e., measure-controlled) null set, of which there are only countably many.

  • " depends on nothing but the definition." depends on the choice of universal prefix machine ; different give different reals. What is invariant is that every such is left-c.e., ML-random, and Turing-equivalent to ; the Solovay-complete left-c.e. reals are exactly these halting probabilities (Kučera-Slaman).

Key theorem with proof Intermediate+

The organising result identifies randomness with incompressibility: a sequence is Martin-Löf random exactly when no initial segment can be compressed by more than a constant. This is the Schnorr-Levin theorem, and it ties the test picture to the complexity picture.

Theorem (Schnorr-Levin). For : is Martin-Löf random iff there is a constant with for all . [Downey-Hirschfeldt Ch. 6]

Proof. ( by contraposition: not ML-random initial segments compressible.) Suppose fails the universal ML-test , so with . Each is , hence a c.e. union of cylinders ; list for each the strings generating . For the level (), the generating strings satisfy , so and summing over keeps the total . By the Kraft-Chaitin theorem build a prefix machine that, on a program of length , outputs ; then for every generating . Since for every , some prefix generates it, giving . As grows, the compression is unbounded, so fails for every .

( by contraposition: compressible initial segments not ML-random.) Suppose for every there is with . Define , a class since is upper-semicomputable (its graph is c.e. from above). Counting: the number of strings of length with is at most the number of prefix programs of length , and by the Kraft inequality ; summing the measure over all such gives . So is an ML-test (after the index shift level), and because some initial segment of enters each . Thus fails an ML-test and is not ML-random.

Bridge. The Schnorr-Levin theorem is the foundational reason the two definitions of randomness — passing every effective test and having incompressible initial segments — are not two notions but one: a test of measure is, via Kraft-Chaitin, a -bit compression of whatever it catches, and incompressibility is exactly the absence of every such compression. This is exactly the counting argument of the Beginner tier made effective, where short descriptions are scarce and a measure- target is a description bits shorter than the string it traps; the Kraft inequality is the conservation law that bounds how many strings can be cheaply described, and it is dual to the measure bound on tests. The construction builds toward Chaitin's in the Advanced results, the canonical sequence whose initial segments are incompressible because is the halting probability of the very prefix machine defining , and it appears again in van Lambalgen's theorem, where relativised incompressibility makes randomness a symmetric relation. The central insight is that the jump of 42.04.04 enters here as the source of the canonical random real: , so the halting problem is not merely hard but maximally information-dense, and putting these together, randomness measured by tests, by , and by effective null sets is one phenomenon whose canonical witness is built from .

Exercises Intermediate+

Advanced results Master

Randomness has a degree theory as rich as the c.e. degrees of 42.04.06: the maximally non-random reals form a definable ideal, the canonical random real is the halting probability, and the randomness notions stratify into a strict hierarchy indexed by the jump.

Theorem 1 (Chaitin's ; the number of wisdom). Fix a universal prefix machine and set , the halting probability [Downey-Hirschfeldt Ch. 6]. Then is left-c.e. (the increasing limit of computable rationals), Martin-Löf random (its initial segments are incompressible, by Schnorr-Levin), and incomputable; moreover , and the first bits of uniformly compute the halting of all programs of length . The left-c.e. ML-random reals are exactly the -numbers — the halting probabilities of universal prefix machines — and they are precisely the Solovay-complete c.e. reals (Calude-Hertling-Khoussainov-Wang; Kučera-Slaman). Thus packages the entire halting problem into a single real that is simultaneously as enumerable as a c.e. set and as patternless as a fair coin.

Theorem 2 (-lowness and lowness coincide). A set is -low if : its initial segments are as compressible as possible, the exact antithesis of . The Nies-Hirschfeldt-Downey theorem [Nies Ch. 5] identifies three a priori different lowness notions: is -low is low for () is low for ML-randomness (every ML-random real stays ML-random relative to ) is a base for ML-randomness ( for some that is ML-random relative to ). Every -low set is , and the -lows form a , c.e.-presentable, downward-closed ideal under in the Turing degrees, lying strictly below , inside both the low degrees () and the non-cuppable c.e. degrees. There are noncomputable -lows (Solovay; Downey-Hirschfeldt-Nies-Stephan), built by the cost-function method.

Theorem 3 (van Lambalgen's theorem). is ML-random iff is ML-random and is ML-random relative to [Nies Ch. 3]. Consequently relative randomness is symmetric for ML-random reals: if is random then is random relative to and random relative to , so " is random relative to " and " is random relative to " hold together. The theorem is the engine of the degree theory of randomness — it reduces questions about pairs to relativised single-real questions, and it fails for the weaker notions (Schnorr, computable randomness), which is one diagnostic separating ML-randomness from its neighbours.

Theorem 4 (the randomness hierarchy). The natural randomness notions form a strict ascending chain [Downey-Hirschfeldt Ch. 7]: computable randomness Schnorr randomness at the lower end, then Martin-Löf randomness, weak-2-randomness, and -randomness ( ML-randomness relative to ), with each notion strictly stronger than the last and -randomness already strong enough to make (the random real adds no jump information beyond the join). Schnorr randomness uses tests whose measures converge computably to ; weak-2-randomness uses null sets; the -randomness ladder is the arithmetical hierarchy of 42.04.05 applied to the test complexity, so the jump of 42.04.04 indexes the strength of randomness exactly as it indexes computational difficulty. The Kučera-Gács theorem sits across this picture: every real is computable from some ML-random real, so randomness does not bound Turing complexity from above.

Theorem 5 (the incompressibility method and normality). Algorithmic randomness yields a proof technique — the incompressibility method [Li-Vitanyi Ch. 6]: to prove a combinatorial statement, fix an incompressible object (a string with ) and derive bounds from the impossibility of compressing it. It delivers average-case lower bounds for sorting and Turing-machine running time, the expected behaviour of algorithms, Ramsey-type and graph estimates, and number-theoretic bounds (including prime-gap estimates), serving as a deterministic counterpart of the probabilistic method, with the incompressible object playing the role of the "random" object whose existence the counting argument guarantees. Algorithmic randomness also refines classical typicality: every ML-random sequence is Borel-normal (each block of digits appears with its limiting frequency), but normality is strictly weaker — there are computable normal numbers (Champernowne's constant) that are far from random.

Synthesis. Algorithmic randomness is the foundational reason "no pattern" has a single precise meaning rather than three competing ones: unpredictability by effective tests, incompressibility by prefix complexity, and avoidance of every effective null set are the same condition, and this is exactly the Schnorr-Levin theorem read together with the universal-test construction — a measure- effective target is, via Kraft-Chaitin, a -bit compression, so a test is a description and incompressibility is the absence of descriptions. The canonical witness is Chaitin's , the halting probability of the prefix machine that defines , which is left-c.e. like a c.e. set yet ML-random like a fair coin and Turing-equivalent to ; this is the central insight that the halting problem of 42.04.02 is not merely undecidable but maximally information-dense, and it generalises the jump of 42.04.04 from a measure of difficulty to a source of randomness.

The degree theory mirrors the c.e. degrees of 42.04.06 in negative: where the priority method populates the interval with intermediate degrees, the -lows populate it with the least random reals, and the Nies-Hirschfeldt-Downey coincidence — -low low for low for ML-random — makes "adds no randomness power" a single robust class, a ideal of low non-cuppable degrees dual to at the random extreme. Putting these together, the randomness hierarchy is the arithmetical hierarchy of 42.04.05 applied to test complexity: -randomness is randomness relative to , so the iterated jump indexes both ladders, and van Lambalgen's theorem is the bridge that makes relativised randomness symmetric, the foundational reason a degree theory of randomness exists at all. The incompressibility method then turns the whole apparatus outward, using a single incompressible object as the deterministic stand-in for the probabilistic method across combinatorics and average-case analysis.

Full proof set Master

Proposition 1 (invariance theorem). There is a universal prefix-free machine such that for every prefix-free machine there is with for all ; consequently any two universal prefix-free machines give complexities agreeing within .

Proof. Enumerate the prefix-free machines uniformly (effectively recognising prefix-freeness is not needed: clip each machine to its prefix-free core by accepting a program only if no proper prefix has already halted, which preserves universality). Fix a prefix-free coding of indices with — itself prefix-free since the codes form an antichain. Define ; the domain is prefix-free because is self-delimiting and each has prefix-free domain, so no halting input of is a prefix of another. Then with . For two universal machines apply the bound in each direction: and , so .

Proposition 2 (Kraft-Chaitin / machine-existence theorem). Given a c.e. set of requests with , there is a prefix-free machine with, for each , a program of length and .

Proof. Process requests in enumeration order, maintaining the available part of as a finite union of dyadic intervals (the still-unassigned binary subtree). For request choose a dyadic interval of length from the available set, aligned at a multiple of ; assign its defining length- string as with , and remove that interval. The greedy rule — always take the leftmost available aligned interval of the required size, splitting a larger free interval if necessary — keeps the free region a union of dyadic intervals of distinct sizes, and an interval of size is always available because the total length requested so far is , so the used length never exceeds and the alignment invariant guarantees a fitting slot. The assigned strings are pairwise prefix-incomparable (their intervals are disjoint), so is prefix-free. is computable since the request set is c.e. and the bookkeeping is finite at each stage.

Proposition 3 (universal ML-test). There is a single ML-test such that is ML-random iff ; equivalently a largest effective null set exists.

Proof. Enumerate all ML-tests effectively: a candidate is a uniformly c.e. double sequence , and from any c.e. sequence force the measure bound by truncating at the stage its enumerated measure would exceed (a computable guard), yielding a genuine test that equals when the latter is already a test. Set . Then , and is uniformly c.e., so it is an ML-test. If fails some test , then for all , in particular for all , so fails . Conversely failing is failing an ML-test. So is the union of all effective null sets, the largest effective null set, and its complement is the ML-random reals.

Proposition 4 ( is left-c.e., incomputable, and ). Chaitin's is the increasing limit of computable rationals, is not computable, and satisfies .

Proof. Left-c.e.: is a computable nondecreasing sequence of rationals with limit (the Kraft inequality gives , and since halts on something). Incomputable: by Proposition 4's left-c.e.-ness and Schnorr-Levin (Theorem 1) is ML-random, and no ML-random real is computable — a computable fails the test of measure . For : given , enumerate until (as binary fractions); thereafter no program of length can newly halt, since one would contribute and overshoot the known prefix, so the halting set restricted to length is decided — letting , . For : is left-c.e., so its left cut is c.e., hence (the -th bit is decided by a query asking whether the approximation stabilises). So .

Proposition 5 (a left-c.e. ML-random real is Turing-complete). Every -number — every left-c.e. ML-random real — is Turing-equivalent to .

Proof. Let be left-c.e. and ML-random, with computable increasing rational approximation . Always since the left cut is c.e. For completeness, suppose toward contradiction . The key lemma (Kučera-Slaman) is that a left-c.e. real that does not compute has slow convergence in a way an ML-test can exploit: the "amount of approximation still to come past stage ", , is then -approximable finely enough that the intervals capturing form a uniformly c.e. sequence of measure trapping 's binary expansion — an ML-test fails, contradicting ML-randomness. Hence , so . (The full argument uses the Solovay reducibility of c.e. reals: ML-random and left-c.e. is Solovay-complete, and Solovay completeness implies Turing completeness.)

Proposition 6 (-lows are closed downward and ). Every -low set is , the -lows are closed under , and they are downward closed under within the -lows via lowness for .

Proof (skeleton). A -low satisfies for a constant . By the Nies-Hirschfeldt-Downey characterisation (Theorem 2) is low for , so ; the witnessing constant is computed from . The number of sets with a fixed -lowness constant is finite at each length up to a -bounded counting (the decanter/golden-run argument bounds how many -length strings can be -low with constant ), which places , hence . Closure under : if are -low with constants then by subadditivity of and , so is -low. Downward closure within the class is immediate from low-for- being closed under . So the -lows form a ideal in the Turing degrees, below .

Proposition 7 (Schnorr randomness is strictly weaker than ML-randomness). There is a Schnorr-random real that is not ML-random.

Proof (skeleton). A Schnorr test is an ML-test with computable as a function of (not merely ); is Schnorr-random if it passes every Schnorr test. Every ML-random real is Schnorr-random (fewer tests to pass). For the strict separation, the universal ML-test has measure only upper semicomputable, not computable, so it is not a Schnorr test; one constructs a real failing — hence not ML-random — while diagonalising against every Schnorr test, using that the computable-measure constraint lets one predict the test's measure and steer out of each for Schnorr . The construction is a finite-extension argument relative to the (computable) measure approximations, in the spirit of the Kleene-Post construction of 42.04.04. Hence is Schnorr-random but not ML-random, separating the two notions.

Connections Master

  • Turing reducibility, oracles, and the jump 42.04.04, the prerequisite, supplies the relativised machinery on which the whole degree theory of randomness rests: the oracle functionals that define relativised complexity and relativised randomness, the jump that makes and indexes the -randomness ladder, and the join that van Lambalgen's theorem analyses. That unit owns the jump as a measure of computational difficulty; this unit shows the same jump is a source of randomness, with the halting probability of made into a single ML-random real.

  • The Turing degrees and the priority method 42.04.06 is the structural mirror of this unit's degree theory of randomness. Where the priority method populates the interval with intermediate c.e. degrees by finite injury, the -low reals populate it with the least random sets, forming a c.e.-presentable ideal of low, non-cuppable degrees built by the cost-function method — a construction technique kindred to priority. The Nies-Hirschfeldt-Downey coincidence theorem is the randomness-theoretic analogue of the Friedberg-Muchnik landmark, and both live among the c.e. degrees that unit charts.

  • The arithmetical hierarchy and Post's theorem 42.04.05 calibrates the randomness hierarchy: -randomness is ML-randomness relative to , weak-2-randomness uses null sets, and ML-tests are classes, so the syntactic ladder of that unit is the meter for the strength of a randomness notion. The non-computability of and is upper-semicomputability — a approximation from above — placing the complexity functions precisely in the hierarchy that unit builds.

  • The halting problem and recursion theorem 42.04.02 is the source of and of the Berry-paradox non-computability of : the halting probability is the measure of the halting set in program space, the first bits of decide halting for length- programs, and the proof that is non-computable is a recursion-theoretic diagonalisation against a hypothetical short description of "the least incompressible string." That unit owns the single halting diagonal; this unit weighs the halting set and finds it maximally information-dense.

Historical & philosophical context Master

The subject has three independent origins around 1964-1966. Ray Solomonoff introduced program-size complexity in 1964 as a foundation for inductive inference and a formalisation of Occam's razor, defining a universal prior over hypotheses. Andrei Kolmogorov, in his 1965 paper "Three approaches to the quantitative definition of information," proposed the complexity as the algorithmic counterpart of Shannon entropy and as a definition of the information content of an individual object, independent of any probability distribution [Li-Vitanyi Ch. 1]. Gregory Chaitin, then a teenager, arrived at program-size complexity independently and pursued its connection to incompleteness and the halting probability. The plain complexity had a known defect — its failure of subadditivity and the complexity oscillations that block a clean characterisation of randomness — which Leonid Levin and Chaitin resolved in the early 1970s by passing to prefix-free machines and the complexity .

The definition of randomness for infinite sequences was given by Per Martin-Löf in 1966, a student of Kolmogorov, who replaced the failed attempt to define randomness by statistical tests alone with the notion of an effective null set and a universal test [Downey-Hirschfeldt Ch. 6]. The equivalence of randomness with incompressibility — the Schnorr-Levin theorem — was established by Claus-Peter Schnorr and Levin in the early 1970s. Chaitin's appeared in his 1975 paper on a theory of program size, and the modern degree theory of randomness — van Lambalgen's 1987 theorem, and the -lowness results identifying low-for-random with low-for- — was developed by Michiel van Lambalgen, André Nies, Denis Hirschfeldt, Rod Downey, Frank Stephan, and Joseph Miller in the decade after 2000, with the Kučera-Slaman characterisation of the -numbers and the Nies-Hirschfeldt-Downey coincidence theorem as its central results.

Bibliography Master

@article{kolmogorov1965three,
  author  = {Kolmogorov, Andrei N.},
  title   = {Three approaches to the quantitative definition of information},
  journal = {Problems of Information Transmission},
  volume  = {1},
  number  = {1},
  year    = {1965},
  pages   = {1--7}
}

@article{solomonoff1964formal,
  author  = {Solomonoff, Ray J.},
  title   = {A formal theory of inductive inference, Part I},
  journal = {Information and Control},
  volume  = {7},
  number  = {1},
  year    = {1964},
  pages   = {1--22}
}

@article{martinlof1966definition,
  author  = {Martin-L{\"o}f, Per},
  title   = {The definition of random sequences},
  journal = {Information and Control},
  volume  = {9},
  number  = {6},
  year    = {1966},
  pages   = {602--619}
}

@article{levin1974laws,
  author  = {Levin, Leonid A.},
  title   = {Laws of information conservation (non-growth) and aspects of the foundation of probability theory},
  journal = {Problems of Information Transmission},
  volume  = {10},
  number  = {3},
  year    = {1974},
  pages   = {206--210}
}

@article{schnorr1973process,
  author  = {Schnorr, Claus-Peter},
  title   = {Process complexity and effective random tests},
  journal = {Journal of Computer and System Sciences},
  volume  = {7},
  number  = {4},
  year    = {1973},
  pages   = {376--388}
}

@article{chaitin1975theory,
  author  = {Chaitin, Gregory J.},
  title   = {A theory of program size formally identical to information theory},
  journal = {Journal of the ACM},
  volume  = {22},
  number  = {3},
  year    = {1975},
  pages   = {329--340}
}

@phdthesis{vanlambalgen1987random,
  author  = {van Lambalgen, Michiel},
  title   = {Random Sequences},
  school  = {University of Amsterdam},
  year    = {1987}
}

@article{kucera1985measure,
  author  = {Ku{\v{c}}era, Anton{\'\i}n},
  title   = {Measure, $\Pi^0_1$-classes and complete extensions of {PA}},
  journal = {Lecture Notes in Mathematics},
  volume  = {1141},
  year    = {1985},
  pages   = {245--259}
}

@article{kuceraslaman2001randomness,
  author  = {Ku{\v{c}}era, Anton{\'\i}n and Slaman, Theodore A.},
  title   = {Randomness and recursive enumerability},
  journal = {SIAM Journal on Computing},
  volume  = {31},
  number  = {1},
  year    = {2001},
  pages   = {199--211}
}

@article{nies2005lowness,
  author  = {Nies, Andr{\'e}},
  title   = {Lowness properties and randomness},
  journal = {Advances in Mathematics},
  volume  = {197},
  number  = {1},
  year    = {2005},
  pages   = {274--305}
}

@book{downeyhirschfeldt2010,
  author    = {Downey, Rodney G. and Hirschfeldt, Denis R.},
  title     = {Algorithmic Randomness and Complexity},
  series    = {Theory and Applications of Computability},
  publisher = {Springer},
  year      = {2010}
}

@book{nies2009computability,
  author    = {Nies, Andr{\'e}},
  title     = {Computability and Randomness},
  series    = {Oxford Logic Guides},
  number    = {51},
  publisher = {Oxford University Press},
  year      = {2009}
}

@book{livitanyi2019introduction,
  author    = {Li, Ming and Vit{\'a}nyi, Paul},
  title     = {An Introduction to Kolmogorov Complexity and Its Applications},
  edition   = {4},
  series    = {Texts in Computer Science},
  publisher = {Springer},
  year      = {2019}
}