~Understanding epiplexity
Resource-bounded algorithmic information theory
Everyone seems to be talking about the paper by Finzi et al. (2026), “From Entropy to Epiplexity: Rethinking Information for Computationally Bounded Intelligence.” I finally got around to studying it this week.
In this short technical note, I discuss the theoretical definition of epiplexity from a computer science perspective, work through some of the basic examples and properties from the paper in a slightly generalised setting, and then explore various examples of my own.
Disclaimer: This note will be exclusively focused on the formal theoretical framework of defining epiplexity within a minimum description length framework, as a kind of successor to (algorithmic) information theory. There is a whole second side of this paper that is about applying this framework as a lens on deep learning “paradoxes” and phenomena. I am still reading that part, I might write some thoughts on it later, but I won’t discuss it in this note.
Acknowledgements: Thanks to Joan Velja and Lennie Wells for helpful discussions.
Word count: 5625
Contents:
- Defining epiplexity
- Examples and basic properties of epiplexity
- Recovering unbounded complexity and entropy
- Independent sequences
- Breaking ties
- Conclusion
§Defining epiplexity
Epiplexity is billed as “the structural content in data,” a complexity or information measure that excludes any information that appears to be randomness to a learner/observer with limited computational resources. That sounds useful, let’s see how it’s formalised.
§§Setting and overview
Let’s view the data as a binary random variable for some fixed number of bits . This random variable has some probability distribution, call it .
The way I see it, there are two core motivating ideas behind epiplexity:
The first idea is that there might be some “structure” in the distribution leading to patterns in that render some of the bits predictable in terms of others. It would be nice to be able to quantify how much of is predictable based on these kinds of patterns, versus unpredictable entirely.
The paper’s approach is broadly to consider compressing in two parts: first encoding a program representing a probability distribution, and second encoding itself with the optimal coding scheme for that probability distribution. If program is well-chosen this could be cheaper than coding ’s bits directly, and we can call the bits spent on coding the program structural information (the remaining bits are a kind of entropy).
The second idea is that some patterns in that could be used to more efficiently compress it in principle might in practice be out of reach for an observer with computational limits. For example, a cryptographically secure PRNG emits very structured data (in fact it’s deterministic) and this structure is easy enough to describe with a short program, but the fastest program to exploit this structure to design a coding scheme is going to have an unreasonably long run-time.
The paper’s response is to repeat step (1) but considering only programs that fit within a particular computational budget (specifically, a time complexity budget).1 The epiplexity is the length of the shortest efficient program that encodes a probability distribution used in an optimal coding scheme, where optimality is judged among coding schemes based only on other efficient-program-based probability distributions. If the time budget doesn’t allow detecting a cryptographically secure PRNG, then its output bits may as well be random, and will contribute to the (time-bounded) entropy, rather than the epiplexity.
Epiplexity is short for “epistemic complexity,” with “epistemic” indicating the definition is relative to the observer’s resource constraints.
That was fast—let’s go through it again in much more detail.
§§Computable probability distributions
Let’s formalise what it means for a program to represent a probability distribution. The two fundamental operations an observer might want to use to interact with a probability distribution are sampling (useful for generation) and density estimation (useful for computing cross entropy training loss and designing optimal codes).
Fix a prefix-free universal Turing machine .2 Then, a (computable) probabilistic model on is any program for that supports access to a probability distribution via these two fundamental operations.
Density evaluation: Let . We require that simulating on the input via halts, producing as output a finite-precision number .3 We further require that the function satisfies the properties of a probability mass function:
For all , .
.
Sampling: Let be an unbounded string of uniformly random noise. We require that simulating on input halts, producing the string with probability .
Of course, we also require that the two operations match in terms of the underlying probability distribution, that is, for all ,
Note that there are three P symbols floating around:
- is a program for our universal Turing machine, specifically a computable probabilistic model. It’s a binary string. (The paper uses the notation .)
- is the density function encoded by the program . It’s a function mapping each binary string to its probability mass. (The paper uses the notation or italic .)
- is the probability of generating a string under the sampler encoded by the program , given uniform random noise input (The paper uses the slightly cumbersome notation , which I elected to streamline)
Fortunately, we only need to keep (1) and (2) around going forward, since we agreed by definition that .
§§Representing resource limits
The above definition of a probabilistic model is similar to Definition 7 from the paper. However, unlike the paper’s Definition 7, we haven’t yet introduced any restrictions on the probabilistic models to represent the observer’s limited computational affordances.
The paper focuses on time complexity, and defines a time-bounded families of probabilistic models where is some time-limit function (of ) telling us how many steps of are allowed to be used by during density evaluation or sampling.
In this note, I wanted to step back and define computable probabilistic models in general, so that I can talk about restricting to arbitrary sets of probabilistic models over . Therefore, below, I’ll consider a generic set of allowed probabilistic models, denoted . This set could be defined by a time bound (like ). Alternatively, it could be a finite set of hand-constructed programs, or the set of all computable probabilistic models, for example.
This generalisation is an extension mentioned but not pursued in the paper. I adopt it in this note because for the basic properties we consider the extensions are immediate, and it also allows greater flexibility in exploring connections to other topics in (algorithmic) information theory.
§§The optimal two-part code
The next step towards defining epiplexity is to develop the two-part coding scheme for efficiently compressing the random variable , subject to our computational limits.
Suppose our observer wants to store an instantiation of using a probabilistic model , namely via the following scheme:
First, they encode the probabilistic model .
Since is a program, they can store the bits directly, costing bits.
Second, they use an optimal code algorithm to design a code for samples from the distribution , and then use this code to encode the instantiation of itself.
The cost in bits will depend on the exact value of . In expectation, the cost will be the cross entropy of relative to , .4
The total number of bits the observer can expect to store if they use for encoding is therefore which we call the description length of via .
Is this a good way of compressing a random value? That depends. If , then the optimal coding scheme will allow the observer to store almost as efficiently as if they knew , which could be very efficient in some cases. Either way, they also need to store , so that the decompressor can reconstruct the coding scheme used to encode to decode it at the other end.
Fortunately, the observer gets to choose which probabilistic model to use, at least within the limits of their computational resources. As promised, let’s denote the set of probabilistic models available to our observer as (this might be all computable probabilistic models, or just efficient ones, or whatever). The observer can then choose so as to make as close to as possible, while balancing bits saved encoding against the bits they have to add to encode alongside it. The best they can do is which we’ll call the (-restricted) minimum description length of .5
§§Epiplexity
Finally, we are in a position to define epiplexity itself.
Given , the (-restricted) epistemic complexity, or epiplexity of , denoted , is simply the length of the (shortest) program from a two-part code achieving the minimum description length. Formally, (breaking ties by lowest ).6
Recall that epiplexity was billed as the structural information in data accessible to a computationally bounded observer. In summary:
By using the two-part code, we decomposed the information in into that required to describe the computation of a density (structural information) and the remaining information.
By searching for the shortest overall description length, we extracted as much structure as possible into the program part, right up until the point where further bits added to the program stopped saving more than an equal number of bits of cross entropy.
By restricting ourselves to programs in for the encoding, we account for only computable structure that the observer can actually afford to use. The bits remaining may or may have structure, but if they do, it’s structure that is beyond the observer’s computational resources to exploit.
§§Time-bounded entropy, or “epientropy”
This brings us to the complementary notion introduced in the paper: what about the bits the observer expects to use to compress during the second part of the optimal two-part code? These bits represent the remaining, apparently-random information content of that wasn’t explained by affordable computational structure.
Formally, I’m referring to the quantity where (again, breaking ties by lowest ).
The paper calls the time-bounded entropy of . However, since we’re not restricting ourselves to time-bounded program classes, we’ll need a new name.
For a full name, I think we could mirror that of epiplexity, calling it “-restricted epistemic cross entropy.” Just like with epiplexity, we might want to include “epistemic” to nod to the idea of the structure/randomness distinction being dependent on the (computational resources available to the) observer. We might like to include “cross” because this is technically a cross entropy (relative to ) and we might like to distinguish it from the entropy of the distribution , , a quantity that is potentially relevant for some learning algorithms.
In the case of epiplexity, the authors also gave their concept a catchy nickname. I think this cross entropy term is similarly fundamental and deserves its own name. The obvious suggestion is epientropy. The prefix “epi” matches epiplexity. The only downside is we lose recognition that it’s actually a cross entropy, but I couldn’t find a nice place for an infix “x.”
Whatever it’s to be called, I think it should be something that mirrors whatever epiplexity is to be called, since these two quantities seem equally meaningful, and satisfyingly decompose the expected length of the optimal two-part code:
§§Visualising the definitions
At this point, the definition might still be a little abstract. We’ll explore some examples and connections soon, but first, I thought of a neat visualisation that should help to make the definitions a little more intuitive.
Fix , , and . Then we can associate to every program a length coordinate and a cross-entropy coordinate. Each program is then a point, and forms a point cloud. Diagonal lines, or “isolengths,” correspond to sets of programs offering equivalent description lengths. When we talk about minimising description length via over this set, we’re visually corresponds to finding the point on the left/downmost diagonal line.
The specific shape of the point cloud depends on which programs are included, on the universal Turing machine, and the variable . However, we have the following basic bounds.
Program length , in particular it’s non-negative.
Zero itself may not be reached. Depending on the universal Turing machine, it can take a few bits minimum to encode a program (let alone a valid probabilistic model).
Cross entropy , using basic results from information theory ( denotes the entropy of ).
The bound will be reached if and only if for some , otherwise we might approach the bound indefinitely (or as far as we can within our computational budget).
§Examples and basic properties of epiplexity
Now that we have a new pair of quantities, let’s see what we can do with them!
§§Uniform distribution
Lets say we have a variable distributed uniformly over . What is its epiplexity? The paper briefly describes this useful baseline.
First, assume that the uniform distribution over is representable by some program . This should be true for most cases based on resource limitations, since the uniform density can be efficiently implemented (it’s a constant ) and uniform sampling can be efficiently simulated (copy the first bits from the random tape). On any reasonable universal Turing machine this is probably one of the shortest and fastest valid probabilistic models implementable.
Assume without loss of generality that is the shortest implementation of this probabilistic model in . Then we have:
In this case, we know this program achieves the minimum description length since we have minimised the cross entropy (it matches the entropy of ) and we have minimised the program length amongst affordable programs with that property by assumption. Therefore, we can read out the epiplexity and epientropy directly:
§§General upper bounds
While the uniform case was much easier to analyse than the general case, we can still leverage it to get a very general bound. Let be arbitrary. Then, under the same assumptions on and , we still have
This is not necessarily the minimum description length of , but it does give us a general upper bound:
This is “basic property (2)” noted in the paper. Unfortunately, in general we can’t extend this to a pair of bounds and . The above bound only holds on the sum. Decreasing the description length may involve altering the trade-off between program length and cross entropy.
We can turn this upper bound on the sum into some basic upper bounds on each term, however, since we have lower bounds and :
We note that while none of these bounds are that powerful, they came easily: all we needed was a single program with a known description length. We can re-apply the same reasoning as soon as we have any example program (or any other bound on the description length): When it comes to estimating epiplexity and epientopy in practical examples, we might be able to obtain reasonably tight bounds in some cases.
§§Relaxing the restrictions
Basic property (3) in the paper shows that relaxing the time restriction generally can only decrease the minimum description length. The reason is because this generally only makes more programs available for consideration, which can only expand the possibilities for minimisation.
This monotonicity property of the minimum description length can be generalised immediately to our more abstract setting by considering what happens if we generally add programs to the restricted class .
So, assume . Then we have
Again, the bound does not tell us anything about whether the epiplexity or epientropy will decrease/increase individually, only that their sum will not increase if we expand our affordances. The optimal ratio between extracted structure and random information could potentially change in either direction.
§Recovering unbounded complexity and entropy
Epiplexity and epientropy were motivated by the desire to incorporate computational limitations into (algorithmic) information theory. If we remove the computational limitations, do we recover Kolmogorov complexity and Shannon entropy as epiplexity and epientropy respectively? Not quite, but they do show up in analogous positions.
First, we should assume the true underlying data distribution is representable as a computable probabilistic model. For data we encounter in the real universe, this seems like a pretty safe bet (this is the so-called physical Church–Turing thesis).
Then, to remove all computational resource restrictions, let represent all computable probabilistic models. By assumption, there is some such that . There will be many actually, define to be one of the shortest among them. We’ll define its length to be the Kolmogorov complexity of , .
Then, the description length of via simplifies as follows: where is the Shannon entropy of .
So we have found Kolmogorov complexity playing the role of a structure term, the first part of the two-part code, and Shannon entropy playing the role of a cross-entropy term, the second. This immediately gives us a bound on the (unbounded-compute) epiplexity and epientropy: To say more, we’d need to know that is minimal. The problem is, it seems like it might not be minimal in general! is as low as it’s possible to get the cross entropy term, but if we’re willing to raise the cross entropy term a little, we might sometimes be able to get away with a shorter program than that still approximately matches .
§Independent sequences
A slightly more intricate example is the following. Suppose our random variable is actually a concatenation of independent and identically distributed substrings. I don’t believe this was discussed in the paper, but it’s a common assumption in learning, so it’s worth considering what we can say about this case. As I suspected, there turn out to be a few simple observations we can make.
§§Iterating variables
Formally, consider two random variables:
, a random variable taking values in , distributed according to ; and
where and each is an independent copy of , that is, is a random variable taking values in , distributed according to .
The goal of this section is to relate minimum description lengths, epiplexities, and epientropies across these two variables.
§§Iterating probabilistic models
One barrier is that each variable needs a different family of probabilistic models. Since these variables have different numbers of bits, they require probabilistic models with different type signatures. Let’s denote the affordable probabilistic models for as , and those for as , where we use a subscript to indicate the relevant variable length.
One simple assumption we could make is to relate these program classes is to populate with iterated versions of the distributions in . Formally, given , define a probabilistic model on based on the following density evaluation and sampling implementation:
For density evaluation of a string , compute , , …, using , and return .
For sampling, generate samples using (consuming non-overlapping segments of the noise tape).
The result will be a probabilistic model and satisfy . If we use a reasonable universal Turing machine, transforming into will only require a small number of bits to encode the iteration procedures and the constant (independent of the size of ). Let’s adopt this assumption and call the constant , such that we have If we’re worried about time complexity, these constructions should only inflate the runtime of polynomially in and .
Let’s lift this to the set of programs . Define , a set of programs over containing -iterated copies of the programs in : We shall proceed by defining the restricted class . This might seem like a fairly restricted way to define an expanded class of programs. Note that except where noted, the following arguments work if we merely assume . This latter condition would be achieved by modestly expanding a time complexity bound, for example, as discussed above. Introducing more programs may lead to unexpected new minima, of course.
§§A basic upper bound
Intuitively, it seems like can’t have that much more (accessible) structural information than , since one copy of already represents the full complexity of the distribution and just repeats that structure times. On the other hand, encoding multiple specific samples from the distribution means replicating the unpredictable structure multiple times. This all suggests that could have a similar epiplexity but a larger epientropy than . As it turns out, this isn’t necessarily true, but we can at least turn this intuition into a description length bound, as follows.
Starting in the realm of , suppose is a program achieving the minimum description length of (after breaking ties by shorter program length), such that
By lifting to , we get the following basic upper bound on the minimum description length in the iterated case. The result is a satisfyingly interpretable bound on the description length in the iterated case! Look:
In the first part of this two-part code (via ), namely the first two terms of the bound, we’re proposing to encode the program plus a small amount of additional structure () required to specify that it is being iterated.
In the second part of the two-part code, we see that we have to pay times the cost of coding a single example’s remaining bits. This makes sense, since there are random draws to be had.
The satisfying part is that while we paid the entropy encoding cost repeatedly, we didn’t have to do this for the program length. As long as is large or is otherwise relatively small, we’re way out-competing the naive coding approach of separately coding each sample along with its own copy of the program.
§§Weighted minimum description length
Can we do better? Is this upper bound tight? Assuming , the bound might be tight in some cases, depending on . But, it could easily be suboptimal, for the following reason.
Formally, assuming , we can perform a similar decomposition of the description length for all programs as we did for :
We can thus reduce the problem of minimising description length of over to a minimisation problem involving and . The result is subtly different from the problem of minimising description length of . We can ignore that the objective has an extra term. We assumed does not vary with . Therefore, it can’t change where the minimum is: The important difference from the original objective is that this objective has a different coefficient on the cross entropy term. This is a meaningful change. It means we should think of increases in cross entropy as more costly than increases in program length when balancing the two. Equivalently, we could imagine down-weighting the program complexity versus the cross entropy.
Intuitively, the interpretation of this coefficient is that the need to encode samples from copies of creates a greater incentive to export structure into the first part of the two-part code. Specifically, we previously would have declined the option to add one bit to reduce the cross entropy by a fractional bits. In the iterated case, this is a good deal, as we get to repeat that saving times leading to an overall saving of bits.
If there is a program that offers that kind of trade, then it will beat on description length in the iterated case. However, at least we can tell this will be the case by analysing the single-variable case, as long as we search for the best program with a re-weighted objective.
§§Allowing more programs
If we relax the strong assumption that , this connection breaks down. It might be the case that these iterated probabilistic models not available for modelling . Or, there might be more programs to choose from that offer better tradeoffs.
The paper normally considers a computational budget to be expressed as an increasing function of the number of bits in the data. By this idea, the increased size of justifies giving access to programs that require more computational resources. Doing so might take us into a regime where new structural information becomes efficiently extractable from each sample, allowing better compression of individual samples, increasing program length while decreasing per-sample cross entropy. It’s also possible that new options for substantially decreasing program length while increasing per-sample cross entropy, or even opportunities to decrease both program length and per-sample cross entropy, could appear.
Another possibility worth considering is that it might be possible to take advantage of programs that don’t take full advantage of iteration. This is a bit hard to imagine, since iteration is likely to be such a salient structural element of the problem, and it might be optimal for most reasonable universal Turing machines. However, I think it might be possible to construct some kind of counterexample where we can save a lot on program length by approximating the iterative structure with some slightly out-of-phase iteration that leads to nearly as low cross entropy.
§Breaking ties
Epiplexity is defined as the length of the shortest programs involved in optimal two-part codes. It was necessary to say “the shortest” programs even though we already said “optimal two-part codes” because optimal two-part codes might be based on programs with different lengths. Refer to these situations as ties. In this section, let’s explore ties and consider different ways of breaking them.
§§What are ties?
What would it mean for there to be two optimal codes with different program lengths? Let’s break that down.
We’d want two programs such that In particular, it must be that Equivalently, That is, if is longer by a number of bits, it must offer a cross entropy lower by exactly that many bits. Since these bits come out of the cross entropy and go into the program length, this is a neutral tradeoff from a minimum description length perspective, which is why both codes are considered optimal.
§§Toy example of a tie
Do ties even exist? I don’t know how common they would be in practice, but it’s easy enough to fabricate them in a toy example.
Consider a very simple problem with and for some hyper-parameter . Imagine there are only two programs in our set of probabilistic models, , respectively representing Bernoulli distributions with parameters with program lengths .
In this simple case, we can compute Equating , we can solve for to produce a tie:
§§Why break for less structure?
If we ever were to face this situation, the paper says we should break for the smaller program length when defining epiplexity. Why might we want to define epiplexity in terms of the smaller program?
This choice can’t be justified based on the minimum description length framework, since it’s neutral to this trade-off by construction. Let’s explore some possible justifications. On the one hand, the smaller program is appealing for a number of reasons:
First, we could appeal to Occam’s razor, saying that the smallest model that explains the data is the better one. Here we aren’t exactly explaining the data, we’re compressing it using a two-part code, but we might coarsely apply Occam’s razor in the form “all else equal, smaller models are better,” and that points to the shorter program.
Alternatively, let’s return to the original motivation of asking the question, “how much structural information can we profitably extract from data?” We might say that if you are converting data bits into program length at a 1:1 rate, you’re not extracting structure at all, you’re just memorising bits. You should stop extracting structure as soon as you get to the point where you can no longer shrink the second part of the code strictly more than you have to increase the first. That’s the shorter program. (Thanks to Joan Velja for this perspective!)
On the other hand, I can see a way of arguing for the opposite perspective in each case.
Occam’s razor be damned: cross entropy is loss. Loss is bad, and our goal when modelling should be to minimise it. All else being equal, we should reduce loss, not program length. Therefore, go for the longer program.
It isn’t always possible to memorise bits of a random variable. These bits aren’t exactly entropy either. Maybe 1:1 structure is still structure, and if we’re trying to count structure, we should still count these bits. Therefore, go for the longer program.
I don’t know what to make of this. It seems like maybe both answers could be valid.
§§Alternative tie-breakers
Maybe we should appeal to a completely outside perspective to resolve the tie.
We could consider adding a third axis to minimise/maximise:
Maybe we should choose the most efficient program among the programs generating optimal codes. Or some combination of efficiency and program length.
Maybe we should choose appeal not only to the expected cross entropy, but to the variance in coding costs associated with different coding schemes, or other downside-risk-minimising objectives like expected shortfall, in case we are worried about getting unlucky when it comes time to actually code samples of with the optimal code designed for the distribution.
Ultimately, if we want to leverage the bounded-computation perspective offered by epiplexity to understand deep learning, the right way to break the tie might be an empirical question. What version of the definition more aptly plays a role in attempts to explain deep learning phenomena?
§§Dissolving the tie
We don’t necessarily have to break the tie. Maybe the different options are genuinely telling us different things about the problem.
We could perhaps acknowledge this with two definitions. The shortest program length could be called the lower epiplexity, and the longest program length the upper epiplexity. Conversely, we could talk about the respective complement quantities, the upper and lower epientropy.
Or maybe, we could separate the minimum description length of our variable into three quantities instead of just two. We could separately count the (lower) epiplexity, the (lower) epientropy, and also the remaining, intermediate bits that can be exchanged between program length and cross entropy at a 1:1 rate. However, we should recognise that not all positions along this equilibrium region need be realisable.
My conclusion overall is that it seems fine for now to define epiplexity in terms of the paper’s tie-breaking rule, but it’s good to be aware that we are doing this, and be ready to refer to these more refined concepts if the need arises in the future.
§Conclusion
I like the epiplexity framework. It seems like a sensible step on the road from algorithmic information theory towards a theory of information and learning that takes bounded resources into account. This is part of an exciting shift in the field of algorithmic information theory that is as deep as the split between computability and complexity theory in theoretical computer science. This analogy is not drawn by coincidence, as indicated by the extent to which the paper draws on complexity and cryptography theory in its theoretical results. In fact, we have individual figures like Levin whose work has been at the foundation of complexity theory (with the Cook–Levin theorem) and also the foundation of this new direction (with the invention of Levin complexity, another formulation of resource-limited algorithmic information theory). I am glad I took the time to understand the definition of epiplexity thoroughly. This has generated some interesting theoretical questions about potential loopholes in the observer’s computational budget, and idea to change the definitions to fix them. Suffice it to say, I am going to ponder these and may write about them in a future post.
I’m excited to continue reading and reflecting on the paper’s empirical sections, too. If this approach can really shed light on some of the stunning phenomena driving the AI revolution, then that will be light sorely needed indeed. In this regard, I am less concerned about the potential gaps in the framework. Pragmatically speaking, I think it’s an acceptable strategy to enrich our theories on an as-needed basis. The field of machine learning has spent a long time under the faint guiding glow of resource-unlimited algorithmic information theory, throwing around terms like Kolmogorov complexity and Solomonoff induction. Let’s see whether epiplexity can show us the way to new, fruitful experiments and empirical insights. Maybe the shadowy parts aren’t obscuring anything important, in which case they won’t turn out to matter at the end of the day. Or maybe they will turn out to be important—if this new light runs out on us, we can invest again in improving our theory.
Computer scientists are actually already pretty familiar with the idea that you can trade off compute for how much structure you can extract from data. Consider that running a stronger compression algorithm on some data usually takes longer than running a weaker compression algorithm. The weaker compression algorithm runs faster, but necessarily leaves some opportunities for compression on the table.↩︎
Here, I’ll hop on my hobby-horse and note that the choice of universal Turing machine defines not only what programs are short but also what programs use a small amount of space or time. So, all of the following discussion of information and structure, including all of the discussion in the paper regarding efficiently accessible structure, is relative to that choice (just like always).↩︎
The paper specifies that the numerical output of the density routine should be a finite-precision binary number. This seems a bit restrictive on the kinds of densities you can represent. It would be nicer to allow the output to be any computable number, encoded as a program that outputs that number’s binary expansion to an arbitrary precision given as input. However, when it comes time to restrict the computational resources available to the observer, we’d want to be careful to bound this number-generating program’s complexity too. In the case of time complexity, that will effectively place a bound on the precision we’re able to output for any given number, and hence we are back at a finite precision limitation.↩︎
Let’s ignore the fact that they technically have to store an integer number of bits. At worst, they have to store an extra fraction of a bit, which is negligible for large , or for small the overhead can be amortised over many compressed files with arithmetic coding.↩︎
It’s worth checking that this minimum is always going to be defined (except in the obvious corner case ). This is clear in the finite case, but a generic function on a countable set of programs may exhibit an indefinitely decreasing sequence of points and fail to include its infimum.
We can prove that this is not the case for the two-part code. Assume is non-empty and let be arbitrary. Fix and consider the set of programs with length at most : There are at most programs with length , so is finite. Thus is non-empty.
Finally, the set of minimisers in the finite case matches that of itself: for and , we have ↩︎
It’s possible for there to be ties for the optimal program. If their length is the same, it doesn’t matter. If one program is longer (but offers a corresponding decrease in cross entropy to offset the extra program length), the paper says to choose the shorter program’s length as the epiplexity. We’ll return to ties later in this note.↩︎