A survey of Reed-Muller (RM) coding is given with the goal of establishing a continuity between RM codes and polar codes. The focus is mainly on recursive decoding methods for RM codes and other ideas that are most relevant to polar coding. Index Terms-Reed-Muller codes, polar codes, channel polar ization. I. RM CODES RM codes were discovered by Muller [1] and Reed [2]. For every pair of integers 0 :::; r :::; m, there is an RM code, denoted RM(r, m), with block-length n = 2m, dimension k = L�= o (7), and minimum distance d = 2m-T• For each m 2: 0, the code RM(O, m) is the repetition code and RM(m, m) is the trivial code consisting of all binary n-tuples. All other RM codes can be obtained by the Plotkin construction [3], also known as the lulu + v i construction, by the recursion(1)A more explicit algebraic description of RM codes is given by first specifying a generator matrix for RM(m, m) aswhere F ® m denotes the mth Kronecker power of F. Then, for o :::; r :::; m, GRM(r, m), the generator matrix of RM(r, m), is taken as the submatrix of G RM (m, m) consisting of rows with Hamming weights 2: 2m-T• The equivalence of these two constructions is well-known (see, e.g., [4, p. 114]) .For example, for m = 3, we have 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 GRM(3,3) = 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 (3) 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 and RM(l, 3) is the code with generator matrix G RM(I, 3) � [ l 1 1 1 0 0 0 ] 1 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 1The encoding operation for all RM codes of a given length n = 2m can be represented universally as a transform x= dF ® m (5) where d = (do, ... , dn-1 ) and x = (xo, ... , Xn-l ) represent data and code words, respectively. Depending on the order of the RM code to be encoded, some of the elements of dare fixed to zero. For example, for the RM(l, 3) code, the fixed coordinates are do, d1, d2, and d4. The coordinates that are not fixed are free to take on any 0-1 value.The universal encoder can be implemented by a circuit of complexity O(n log n), as shown in Fig. 1 for n = 8. The figure also shows how a codeword x splits into two parts u and v, each of which in tum splits again into two parts, and so on, until one reaches single data elements di. For example, u has the form Irlr+sl, and s has the form Id5Id4+d51. Thus, this code has a three-level lulu + v i structure. U o Y 4 Fig. I. Encoding and transmission of data.A codeword x is obtained by a circuit that mUltiplies a data word d by F0a. The codeword is sent over a memory less channel Wand a channel output y is received.The transform (5) can be used as an encoder for a broader class of codes than just RM codes. For a given pair of code parameters (n, k), there are (�) codes that can be encoded, each corresponding to a particular way of choosing the (n -k)