Time and Space Efficient Deterministic List Decoding
Abstract
Error correcting codes encode messages by codewords in such a way that even if some of the codeword is corrupted, the message can be decoded. Typical decoding algorithms for error correcting codes either use linear space or quadratic time. A natural question is whether codes can be decoded in near-linear time and sub-linear space simultaneously. A recent result by Cook and Moshkovitz gave efficient decoders that can uniquely decode Reed-Muller and other codes from a constant fraction (less than half) of corruption.
In this work, we address the problem of list decoding in near-linear time and sub-linear space. In the list decoding setting, most of the codeword is corrupted, and one wants to output a short list of potential messages that contains the true message. For any constants , we give decoders for Reed-Muller codes that can decode from fraction of corruptions in time and space .
Our decoders work by extending the iterative correction technique of Cook and Moshkovitz. However, that technique, which gradually decreases the number of corruptions in the message, was tailored to the unique decoding setting. We first identify an intermediate problem, codewords list recovery, for which we can make iterative correction work. We then show how to reduce general list decoding to the codewords list recovery problem in efficient time and space. The reduction relies on local correction and testing. In the codewords list recovery problem, the input consists of unordered lists containing exactly the symbols from codewords, where a small fraction of the lists is corrupted. The goal is to find the codewords.
In addition, we prove that any linear code with time-space efficient encoding or decoding must be local, in the sense that the codewords satisfy a local linear constraint. This rules out codes like Reed-Solomon from having time-space efficient encoding or decoding.
Keywords and phrases:
Reed-Muller code, local correction, local testingFunding:
Joshua Cook: This material is based upon work done while at the University of Texas at Austin and supported by the National Science Foundation under grant number 2200956.Copyright and License:
2012 ACM Subject Classification:
Theory of computation Error-correcting codes ; Theory of computation Pseudorandomness and derandomizationEditor:
Shubhangi SarafSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
1.1 Time-Space Efficient Codes
Error correcting codes encode information in a robust way, so that even if part of an encoding gets corrupted, it is still possible to decode the information. Codes are of great importance in communication and storage and have been studied for decades [27, 39]. In theoretical computer science, codes have numerous applications, e.g., for pseudorandomness [30, 47, 49, 20], interactive protocols [33, 21, 40], probabilistically checkable proofs [5, 18, 3, 2] and cryptography [48, 34, 12, 38, 43].
Definition 1 (Error correcting code).
An error correcting code is a function where different messages are mapped to codewords that differ much: for at least of . The relative distance of the code is . The rate of the code is . The alphabet of the code is . An asymptotically good code is an infinite family where has constant rate, relative distance, and alphabet for all .
The number of indices where two strings differ, i.e., , is called the Hamming distance between the strings. The number of indices where is the agreement of the strings. The process of computing for a message is called encoding. The process of computing from a word that agrees with a codeword on most indices, is called decoding. Note that only words that agree with a codeword on all but less than indices can be uniquely decoded. An important generalization of decoding is list decoding [17, 50]. Here, the decoder outputs all the codewords that have sufficient agreement with . List decoding with short lists is often possible even for corrupted codewords with close to errors (!) Such words may only agree with a codeword on a small fraction of the positions . List decoding turns out to be important for communication, and is crucial for many applications in theoretical computer science, such as pseudorandom generators [47, 42], low error PCPs [37, 13, 29, 35] and optimal inapproximability [28].
Definition 2 (List decoding).
Let be an error correcting code. A -list decoding algorithm gets as input and outputs all the codewords for with agreement with , i.e., for at least indices . We call the list decoding radius and the relative list decoding radius.
Algorithmic coding theory aims to implement error correcting codes efficiently. Much work focuses on the time complexity of encoding and decoding, resulting in explicit asymptotically good codes that can be encoded and decoded in deterministic linear time [45, 44]. List decoding too can be achieved in linear time [26]. However, these algorithms have a linear space complexity. Other work focused on space complexity. All asymptotically good linear codes can be encoded in logarithmic space and quadratic time. Some codes (e.g., [45]) were shown to also have decoding in logarithmic space, however the algorithms use large polynomial time. For instance, Spielman codes [45] have uniform circuits with linear size and depth circuits that decode them. These low depth circuits have a straightforward algorithm evaluating them in space (where ), but it runs in time .
The current work focuses on deterministic algorithms that run simultaneously in almost linear time and sub-linear space. The question of whether there are explicit asymptotically good codes with time-space efficient encoding or decoding was raised in [7] and [22], respectively. Much of the initial work in the area focused on negative results. Bazzi, Mahdian and Spielman [7] considered Turbo-like codes that could potentially have linear time and logarithmic space encoding, but showed that they were not asymptotically good. Bazzi and Mitter [6] proved that codes that can be encoded in linear time and sub-linear space cannot be asymptotically good. Gronemeier [22] showed that deterministic non-adaptive decoders in almost linear time must run in near-linear space. In sharp contrast, recent work gave positive results. The paper [10] constructs explicit asymptotically good codes with deterministic almost-linear time and sub-linear space encoders [10]. It evades the impossibility result by considering almost linear time instead of linear time. The paper [11] constructs explicit asymptotically good codes with deterministic almost-linear time and sub-linear space decoders. It evades the impossibility result by using an adaptive decoder.
A downside of the paper [11] is that it only gives unique decoding algorithms. The goal of the current paper is to design time-space efficient deterministic list decoding algorithms. Our main theorem is as follows:
Theorem 3 (Good Codes With Time-Space Efficient Uniform List Decoding (Informal; See Theorem 36)).
For any constants and , there exists an explicit asymptotically good code with a deterministic -list decoding algorithm that runs in time and space on input of size .
The code for which we can give time-space efficient list decoding is the Reed-Muller code, as well as small alphabet versions of it obtained by concatenation with constant alphabet codes. See the end of Section 6 for more detailed results. The Reed-Muller code is natural and widely used. Its codewords are the truth tables of low degree multivariate polynomials over a finite field. The code is known for its strong local testing and correction properties, and those properties are crucial for our result.
We remark that if one only wants a non-uniform list decoder for codes that are locally testable and correctable (with weaker parameters than Reed-Muller) one can employ a technique from the paper [23] that reduces list decoding to unique decoding.
1.2 Overview of Our List Decoding Algorithm
Our main technical contribution is generalizing the unique decoding algorithm from the paper [11] to the list decoding setting. The method of [11] iteratively corrects the received word until it becomes a codeword. This approach makes sense in the unique decoding setting, but does not seem appropriate for the list decoding setting, where the received word might have small agreement with many different codewords.
The key idea of our solution is as follows. First, we identify a simpler problem that we call codewords list recovery, for which we are able to generalize the approach of [11]. Then, we show how to reduce the list decoding problem to the codewords list recovery problem in efficient time and space.
The general structure of our list decoding algorithm is described in Figure 1.
Codewords list recovery is a special case of the list recovery problem. In list recovery the input consists of short lists of possible symbols for each position in the codeword, and the goal is to find all the codewords that are consistent with most of the lists. In codewords list recovery, the lists come from codewords. Most of the lists are exactly consistent with those codewords, and the goal is to correct those lists:
Definition 4 (Codewords List Recovery).
Let be a code. Let be codewords. For let be the set of codeword symbols in position . The input is a sequence of lists , where for all indices except at most indices we have . The goal is to find .
Our algorithm for codewords list recovery requires a generalization of the algorithm in [11] to the case where there are symbols rather than one per index. Meanwhile, it is the time-space efficient reduction from list decoding to codewords list recovery that does much of the heavy lifting for the list decoding algorithm. The reduction uses local correction to compose the lists and local testing to ensure that most lists match exactly with global codewords.
1.3 Time-Space Efficiency and Locality
Our list decoding algorithm relies on local correction and testing. The paper [11] on unique decoding relies on local correction. The codewords in the paper [10] or in Turbo-like codes [7] have symbols that depend on a small number of other codeword symbols and input symbols. A natural question is whether the locality of all those codes is an artifact of the ideas that were used so far in this area, or whether locality is somehow inherent to time-space efficient error correcting codes.
Perhaps surprisingly, we show that locality is inherent, in the following sense. We consider linear codes, i.e., linear transformations . Moreover, we assume that is systematic, i.e., maps to a codeword that starts with the input . (Note that there is no loss of generality in considering systematic codes, and this assumption will allow us to handle encoding and decoding at the same time.) For linear codes, is a linear subspace, and the orthogonal subspace consists of the linear constraints that all the codewords satisfy. The weight of a constraint in is its Hamming distance from . The minimum weight over all non-zero elements in is a measure of the locality of . All locally testable and locally correctable codes have low weight constraints, however this is a necessary but not a sufficient condition for local testability and local correction.
We show that linear, systematic, codes with time-space efficient encoding or decoding must have a low weight linear constraint:
Theorem 5 (Linear Codes Without Local Constraints Can Not Be Encoded Or Decoded Efficiently).
Let be a linear systematic code. Let be the minimum weight of a non-zero element in . Then, any encoder for running in time and space must have . Further, any corrector for that can correct errors running in time and space must have .
This theorem implies that codes with time-space efficient encoding or decoding must be local in the sense of having a low weight constraint. Locally correctable codes like those considered in this paper or in [11] indeed have low weight constraints. The codes considered in [10, 7] are not locally correctable but they have low weight constraints too. Since self dual codes do not have low weight constraints, this recovers the result of [41] that self dual codes cannot be encoded time and space efficiently and generalizes it to decoding, and more general codes.
One can add a local constraint to any code (e.g., by repeating a symbol in the codeword) and foil the premise of Theorem 5. However, the theorem rules out many natural codes from having time-space efficient encoding or decoding. For instance, the Reed-Solomon code does not have low weight constraints, and therefore cannot have time-space efficient encoding or decoding:
Corollary 6 (Reed-Solomon Codes Are Not Efficiently Encodable Or Decodable).
Let be a field and be an integer. Then any encoder for the Reed-Solomon code, where the codewords correspond to evaluations of univariate polynomials of degree at most deg over , requires time and space such that . Similarly, any decoder correcting errors for the Reed-Solomon code requires time and space such that .
The theorem also suggests a path for ruling out more contrived codes from having time-space efficient encoding or decoding: Find a sub-code without low weight constraints that still has time-space efficient encoding or decoding.
2 List Decoding Main Ideas
In this section, we explain the main ideas that go into our list decoding algorithm. We discuss the connection between local decoding and randomized time-space efficient decoding. We explain the iterative correction technique of [11]. We recall the details of local correction for Reed-Muller codes and the main results about its local testing. Finally, we sketch our new algorithms: the algorithm for codewords list recovery and the reduction from list decoding to codewords list recovery. Our goal in this section is to review the main ideas so the reader can quickly grasp the information. Full details about the algorithms and their analysis appear in the body of the paper, and the reader is advised to consult them while reading this review.
2.1 Time-Space Efficient Unique Decoding
Observe that randomized time-space efficient unique decoding follows from locally decodable codes with a sub-linear number of queries [31, 51]. In locally decodable codes it is possible to get “random access” to the message given a corrupted codeword. That is, to decode a single symbol in the message , it suffices to make a small number of queries to the corrupted codeword, chosen in a randomized fashion.
Definition 7 (Locally decodable code).
A code is locally decodable with queries, decoding error, and relative decoding radius if it has a randomized decoder that does the following. is given oracle access to a word and an index in the message , makes queries to , and outputs . If is close to a codeword, that is, for at least fraction of , then for all the decoder decodes the ’th symbol with probability at least over its randomness.
By repeating the local decoder times, its error probability is sufficiently smaller than , and running the decoder on every , one obtains a time-space efficient randomized decoder. Provided that the local decoder makes queries and runs in time and space that are polynomial in , the space complexity of the decoder we get is sub-linear and the time complexity is almost linear. Those ideas can also be extended to get a randomized time-space efficient list decoding algorithm from locally list decodable codes.
The challenge in decoding is to get time-space efficiency in a deterministic algorithm. A natural derandomization would take at least quadratic time: it would enumerate over all possible randomness strings of the local decoder (at least a linear number). For each randomness string, it would compute, in at least linear time, the corresponding codeword and check how close it is to the received word.
In contrast, we want a derandomization that does not increase the run-time substantially. Randomized local (i.e., sub-linear time) decoding provably cannot be derandomized without increasing the run-time significantly (to linear run-time), since any deterministic decoder must read the entire received word. However, the paper [11] succeeds in derandomizing (global) decoding without significantly increasing the runtime. Unfortunately, the derandomization requires the unique decoding setup.
The paper [11] assumes that the code is locally correctable. Local correction is similar to local decoding, except that the corrector receives and wishes to find .
Definition 8 (Locally correctable code).
A code is locally correctable with queries, decoding error, and relative decoding radius if it has a randomized decoder that does the following. is given oracle access to a word and an index in the message , makes queries to , and outputs . If is close to a codeword, that is, for at least fraction of , then for all the decoder decodes the ’th symbol with probability at least over its randomness.
The approach of [11] is to iteratively decrease the number of corruptions in the received word by local correction. The insight is to decrease the number of corruptions only by a factor in each iteration, and show that only randomness strings suffice for such a small improvement. Since one can test each randomness string in linear time (comparing the corrected word with the received word), one gets time overall.
2.2 Algorithm For Codewords List Recovery
The idea of iterative correction worked in the unique decoding setting, where there is a single codeword we wish to correct, and there is a natural progress measure, namely the distance to that codeword. In this paper, we generalize this approach to the case of the codewords list recovery problem (See Definition 4).
The input to the codewords list recovery problem consists of sets of up to symbols each, denoted .
It is guaranteed that there are global codewords such that all sets , except perhaps , are consistent with the global codewords, i.e., . We refer to the where there is no consistency as a corruption. The goal of the algorithm is to find the global codewords .
Note that for this problem is precisely the unique decoding problem. We generalize the unique decoding algorithm of [11] from to general . The algorithm is described in detail in Section 4.
The algorithm gradually decreases the number of corrupted lists from a small constant until it reaches (i.e., no corruptions). When all lists are consistent with the codewords, there is a time and space efficient algorithm for identifying the codewords that give those lists (see Lemma 26). As in the unique decoding case [11], the algorithm decreases the number of corrupted lists, , using local correction, except that now local correction manipulates sets of symbols instead of individual symbols. We will elaborate on local correction of the Reed-Muller code, and how to manipulate symbols, in the next subsection. Overall, we get an almost-linear time and sub-linear space algorithm for the codewords list recovery problem of Reed-Muller codes.
2.3 Local Correction for Reed-Muller Codes
In this subsection we discuss local correction in the list decoding regime, which we refer to as local list correction. Recall that we discussed local correction in the unique decoding regime in Section 2.1. Local list correction is crucial both for the algorithm for codewords list recovery, and for the reduction of list decoding to codewords list recovery.
There are several ways to define local correction in the list decoding regime, so first we discuss the definition we use and contrast it with another standard definition. The corrector is given oracle access to a highly corrupted codeword. Let denote the number of codewords in the -list decoding of the received word. On input an index the corrector wishes to find the ’th symbol of each of the codewords in the list decoding using a small number of queries to the word. One standard definition of local list correctors involves outputting different circuits, each consistent with a single codeword. On input the ’th circuit outputs the ’th symbol of the ’th codeword. We use a weaker definition, where the corrector only needs to output at most symbols for the ’th index, containing the symbols from the codewords, but without associating each with its codeword. The definition we use for local correction is as follows.
Definition 9 (Locally list correctable code (weak definition)).
A code is locally list correctable with queries, correction error, agreement, and list size, if it has a randomized decoder as follows. is given access to a word and an index in the codeword , makes queries to , and outputs , , such that if is close to a codeword, that is, for at least fraction of , then for every the decoder’s list contains with probability at least over its randomness.
We focus on the Reed-Muller code, which is perhaps the most natural locally correctable code (See also the survey by Yekhanin [51] on local decoding). First, let us formally define the Reed-Muller code: For natural numbers and a finite field the degree deg Reed-Muller code over is the set of dim-variate, total degree deg polynomials. The codeword length is , the alphabet is , and we identify the indices with points . The codeword consists of the evaluations of the polynomial on all points in . That is, for a polynomial , the corresponding codeword is .
The Reed-Muller code has a simple local list correction [4, 47], which we describe next. Given a received word and a point to correct , local correction is as follows:
-
1.
Pick a line through in uniformly at random.
- 2.
-
3.
Output the evaluations of all the polynomials from step 2 on .
The corrector only queries points out of , and is therefore local. Given access to which is a codeword , the corrector always outputs . The idea is that if agrees with a polynomial on a large fraction of the points in , then a uniform line is expected to contain a similar fraction of points they agree on. Therefore, would probably be outputted. On the other hand, if there are few such that where is the list decoding of , a random line will rarely contain enough of those to output a symbol inconsistent with .
The property of lines that enables local correction is sampling:
Definition 10 (Sampling).
A family of samples where each sample is a size- subset of , is a sampler with accuracy error and strong confidence error if for any , , for at least fraction of the samples we have
In the context of local correction, the set corresponds to corrupted symbols in , or to points where agrees with a codeword . Note the dependence of the error probability on (the relative size of ). Hence, when corresponds to the fraction of corruptions in , the sampling error is appropriately smaller.
Like [11], we will need the following variations on local correction, used here in the list decoding regime instead of the unique decoding regime:
Error reduction
For our iterative correction technique, it is imperative to decrease the error probability of the corrector below what a random line can obtain. Specifically, we wish to decrease the error by a factor larger than the number of queries. To do so, the corrector picks several lines through instead of just one, and only picks values for that repeat for the majority of lines. The paper [11] constructs an appropriate sampler: With probability the majority of lines sample within accuracy error . See Section 4.2 for formal results.
Average-case local correction
We consider local correction that works for most points , and not necessarily for all points. This will allow us to decrease the amount of randomness that the corrector uses from per point to per point. This decrease in randomness is crucial in order to obtain almost linear time and sub-linear space.
In the algorithm for codewords list recovery we will use a further variation on local correction, namely handling inputs that consist of symbols instead of a single symbol per position:
List recovery input
The corrector can be made to work for list recovery problems rather than list correction problems. Here the input is a set of values in per as opposed to a single value in . In other words, the received word can be thought of as a multi-string, rather than a string. The only change to the local corrector is performing Reed-Solomon list recovery instead of list decoding [32, 1, 25].
2.4 Local Testing
In the next subsection we describe the reduction of the list decoding problem to the codewords list recovery problem in efficient time-space. This reduction completes our list decoding algorithm. For the reduction, we crucially rely on incorporating local testing in our local correction. The use of a local testing theorem is new to the list decoding regime and did not appear in the time-space efficient unique decoding algorithm [11].
In this subsection we discuss the definition of local testing we use and contrast it with other standard definitions. In local testing, there is oracle access to a word in , which may or may not agree much with a codeword. The tester uses randomness to make a small number of queries to the word. The tester accepts if there exists a codeword that is consistent with the outcome of its queries. Otherwise, the tester rejects. This way, queries to codewords are always accepted. In contrast, words that are far from the code should be rejected with good probability. The definition we use asks that the rejection probability of the tester equals the distance of the word from a codeword up to a small additive term (equivalently, the acceptance probability of the tester equals the agreement of the word with a codeword up to a small additive term):
Definition 11 (Locally Testable Codes (additive approximation)).
We say that a code is a locally testable code (LTC) with queries and additive approximation if there is a tester that makes queries to a received word and accepts iff the outcome of the queries is consistent with a codeword in . For any , if the tester accepts with probability , then there is a codeword that agrees with on at least and at most fraction of positions.
The additive approximation definition is much stronger than other definitions of local testing that are sometimes considered. In many definitions, certain distance from the code implies a certain rejection probability, but farther distance from the code does not necessitate higher rejection probability. A different standard definition requires that the probability that the tester rejects provides a multiplicative approximation (with a factor strictly larger than ) of the distance to a codeword. This definition allows the distinguishing of codewords from words that have noticeable distance from the code, but does not provide useful information if is very far from the code. The small additive approximation in Definition 11 means that one can detect codewords even if they agree with the received word on a very small fraction of positions.
A slight modification of the local corrector of the Reed-Muller code described in the previous section, namely replacing lines with certain -dimensional subspaces, makes the corrector into a local tester with a small additive approximation [36]. This means that, except with probability , whenever a word agrees locally (on a random -dimensional subspace) with a low degree polynomial, this low degree polynomial is consistent with one of the global low degree polynomials close to the word. In other words, there cannot be more than fraction of the -dimensional subspaces on which the word agrees with a low degree polynomial, without the local low degree polynomial agreeing with one of the global low degree polynomials that are close to the word.
At the time of writing this paper, we do not know of other codes with a randomness-efficient local corrector and a small additive approximation. This is the reason our result is only for Reed-Muller codes. In the subsection that follows we discuss the time-space efficient reduction from list decoding to codewords list recovery, and give more details about the reason for using local testing.
2.5 Reduction From List Decoding To Codewords List Recovery
In this subsection we describe the time-space efficient reduction from list decoding to codewords list recovery. This reduction is one of the key contributions of the current work. In the reduction we use the local list correction of Subsection 2.3, combined with local testing, as described in Subsection 2.4. In the list decoding problem, we are given oracle access to a word and we wish to find all the dim-variate polynomials of degree at most deg that agree with on at least fraction of the points in . In codewords list recovery, we are given a list of sets of symbols, call it , such that for most we have that , where , and we want to find . We wish to construct a codewords list recovery instance that corresponds to the list decoding of .
Recall that local list correction as in subsection 2.3 converts an input word to a list of sets . This algorithm falls short of a reduction due to two issues: (1) It does not guarantee a precise equality for most . (2) It is randomized. In the remainder of this subsection we explain how to resolve issue (1). Issue (2) is resolved thanks to average-case local correction. If there are only randomness strings per , our algorithm can try all of them and pick the majority outcome. Note that here we use the fact there is only one correct outcome per , namely the list .
Towards resolving issue (1), note that there are two ways that we could have . One is that , and the other is that . That is, the first way is that could be missing symbols from ; we call these in-codeword errors. The other is could contain extra symbols not in ; We call these out-of-codeword errors. In-codeword errors mean that there is a global codeword that is close to but is missed in the local corrector sample. This is a sampling error, and it is rare as discussed in Subsection 2.3. In contrast, out-of-codeword errors correspond to symbols that appear in the local sample of the corrector, but not in any global codeword that is close to . Our key idea is that out-of-codeword errors are rare if the local corrector is also a local tester. This follows from the definition of a local tester discussed in Subsection 2.4. Local testing precludes a situation where many of the local polynomials the corrector sees do not correspond to any global codeword that is close to . As explained in Subsection 2.4, we adapt our local corrector to incorporate local testing by querying certain -dimensional subspaces instead of lines. Importantly, we only use subspaces for the reduction to codewords list recovery. Everywhere else in this work, local correction uses more query efficient correctors.
3 Only Local Codes Are Time and Space Efficiently Encodable or Decodable
In this section we give the simple proof of Theorem 5 that shows that time-space efficient linear codes must have low weight constraints. The general result (see Theorem 17) is that if the uniform distribution over codewords is -wise independent, then correcting codeword symbol erasures requires an algorithm running in time and space such that . This implies the theorem since a linear code is -wise independent if and only if it does not have a linear constraint involving variables. For linear codes, this is equivalent to the code having dual distance . General code correction implies erasure correction, so this also implies a lower bound for more general correction. Further, encoding a code is a special case of erasure correction, so this result is also a lower bound for encoding codes.
The basic proof strategy is to show that even conditioned on knowing symbols of information about an input codeword, to output symbols that were erased, we need to read some block of symbols from the input word. Thus to write symbols, one must use time steps.
To show that even with bits of information we need to read symbols of the codeword, we consider the state after reading the next symbols. If we only read symbols and then wrote symbols, then due to -wise independence, there are symbols of information in the symbols read plus the symbols written. Yet we only know the symbols we began with plus the symbols we read, which is only symbols of information. The symbol of information missing must be in the symbols we wrote since we read the remaining symbols as plain text. Thus the corrector can not write symbols before it reads all symbols. Since the algorithm has bounded space, at any step it only has roughly bits of information about the specific codeword.
In the rest of this section, we will formalize this argument.
3.1 Erasure Decoding
In this section, we will briefly define erasure decoding. An erasure of a word is just the same word with some of the symbols erased.
Definition 12 (Erasure).
Take any integer and alphabet . Call some the empty symbol. We say that a function erases symbols if for some set with we have that for all that for all that and for all we have .
Similarly, for any and , we say that is with erasures, if for some that erases symbols we have that .
The idea of erasure decoding is that instead of corruption being a symbol change, corruption is a symbol being replaced with a special empty symbol outside the original alphabet. In erasure decoding, the decoder knows what symbols are corrupted, but not what their original value was. In the standard definition of erasure decoding, one does not know what symbols will be erased before hand. Our results hold even if one does know which symbols will be erased. Finally, our results are stated most naturally in terms of correction, so we will define targeted erasure correction.
Definition 13 (Targeted Erasure Correction).
Take any integer and alphabet . Let be a function that erases symbols. Let be a code. We say that a function is an erasure corrector for code and error if for all we have that
Erasure decoding is easier than standard decoding because one can reduce erasure decoding to standard decoding by guessing the erased symbols.
Lemma 14 (Correctors Imply Targeted Erasure Correction).
Take any integer and alphabet . Let be a code. Suppose there is a time space , distance corrector for . Then for every that erases symbols, there is an erasure corrector for code and error running in time and space .
Proof.
For any given input that is a erasure of , just replace every symbol missed from with a random symbol, call the result . Now is within of and we can use the decoder for to recover .
An advantage to defining targeted erasure correction is that encoding is a special case of targeted erasure decoding (where none of the message bits are corrupted). Thus our decoding lower bounds apply to encoding as well.
Lemma 15 (Encoding is Targeted Erasure Correction).
Take any integer and alphabet . Let be a systematic code. Then the function is an erasure corrector for code and some function that erases symbols.
Proof.
The function just erases all but the message symbols from the codeword.
3.2 Proof of Locality Theorem
Now we will give a slightly more formal overview of the proof. In our proof, it is useful to imagine that the corrector gets as input a uniformly random codeword, and is trying to read just enough of it to learn a few symbols. At any given point in time, the corrector has some state which is reached by some specific set of codewords. The first observations is that since there are few states, the state reached with high probability must be reached by many other codewords. In Lemma 16 we argue that as long as there are enough codewords that map to the current state, the corrector must read a lot of symbols before outputting the next corrections. We then use Lemma 16 many times in Theorem 17 to give the final result.
Lemma 16 (Low Space t-Wise Independent Code Correctors Need Many Queries To Output A Few Symbols).
Let be a systematic code such that the uniform distribution over codewords in is -wise independent. Let be a function which erases symbols. Let be a constant and be a uniform distribution over at least codewords in .
Take any deterministic algorithm that takes as input words from and writes to distinct indexes erased by such that for any , any time writes symbol it writes . In other words, correctly corrects symbols erased by from codewords in . Then with probability at most will corrector read less than symbols.
Proof.
First we will show that with probability at most will conditioned on the first symbols be a distribution or fewer codewords. Then we will argue that this implies that fails on some input from if it reads less than symbols.
Conditioning on symbols partitions the at least codewords in is distributed over into groups. In the worst case, only elements could be in a partition with or fewer elements in it (since ). Thus the probability that a random will be in such a partition is at most . Thus with probability at most will conditioned on the first symbols read be a distribution over or fewer codewords.
Let be conditioned on the first symbols read. Suppose that is a distribution over more than codewords. We will now argue that if writes symbols, no matter what symbols are written, there will be some input in the distribution of such that the symbols written are incorrect. Consider the set of coordinates written and the read. If restricted to these coordinates were constant, then must only be a distribution over at most codewords (the total number of codewords divided by the number of assignments to these symbols) since the coordinates of are -wise independent. But is a distribution over more than symbols, so is not fixed on these coordinates. However, it is fixed on the coordinates read, so it must not be fixed on the coordinates written. Therefore, whatever is written after reading these coordinates must be wrong on some codewords from .
Now applying this lemma several times gives us the main result of this section.
Theorem 17 (t-Wise Independent Code Correctors Require Large Time-Space).
Let be a systematic code such that the uniform distribution over codewords in is -wise independent. Let be a function which erases symbols. Let be a constant. Than any function running in time and space that is an erasure corrector for code and error must have .
Proof.
Let be the distribution over all codewords in . Consider the expected runtime of . At any given time step, the probability that conditioned on the state of the corrector is a distribution over or fewer states is at most , since is the number of codewords and is the number of states of the corrector. If conditioned on the current state is a distribution over more than states, by Lemma 16, the probability that the decoder outputs symbols before reading symbols is at most . Thus, at any given time step, with probability at least will the corrector read symbols before it outputs the next symbols. Thus in expectation, at any given step in the computation, writing the next symbols of output requires reading symbols of the input.
By splitting the symbols to be corrected into chunks, we conclude that the expected final time of the decoder must be
4 Algorithm For Codewords List Recovery
We start by giving a time-space efficient algorithm for codewords list recovery, extending the unique decoding case of [11] to lists. We refer to the input to a list recovery problem as a multi-string, where each index has a set of symbols rather than a single symbol.
4.1 List Improving Sets
An improving set is a set of deterministic local functions that takes as input a string near a codeword and outputs another string that in expectation is closer to that codeword. Improving sets were defined in [11] to allow time and space efficient global decoding. In this paper we use a generalization called a list improving set which takes as input a multi-string that is near a codeword multi-string (a multi-string that is exactly made from codewords) and in expectation outputs a multi-string closer to that codeword multi-string.
One technical note is that we separate the kind of errors in an input multi-string into two kinds. The in-codeword, or completeness, errors where there are symbols missing in the multi-string that are in a codeword, and the out-of-codeword, or soundness, errors where there are symbols in the multi-string that are not in a codeword. By separating the two we are able to handle many more out-of-codeword errors since we start with fewer in-codeword errors.
Definition 18 (List Improving Set).
Take any alphabet , integers , and a code whose codewords are in . Let be an integer and be a set of deterministic functions from -multi-strings to -multi-strings. Then for any integer and numbers , we say is a below factor list improving set with out-of-codeword tolerance , input list length and output list length for if
- Completeness:
-
For any -multi-string , and codeword multi-string where
we have that
- Soundness:
-
For any -multi-string , and -codeword multi-string with
we have that
- Efficient:
-
We say that is query, time , and space if for each function in and , we can compute using only queries to in time and space .
A straightforward consequence of this definition is a test for how close a multi-string is to a codeword multi-string. Specifically, we can test if some is closer to the codewords that is close to.
Lemma 19 (List Improving Set to Tester).
Take any alphabet , integers , and a code whose codewords are in . Suppose that is a query, time , space , below factor list improving set with out-of-codeword tolerance , input list length and output list length for .
Then there is an algorithm that takes as input -multi-string and -multi-string and outputs a number such that if for some -codeword multi-string we have
then
and runs with queries in time , and space .
Proof.
The idea is that we will run every function on to get a good estimate of and compare that to . See that by the completeness and soundness of we have that
So by a reverse triangle inequality, we have
The algorithm outputs and our result holds.
Now if we run this test with being the output of different functions in the list improving set, then we can find a function in the improving set that improves the multi-string significantly.
Lemma 20 (List Improving Set Gives Partial Codewords List Recovery).
Take any alphabet , integers , and a code whose codewords are in . Suppose that is a query, time , space , below factor list improving set with out-of-codeword tolerance , input list length and output list length for . Then there is an algorithm that takes as input an -multi-string and outputs the index of some such that if for some -codeword multi-string we have
then we also have that
The algorithm runs with queries, time , and space .
Proof.
The idea is to run the local test from Lemma 19 with for each and output the function that outputs the smallest . All that we need to show is that there is some that will fail with probability at most . Recall the local tester in Lemma 19 chooses a random and compares to . See that
Thus since in expectation a random fails with probability at most , some achieves this expectation. That is, for some , the test of Lemma 19 outputs a . For such an , we have that
So the protocol outputs such an .
Using this, we can get codewords list recovery from a list improving set. This is list recovery where instead of actually outputting the codewords, we output a multi-string that exactly contains the codewords.
Lemma 21 (List Improving Set Gives Codewords List Recovery).
Take any alphabet , integers , and a code whose codewords are in . Suppose that is a query, time , space , below factor list improving set with out-of-codeword tolerance , input list length and output list length for . Then there is an algorithm that takes as input an -multi-string and outputs the description of a function such that if for some -codeword multi-string we have that
then the function has
Let . Then the algorithm has description length , and each output location can be computed with queries in time and space . The algorithm runs with queries in time , and space .
Proof.
The idea is to run Lemma 20 recursively times. Each time it will decrease the fraction of errors by a factor of . After rounds, this will decrease the fraction of error down to , which would require no errors.
For a more formal induction, suppose that we have an algorithm that runs with queries in time , and space and outputs a function that has description length , and each output location can be computed with queries in time and space such that For , we get this by using Lemma 20 directly. In the general case, we get by running Lemma 20 on and then outputting as the found composed with . This only increases the time and number of queries of and by a factor of . Since , this is a geometric sequence, so the time of running all are factored into the . Similarly space only increases by an additive amount since there is another level in the recursion.
4.2 Correcting Lines
To run our list recovery algorithm, we need to first construct list improving sets. In fact, our list improving sets use the same correcting lines used by [11] to construct their improving sets. Our corrector uses a set of pseudorandom lines through a point, corrects along each, and takes a majority vote. We will now more formally define what properties our lines must have to give us a good list improving set.
The first concept is called “correcting lines”. Correcting lines for a given index are just a set of lines that pass through . A set of such correcting lines will be good if less than half over-sample the set of corruptions.
Definition 22 (Correcting Lines for ).
Let be natural numbers, take , take to be a field, take . forms correcting lines for if , where are lines in such that for all we have that .
For any set , let . We say that is -sampling for if
A correcting lines set is a set of correcting lines (so it is a set of sets of lines) such that for any set , most correcting lines are -sampling for . If this is true, then we can do error correction. Specifically, we need the probability that correcting lines are not -sampling to be proportional to the size of so the correction always decreases the number of errors.
Definition 23 (Correcting Lines Set).
Let be natural numbers and take to be a field. A correcting lines set is a family , where each forms correcting lines for . We say forms a below correcting lines set with strong confidence error , and accuracy error if for all with , we have that
where
We say is time and space uniform if for each and we have that every can be computed in time and space . We call the line count of .
We use the same correcting lines as used in the prior work. The following result is proved during the proof of [11, Lemma 8.11]. This correcting line set is made by using an -biased set to make a subspace sampler, and then sampling lines in that subspace.
Lemma 24 (Good Correcting Lines Exist).
Take any field with , any dimensions dim and , and . Then there exists that is a below correcting lines set for with accuracy error , strong confidence error
and line count . Furthermore, and is time and space uniform.
In prior work, Cook and Moshkovitz [11] showed that correcting line sets give improving sets for Reed-Muller codes. We show that they further give list improving sets.
Lemma 25 (Improving Set from a Correcting Lines Set).
Suppose that for some dimension dim and field we have that is a time space uniform, below correcting lines set for with size , strong confidence error , accuracy error , and line count . Let
Let be the Reed-Muller code for field , dimension dim and degree deg. Suppose for some integer , and some we have that .
Then there is a query, time-, space- below , factor list improving set for with size , out-of-codeword tolerance , and input list length , where and . Further if and , then the output list length is also .
4.3 List Improving Sets From Correcting Lines
Now using the correcting lines, we can get list improving sets, which give us codewords list recovery. Now we just need to convert the codewords list recovery into regular list recovery. Essentially, we need some way to associate each symbol in the multi-string with the specific codeword it is associated with so we can print the codewords in order.
We use the special properties of Reed-Muller codes to show how to take a multi-string codeword and efficiently output the corresponding list of codewords. In particular, that for every two points, there is a local code that contains those two points (namely, the low degree polynomials on the line between them).
Lemma 26 (Efficient List From Codeword Multi-String Codeword).
Take integers and field such that . Suppose that are elements of the degree deg Reed-Muller code over . Let be the codeword multi-string .
Then there is an query algorithm running in time and space that outputs a length description of a list of functions such that (under some ordering of the functions) for each , and each can compute an index of its output in queries and time .
Proof.
The algorithm is simple: search until we find the index, , with symbols in it. There will be such a coordinate because each pair of codewords can only agree on fraction of places, thus at only at most fraction of places can any two of the codewords agree. Once is found, each symbol in uniquely identifies which codeword it corresponds to. Each remembers and one symbol . Finally, for each to decode a symbol , it looks at the line through and and runs Reed-Solomon list recovery on this line to get a list of polynomials that are the codewords restricted to this line. Only restricted to this line outputs at , so use that restricted to this line to output the symbol at .
4.4 Codewords List Recovery For Reed-Muller Codes
Now, we can use our correcting lines from Lemma 24 with Lemma 25 to get a list improving set. We can use that list improving set with Lemma 21 to recover the codeword multi-string. Finally we use Lemma 26 to turn that codeword multi-string into the distinct codewords. All together, this gives us efficient list recovery in the low error regime. In Section 6 we combine Lemma 27 with the results in Section 5 to get list decoding in the high error regime.
Lemma 27 (Codewords List Recovery for Reed-Muller).
There is some large constant such that the following holds. Take any field with , any dimensions dim and , integer , and . Let . Let be the Reed-Muller code for and degree deg. Suppose for some integer , each of the following holds: (1) ; (2) ; (3) . Then, there is an algorithm that takes as input an -multi-string and outputs the description of functions such that the following holds. Suppose for some codewords we have codeword multi-string . Then if
then for each there is a such that .
Further, makes queries, runs in time and space Each can compute a single index of its output with queries, time and space .
5 Reduction From List Decoding to Codewords List Recovery
Now we reduce from list decoding to codewords list recovery, we need a randomness efficient low degree test for Reed-Muller codes. The structure of the test needs to guarantee that we can do local list recovery if a string is near a codeword, and the soundness of the test needs to guarantee that we do not often decode extra symbols that are not from a nearby codeword.
5.1 Low Degree Testing
The local tester we use is the space vs point test by Moshkovitz and Raz [36] which is based on sampling two directions from a small subfield, and then looking at the subspace through those points and the point we want to decode. For notation, we will first introduce an affine dimensional subspace.
Definition 28 (Affine Subspace).
For a field , dimension dim, and linearly independent , denote by the affine, dimension subspace that contains and . More concisely, we also define the span of as .
The space versus point test takes two functions on a three dimensional subspace, one from a global function, , and one that is low degree, , and returns whether they are equal at a specific point. Importantly, does not need to come from a global function.
Definition 29 (Space Vs. Point).
Fix dimension , field , degree deg, and function . Let be a set of degree deg functions on three dimensional subspaces. For notation, for every linearly independent , there is a function . Then we define SpacePoint as
Similarly, if for some integer we have then we define
Often it is convenient to think of as the closest degree polynomial to on a subspace, but in the list decoding setting, it will also be convenient to think of as any close enough local codeword. Then the local testing result says that if agrees with any choice of very often, then in fact itself must mostly come from a small set of global low degree codewords. In particular, this is useful because it means that any local corrections that succeed often must be from a nearby codeword. The following is [36, Theorem 2] (with some observations from [36, Lemma 6.1]).
Lemma 30 (Subspace from Subfield vs. Point Soundness).
Fix dimension , a field , a subfield and a degree deg. Let be the Reed-Muller code over field , dimension dim and degree deg. Denote . For every function and every if for some we have
then the following holds:
- Decoding
-
There exists a degree at most deg polynomial such that
- List decoding
-
111This result can be found by looking into the proof of [36, Lemma 6.1] and observing that its is and setting to deg.
For every for we have
where is the set of codewords that agree with on an fraction of locations.
It is important that the nearby codewords explain , not the original string . This allows us to conclude that we cannot have many local correctors that output symbols not from a nearby codeword. Too much agreement means that there must be a codeword nearby that they agree with.
By [36, Corollary 5.8], there is a partial converse to Lemma 30. Namely that these subspaces are a sampler.
Lemma 31 (Subfields Sample).
Let and deg be as in Lemma 30. Take any set , let , and any constant . Then sample as the random subspace that goes through , a uniformly random , and that are also uniformly random and linear independent. Then we have :
5.2 Local Testers and Correctors
Now we can prove that the subspaces we discussed are good local correctors. The low completeness error comes from the sampling property of subspaces, and the low soundness error comes from the list decoding property of the low degree test. For notation, is the set of codewords that are in for fraction of coordinates.
Lemma 32 (Pseudorandom Local Correctors).
Fix dimension , a field , a subfield , an integer and a degree deg. Denote .
Then for any , relative agreement , and such that , for some , there is a set of local correctors that compute any index of the output using only queries to the input and time . There are functions. Further, these functions are such that for any -string we have:
- Completeness:
-
For any we have
- Soundness:
-
For any such that we have
Proof.
Each local corrector is associated with linearly independent . To correct the symbol at , it takes the three dimensional subspace through and does list recovery with agreement on that subspace. If is already in the subspace spanned by and , we give up and don’t output anything. This kind of failure is why there is an extra in the completeness error. The proof of completeness and soundness are in the full version.
Then as long as we choose and appropriately so that
then we in particular have that for most coordinates and correctors we recover all symbols in nearby codewords, and a not too small fraction of coordinates and functions only recover symbols in nearby codewords. So some corrector will be good enough to use with our codewords list recovery algorithm from Lemma 27.
Corollary 33 (There Exists a Good Local Corrector).
Fix dimension , a field , a subfield and a degree deg. Denote . Take any , and relative agreement such that . Then there is some , such that for any string with
for the family of functions from Lemma 32 there is a local corrector such that
- Completeness:
-
- Soundness:
-
Our final protocol will try all functions and many choices of until it finds a local corrector that works.
6 Time-Space Efficient Deterministic List Decoding For Reed-Muller Codes
Now we can finally construct our list corrector for Reed-Muller codes. First, in Theorem 34 we will state our result for some conditions that are convenient to prove the result. Then in Theorem 35 we will show for what choices of and we can satisfy these conditions. Finally, we use code concatenation to get small alphabet for the special case where and are constants.
Theorem 34 (Uniform, Explicit, High Error List Correction for Reed-Muller Codes).
There is some large constant such that the following holds. Take any field with , subfield , any dimensions dim and , and numbers . Let . Let be the Reed-Muller code for field , dimension and degree deg. Denote .
Let . Suppose each of the following holds: (1) ; (2) ; (3) ; (4) ; (5) .
Then, there is an algorithm that takes as input a string and outputs the description of at most functions such that for any codeword with then for some we have that .
Furthermore, the algorithm makes queries, runs in time and space Each can compute a single index of its output with queries in time and space .
Setting these parameters appropriately, we can get time and space efficiently list decodable codes for a wide variety of parameters.
Theorem 35 (Good Codes With Time-Space Efficient Uniform List Decoding).
Choose any functions and such that for all we have is an integer, , and where is the large constant from Lemma 27. Then there is a uniform, infinite family of codes with rate with an alphabet of size that can be list decoded from fraction of errors in time and space .
Now as a corollary when and are constants we can get an asymptotically good code (with a size alphabet).
Theorem 36 (Good Codes With Time-Space Efficient Uniform List Decoding).
For any constants and , there exists an infinite family of uniform asymptotically good codes with rate and alphabet size that can be list decoded from fraction of errors in time and space .
7 Open Problems
This is the first work showing that time and space efficient deterministic list decoding is possible. Many problems remain in this area. Such as:
-
1.
Find codes that are both time and space efficient to encode and time and space efficient to decode. A prior result [10] showed that there are good codes that are time and space efficient to encode. This result shows that even list decoding can be done time and space efficiently. However, these are different codes.
-
2.
Get almost linear time and sub-polynomial space decoders for an asymptotically good code. Our code gets worse rate as our time and space improve. The prior work [11] achieved this for unique decoding for lifted Reed-Solomon codes. Could one get a similar result for the list decoding setting?
-
3.
Make this code practical. The main bottleneck is the randomness-efficient low error local test of [36], which requires a field size of over to get any nontrivial results. A related problem is to improve our rate – decoding-radius trade off.
-
4.
Are there time and space efficient deterministic list decoders for all local list correctable codes? In the unique decoding case [11] there are decoders for all locally correctable codes. Is it possible in the list decoding case?
-
5.
Construct simultaneously time and space efficient pseudorandom generators. List decoding was used in prior PRGs [47, 42], and recent work has analyzed both the fine grained space complexity of PRGs [16, 15] and the fine grained time complexity of PRGs [8, 9, 14]. It is natural to attempt to get derandomization that is both very space efficient and very time efficient simultaneously.
References
- [1] M. Alekhnovich. Linear diophantine equations over polynomials and soft decoding of reed-solomon codes. IEEE Transactions on Information Theory, 51(7):2257–2265, 2005. doi:10.1109/TIT.2005.850097.
- [2] Sanjeev Arora, Carsten Lund, Rajeev Motwani, Madhu Sudan, and Mario Szegedy. Proof verification and the hardness of approximation problems. J. ACM, 45(3):501–555, May 1998. doi:10.1145/278298.278306.
- [3] Sanjeev Arora and Shmuel Safra. Probabilistic checking of proofs: A new characterization of np. J. ACM, 45(1):70–122, January 1998. doi:10.1145/273865.273901.
- [4] Sanjeev Arora and Madhu Sudan. Improved low-degree testing and its applications. In Proceedings of the Twenty-Ninth Annual ACM Symposium on Theory of Computing, STOC ’97, pages 485–495. Association for Computing Machinery, 1997. doi:10.1145/258533.258642.
- [5] László Babai, Lance Fortnow, Leonid A. Levin, and Mario Szegedy. Checking computations in polylogarithmic time. In Proceedings of the Twenty-Third Annual ACM Symposium on Theory of Computing, STOC ’91, pages 21–32. Association for Computing Machinery, 1991. doi:10.1145/103418.103428.
- [6] L.M.J. Bazzi and S.K. Mitter. Endcoding complexity versus minimum distance. IEEE Transactions on Information Theory, 51(6):2103–2112, 2005. doi:10.1109/TIT.2005.847727.
- [7] Louay Bazzi, Mohammad Mahdian, and Daniel A. Spielman. The minimum distance of turbo-like codes. IEEE Transactions on Information Theory, 55(1):6–15, 2009. doi:10.1109/TIT.2008.2008114.
- [8] Lijie Chen and Roei Tell. Simple and fast derandomization from very hard functions: eliminating randomness at almost no cost. In Proceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing, STOC 2021, pages 283–291. Association for Computing Machinery, 2021. doi:10.1145/3406325.3451059.
- [9] Lijie Chen and Roei Tell. Hardness vs randomness, revised: Uniform, non-black-box, and instance-wise. In 2021 IEEE 62nd Annual Symposium on Foundations of Computer Science (FOCS), pages 125–136, 2022. doi:10.1109/FOCS52979.2021.00021.
- [10] Joshua Cook and Dana Moshkovitz. Explicit time and space efficient encoders exist only with random access. The Proceedings of the 39th Computational Complexity Conference (CCC24), 2024. URL: https://eccc.weizmann.ac.il/report/2024/032/.
- [11] Joshua Cook and Dana Moshkovitz. Time and space efficient deterministic decoders. STOC’25, 2025. URL: https://eccc.weizmann.ac.il/report/2024/110/.
- [12] Nicolas T. Courtois. Efficient zero-knowledge authentication based on a linear algebra problem minrank. In Colin Boyd, editor, Advances in Cryptology — ASIACRYPT 2001, pages 402–421, Berlin, Heidelberg, 2001. Springer Berlin Heidelberg. doi:10.1007/3-540-45682-1_24.
- [13] Irit Dinur and Prahladh Harsha. Composition of low-error 2-query pcps using decodable pcps. In 2009 50th Annual IEEE Symposium on Foundations of Computer Science, pages 472–481, 2009. doi:10.1109/FOCS.2009.8.
- [14] Dean Doron, Dana Moshkovitz, Justin Oh, and David Zuckerman. Nearly optimal pseudorandomness from hardness. J. ACM, 69(6), 2022. doi:10.1145/3555307.
- [15] Dean Doron, Edward Pyne, and Roei Tell. Opening up the distinguisher: A hardness to randomness approach for bpl=l that uses properties of bpl. In Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, pages 2039–2049. Association for Computing Machinery, 2024. doi:10.1145/3618260.3649772.
- [16] Dean Doron and Roei Tell. Derandomization with Minimal Memory Footprint. In Amnon Ta-Shma, editor, 38th Computational Complexity Conference (CCC 2023), volume 264 of Leibniz International Proceedings in Informatics (LIPIcs), pages 11:1–11:15, Dagstuhl, Germany, 2023. Schloss Dagstuhl – Leibniz-Zentrum für Informatik. doi:10.4230/LIPIcs.CCC.2023.11.
- [17] Peter Elias. List decoding for noisy channels. Technical report (Massachusetts Institute of Technology. Research Laboratory of Electronics), No 335, 1957.
- [18] Uriel Feige, Shafi Goldwasser, László Lovász, Shmuel Safra, and Mario Szegedy. Approximating clique is almost np-complete (preliminary version). In 32nd Annual Symposium on Foundations of Computer Science, San Juan, Puerto Rico, 1-4 October 1991, pages 2–12. IEEE Computer Society, 1991. doi:10.1109/SFCS.1991.185341.
- [19] Weishi Feng and R.E. Blahut. Some results on the sudan algorithm [for decoding reed-solomon codes]. In Proceedings. 1998 IEEE International Symposium on Information Theory (Cat. No.98CH36252), pages 57–, 1998. doi:10.1109/ISIT.1998.708638.
- [20] Oded Goldreich. A Primer on Pseudorandom Generators. University lecture series. American Mathematical Soc., 2010. URL: https://www.wisdom.weizmann.ac.il/˜oded/prg-primer.html.
- [21] Shafi Goldwasser, Yael Tauman Kalai, and Guy N. Rothblum. Delegating computation: Interactive proofs for muggles. J. ACM, 62(4), September 2015. doi:10.1145/2699436.
- [22] André Gronemeier. A note on the decoding complexity of error-correcting codes. Inf. Process. Lett., 100(3):116–119, 2006. doi:10.1016/j.ipl.2006.06.006.
- [23] Ofer Grossman and Dana Moshkovitz. Amplification and derandomization without slowdown. In 2016 IEEE 57th Annual Symposium on Foundations of Computer Science (FOCS), pages 770–779, 2016. doi:10.1109/FOCS.2016.87.
- [24] V. Guruswami and M. Sudan. Improved decoding of reed-solomon and algebraic-geometry codes. IEEE Transactions on Information Theory, 45(6):1757–1767, 1999. doi:10.1109/18.782097.
- [25] Venkatesan Guruswami. Algorithmic results in list decoding. Found. Trends Theor. Comput. Sci., 2(2):107–195, January 2007. doi:10.1561/0400000007.
- [26] Venkatesan Guruswami and Piotr Indyk. Linear time encodable and list decodable codes. In Proceedings of the Thirty-Fifth Annual ACM Symposium on Theory of Computing, STOC ’03, pages 126–135. Association for Computing Machinery, 2003. doi:10.1145/780542.780562.
- [27] R. W. Hamming. Error detecting and error correcting codes. The Bell System Technical Journal, 29(2):147–160, 1950. doi:10.1002/j.1538-7305.1950.tb00463.x.
- [28] Johan Håstad. Some optimal inapproximability results. J. ACM, 48(4):798–859, 2001. doi:10.1145/502090.502098.
- [29] Russell Impagliazzo, Valentine Kabanets, and Avi Wigderson. New direct-product testers and 2-query pcps. In Proceedings of the Forty-First Annual ACM Symposium on Theory of Computing, STOC ’09, pages 131–140. Association for Computing Machinery, 2009. doi:10.1145/1536414.1536435.
- [30] Shankar Kalyanaraman and Christopher Umans. On obtaining pseudorandomness from error-correcting codes. In FSTTCS’06, pages 105–116. Springer-Verlag, 2006. doi:10.1007/11944836_12.
- [31] Jonathan Katz and Luca Trevisan. On the efficiency of local decoding procedures for error-correcting codes. In Proceedings of the Thirty-Second Annual ACM Symposium on Theory of Computing, STOC ’00, pages 80–86. Association for Computing Machinery, 2000. doi:10.1145/335305.335315.
- [32] R. Koetter and A. Vardy. Algebraic soft-decision decoding of reed-solomon codes. IEEE Transactions on Information Theory, 49(11):2809–2825, 2003. doi:10.1109/TIT.2003.819332.
- [33] C. Lund, L. Fortnow, H. Karloff, and N. Nisan. Algebraic methods for interactive proof systems. In Proceedings [1990] 31st Annual Symposium on Foundations of Computer Science, pages 2–10 vol.1, 1990. doi:10.1109/FSCS.1990.89518.
- [34] Robert J McEliece. A public-key cryptosystem based on algebraic coding theory. Jet Propulsion Laboratory DSN Progress Report, 42-44:114–116, 1978. URL: https://ipnpr.jpl.nasa.gov/progress_report2/42-44/44N.PDF.
- [35] Dor Minzer and Kai Zhe Zheng. Near optimal alphabet-soundness tradeoff pcps. In Proceedings of the 56th Annual ACM Symposium on Theory of Computing, STOC 2024, pages 15–23. Association for Computing Machinery, 2024. doi:10.1145/3618260.3649606.
- [36] Dana Moshkovitz and Ran Raz. Sub-constant error low degree test of almost-linear size. In Proceedings of the Thirty-Eighth Annual ACM Symposium on Theory of Computing, STOC ’06, pages 21–30. Association for Computing Machinery, 2006. doi:10.1145/1132516.1132520.
- [37] Dana Moshkovitz and Ran Raz. Two-query pcp with subconstant error. J. ACM, 57(5), June 2008. doi:10.1145/1754399.1754402.
- [38] Raphael Overbeck and Nicolas Sendrier. Code-based cryptography, pages 95–145. Springer Berlin Heidelberg, Berlin, Heidelberg, 2009. doi:10.1007/978-3-540-88702-7_4.
- [39] I.S. Reed. A brief history of the development of error correcting codes. Computers & Mathematics with Applications, 39(11):89–93, 2000. doi:10.1016/S0898-1221(00)00112-7.
- [40] Omer Reingold, Guy N. Rothblum, and Ron D. Rothblum. Constant-round interactive proofs for delegating computation. In Proceedings of the Forty-Eighth Annual ACM Symposium on Theory of Computing, STOC ’16, pages 49–62. Association for Computing Machinery, 2016. doi:10.1145/2897518.2897652.
- [41] Nandakishore Santhi and Alexander Vardy. Minimum distance of codes and their branching program complexity. In 2006 IEEE International Symposium on Information Theory, pages 1490–1494, 2006. doi:10.1109/ISIT.2006.262116.
- [42] Ronen Shaltiel and Christopher Umans. Simple extractors for all min-entropies and a new pseudorandom generator. J. ACM, 52(2):172–216, March 2005. doi:10.1145/1059513.1059516.
- [43] Adi Shamir. How to share a secret. Commun. ACM, 22(11):612–613, 1979. doi:10.1145/359168.359176.
- [44] Michael Sipser and Daniel A. Spielman. Expander codes. IEEE Transactions on Information Theory, 42(6):1710–1722, 1996. doi:10.1109/18.556667.
- [45] Daniel A. Spielman. Linear-time encodable and decodable error-correcting codes. In Proceedings of the Twenty-Seventh Annual ACM Symposium on Theory of Computing, STOC ’95, pages 388–397. Association for Computing Machinery, 1995. doi:10.1145/225058.225165.
- [46] Madhu Sudan. Decoding of reed solomon codes beyond the error-correction bound. J. Complex., 13(1):180–193, March 1997. doi:10.1006/jcom.1997.0439.
- [47] Madhu Sudan, Luca Trevisan, and Salil Vadhan. Pseudorandom generators without the xor lemma. J. Comput. Syst. Sci., 62(2):236–266, 2001. doi:10.1006/jcss.2000.1730.
- [48] Luca Trevisan. Some applications of coding theory in computational complexity, 2004. URL: https://eccc.weizmann.ac.il/report/2004/043/.
- [49] Christopher Umans. Pseudo-random generators for all hardnesses. J. Comput. Syst. Sci., 67(2):419–440, 2003. doi:10.1016/S0022-0000(03)00046-1.
- [50] J.M. Wozencraft. List decoding. Quterly Progress Report, Research Laboratory of Electronics, 48:90–95, 1958.
- [51] Sergey Yekhanin. Locally Decodable Codes. Now Publishers Inc., Hanover, MA, USA, 2012.
