 Okay, so we've been looking at the read-nuller codes, okay, so we continue and I think the way we were describing this was half the read-nuller code of length m, r, m, okay, and the block length was 2 power m, the dimension was 1 plus m choose 1 plus m choose 2, and I didn't quite prove it to you, the minimum distance will be equal to 2 power minus r, we need to prove this. Okay, so before that, I want to give you a different ways of viewing this code, I think it's important to view this code in several different ways. The first way that we saw was in terms of the generator matrix, right, so how do you construct the generator matrix? So let me take a simple example, so if I take, let's say m equals, so maybe I should go to the next page and take m equals 4, I'll show you how that might work out, so let's say we take m equals 4, there are several vectors of length 16, like 2 power m, that we start with, okay, so we pick that generator matrix using those vectors, how do we think of those vectors? We think of those vectors as Boolean functions, okay, and we use Boolean variables v4, v3, v2, and v1, that we use Boolean variable vectors, and then define Boolean functions, Boolean variables, and then Boolean functions using these variables, okay, binary-valued variables, how do we do that? We start with the first case, which is the one, okay, what is one? One is one, two, right, so there's no problem, so if we're doing 16, okay, one, one, one, one, one, one, one, one, right, so that is one. And then we had the four functions themselves, right, so how did that look? So v4 is going to be something like this, right, v3 is going to be, that's right, what is v2 going to be? That's correct, then v1 is going to be 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, let that, so it's just 0, 1, 2, 3, let that. And then we had other base here, so we may be, look at this, so v3, v4, v3, v2, v3, v1, and then you have v2, v4, what else, there should be 6 of them, right, v2, v1 and v1, v4, x, v2, v1, v1, v4, x, v2, v1, v2, v1, v2, v1, v2, v2, v1, v2, and all. So that is the 6 of them, you can write it down, I mean if you write it down, you will see v3, v4, I'll write a few of them, you don't have to write all of them, you can write a few of them, so that will be something like, if you write v3, v4, it's just the product of post-do, it's just the v0, v0, v0, v0, v2, v0. So v3, v4, you can think of it either as the and or just the product, okay, so and and the product are the same, so you So, whatever both of them are one, we have one, otherwise it will be zero. So, whatever we do, if I say b1, b2, so let me do b1, b2. b1, b2 is going to be 0, 0, 0, 0, 1. 0, 0, 0, 0, 1. It's just going to be 0, 0, 0, 0, 0, 1, right? Am I right? So, if you write b3, b2 also, you can fill it up if you like. So, you will get something. b1, b3 will be something else. And then what do you have? We will be looking at functions of this form. So, b4, b3, b2. And how many of them there will be? There will be four of them. So, b4, b3, b2, b4, b2, b1, b1, b2, b3 and b1, b3, b4. So, there will be four of them. And the last function will be b1, b2, b3, b4. So, the last case will be b1, b2, b3. So, I am just running out of room here. Can't represent all of them here. So, what will be b1, b2, b3, b4? The very last one is I write it down, b1, b2, b3, b4. So, to do that, it looks like we have more room. So, let's write it down. So, I have not been using that much room. So, let me write it down. So, we throw b3, b2, b1, then b3, b2, b1. And then the last one will be b4, b3, b2, b1. So, b4, b3, b2, b1 will be what? B0, b0, b0, b0, b0, b0, b0, b0, b0, b0, b0, b0, b0, b0. And the last one will be 1. Everything else will be 0. If you want, you can write the other way as well. So, what will be b3, b4, b3, b2? What will be b4, b3, b2? It will be the right 2, right? Right can only be 2. It will be 0 except for the last 2 that will be 1. So, b4, b2, b1 also will be like that. It will be only 2 places that it will be 1. So, you can write all these things. So, we will get 16 vectors of length 16. So, these are, these are homobases. So, these 16 guys, they are homobases. And we take some subset of these guys to make different readmuller codes. For the 0-tata readmuller code, we just take the first row alone. For the first row alone, we take the first side rows. For the second row alone, we take the first 11 rows. So, you have to get so we proceed. So, that is one way of defining readmuller codes. So, it's just a generator matrix definition. You look at these Boolean functions, you list them in a certain order. You observe that they are linearly independent and then say you take some subset of them. As your rows of the generator matrix, you get the readmuller code. So, another important view is this polynomial view. So, what is this polynomial idea? Polynomial evaluation definition. So, this one is equally important. So, we said that... So, I gave you a way of viewing a Boolean function. So, this Boolean function in n variables. I gave you a form, a general form in which this can be written. Of course, we are familiar with the minterm. What is it called? Is it the minterm? I don't know what it is called, minterm or maxterm or some one of those things. You are familiar with the minterm or expression. We saw that the minterm or the r can be replaced with Xr. If you think in terms of Boolean vectors and all that, it can be replaced with Xr. And then every knot, the complement can be written as 1 Xr without the knot. So, you multiply it all up. You see that every Boolean function of n variables can be written as a linear combination of what I have before this vector. In other words, you are basically looking at polynomials in n variables. The variable state binary values. So, I can think of those instead of thinking of Boolean function. Boolean function is a little more complicated. I can think of this as basically a polynomial in n variables. And for this polynomial, we define the degree. What is the degree for this polynomials in n variables? The first observation we made about this polynomial is there is no powers. The powers will not show. So, what is the general term in this polynomial? It will be V i 1, V i 2. So, I will think V i r. So, this is how the general term will look like. There will be no powers. Why will there not be any powers? Why will I not have V 1 squared or V 1 part n or V 2 part n? It is all binary value. So, V i squared is equal to V i. So, we know that V i squared is equal to V i. First, these are binary values. So, you use this idea and notice that the most general term will be something like this. So, we said degree of this general term is equal to l. And the degree of the polynomial is maximum degree over all terms. So, that becomes the degree of the polynomial. So, another way to define this regular code of r comma m is the following. You first, so to generate the code words of r m comma r m of r n, you can either do the general matrix like I said before and say the row space is the code word. That is one way. Another way to do it is you select an arbitrary polynomial f of V 1, V 2, V n as degree less than or equal to r. That is where the r will come in. Degree has to be less than or equal to r. You pick an arbitrary polynomial. So, what do you mean by arbitrary polynomial? So, if I say degree less than or equal to r, the number of terms it can have is, it can have the constant term, it can have the degree 1 term, it can have the degree 2 term, it can have the degree 3 term. So, on to the degree r term. For each of those terms, you can either put a 0 or a 1 as the coefficient. Because that is all binary. So, it will go back to our computation. Because the number of such polynomials will be exactly equal to 2 power k. Whatever k we defined, 1 plus n choose, 1 plus n choose. So, from a dimension point of view, it is the same thing. And then, how do you generate a code word from this f? The way you do this, you basically first write down this V m, V m minus 1, or put V 1. So, we start from power 0 and do an actual ordering, we are all the way to power 1s. And then, your code word, the code word is basically what? What will you put here? So, what you can do is, you can index the coordinates of your code word with these 2 power n embed vectors. So, these are basically 2 power n embed vectors. These are the personal values taken by your variables V m through V 1. So, how do I usually index the coordinates of my code word? As if you say, 1, 2, 3, 4, all the way to 2 power n. Instead of doing that, I will use my embed binary representation to index the coordinates. I see the first coordinate is actually 0, 0, 0, 0, 0, 0. The last coordinate is actually 1, 1, 1, 1. Something in the middle is whatever binary sequence you have. I can index it that way also. What is nice about that way of indexing it is, I can have a very simple description for the actual coordinate bed. What will be C 0? C 0 will simply be s cross 0 to 0. So, if I have a polynomial s of V 1 through V m, the code word that is produced by the polynomial is simply the evaluations of the polynomial at each and every possibility for the m variable set. So, I will go back to C 2 by m minus 1. This will be s cross 1, 1, 0. So, both of them are exactly the same. Do you agree with me that the description we had before and this description is exactly the same? Is it easy to see? You see, I had the generator matrix where each row was basically standing for one possible term. So, when I make an arbitrary code word from the generator matrix, what will I be doing? I will be multiplying some rows by 0, some rows by 1 and adding up all the rows to get one vector. What is the equivalent function? The sum function of degree less than or equal to r. So, you take that function and evaluate it, you will get that exact same code word. So, both of them are the same description that will give you a different flavor as what the code is all about. In one case, you think of a generator matrix in row space. In the other case, you think of polynomial evaluation. The code words of a read-muller code, every code word of a read-muller code corresponds to a polynomial of degree less than or equal to r. And how do you generate the code word bits? You simply evaluate the polynomial in each of those possible combinations for the variables. Is that okay? So, both of these are useful descriptions in figuring out several properties that you want to know. Is that okay? Seems interesting, no? Maybe. Is there any question? Something I have in you about this. That is the problem. So, maybe I should take an example. So, let's say we take m equals 4 and r equals 1. Let's say we do that. So, let's say we take m equals 4, r equals 1. One way to get a code word is... So, that will be my generator matrix. If I take m equals 4 and r equals 1, so maybe I should just copy this. Then we will... That will be the generator matrix. So, let me simply take that. And go up here and do this example. Some detail for you. So, copy and paste it. So, I'm going to have m equals 4. So, this is my generator matrix. So, one code word... So, suppose I want to generate some arbitrary code word. I can take... This is my generator matrix. So, I can take a code word C to be... Let's say, 1, 0, 1, 0, 1, 0, 1 times G. So, this is the one I'm doing the code word. So, what do you do this? 1, 0, 1, 0, 1 times G. You will get a vector. What will that vector be? 1, 0, 1, 0. What will it be here? 0, 1, 0, 1. 1, 0, 1, 0. 0, 1, 0, 1. That's going to be my code word. So, this is one code word in my... This is 4 R equals 1 rate molecule. The same code word... I can think of it as a polynomial evaluation. I will do that. I have to know... Give me a function. What will be that function? What will be that function? What will be the function that will generate this? 1 plus V3 plus V1. It's a primary variable equivalence. So, there's nothing really great about it. So, you take this function 1 plus V3 plus V1, and then... So, notice this order that I gave to you. The other is present here, the first one is here and the last one is here, ignore the first one. So, you simply take this polynomial and evaluate it on each of the columns, you will get that exact same code. So, if you want you can check that, I mean it is kind of like a trivial correspondence, there is nothing very non-trivial about it, it is good to keep in mind that every word of the readable code can be taught as, can be associated with a polynomial, binary polynomial of degree less than or equal to r in m variables. Every coordinate is simply obtained by evaluating the polynomial over all possible m bit vectors, values taken by the variance. So, you will just surprise to know that even the read Solomon code that we saw so far has a description like this. So, I will come back and give you the description subject, read Solomon code also has a polynomial evaluation description. So, the polynomial evaluation description is a powerful idea, it is used in so many different contexts. So, this is what I mean, this is a general rule, you write any other general matrix, you can always associate a function with it and simply evaluate it. So, the read Millipode, this is the first equal. So, let me ask you a question now based on this correspondence. So, we have to use this correspondence a little bit to answer this question. The question I am going to ask you is, suppose I take the, so I can take now, so the lots of interesting things here. So, one of the properties, so let us do a few very simple properties. So, that is what I want to show, so I have to relate it to the question I am going to ask you. So, some properties. So, the first property is quite easy, so if you take all the read Millipodes, so until RMS, let us say we will do this the other one, M minus 1 comma M and then RMS. So, these are all the read Millipodes for a particular M. So, I want to put something there, what can I put here? Can I put some, some operator here to say that this code will, yes. I am sorry. So, M minus this, M times G, is that okay? I thought the whole point of saying code will be multiplying by G. So, G is defined to be this matrix and then I write M times G. Is that okay? So, I thought about this code where I took the first row, excited with the third row and excited with the 5th row. So, I got this code like this. So, I am coming, so if you say that this is so M0 and R1, R2, M3, M4. You simply take those message bits and multiply by these functions that represent you will get the corresponding polynomial. So, you take these as the coefficients of your polynomials for the corresponding rows. That is the way to formally write it down. So, every message will correspond to a polynomial. See, because this is some vector addition and down to the vector addition, I think that was my question. That is this view, that is the generator matrix view. Yes. It is also the same thing. There is no difference. But later on, we will see in some proofs, it is just easier to think of it as a polynomial evaluation. In some proofs, it is easier to think of it as a generator matrix. So, it is good to have different views for the same thing. It is like normal. So, many different things you do. You would give them the same views for different properties to come out nicely. Okay. So, what can I put in the middle? It is very nice property that, yeah, it is a subset, right? Okay. So, this page included here is given to a row. Okay. Minute. That is the first thing I come to. The second property, I already alluded to before. Okay. So, let me ask it in the form of a question first. Okay. Suppose I have an arbitrary polynomial. Suppose I say, degree is less than or equal to m minus 1. So, suppose I generate a code word corresponding to this. So, what do we mean by generating a code word corresponding to this? We will evaluate each of these possibilities. What can I say about the weight of this program? It should be even, right? Can you say that? Okay. Right. So, we thought of it like this may not be very easy to prove from the evaluation point of view. So, it is not. It may not be very easy. So, let us look at it as a vector combination. Combination from the generator matrix is very easy. It is a very function. The third one to be given has even weight. So, this polynomial evaluation is nothing but the XOR of even weight code word. So, that should be even weight. Okay. So, that is a very easy thing to say from the vector point of view. It may not be very easy from the polynomial point of view. I will show you another property which is true from the polynomial point of view which is difficult to check from the vector point of view. Yes. So, I will give you an example. Some people like one view. Some people like the other view. Some people like the other view. Okay. This is the other property. The third property I want to show is a little bit more enrolled and it is a crucial property. It is about the construction of rate miller codes. It gives you a nice handle on the construction. This is the construction. Okay. So, if you take r plus 1 and plus 1. Okay. So, what is this? This is the r plus 1 power rate miller code at length 2 power m plus 1. So, I have increased one more variable. I have increased one more variable. It turns out this can be written as u. Okay. I will put a vertical slash here. The vertical slash doesn't mean anything. Just concatenate. Okay. u plus v. Okay. So, that u actually belongs to rate miller code r plus 1 dot m. Then v belongs to rate miller code r comma m. Okay. So, this is a very, very nice property and it is used to show some very powerful. One of its uses is to show the minimum distance. Okay. First of all, before we go into proving it, first of all, it doesn't even make sense. Okay. So, remember, what is the length plus the code word for r plus 1 comma m plus 1? It will be 2 power m plus 1. They have a 2 power m plus 1 vector here. Yes, they do. So, u is a 2 power m vector. v is also a 2 power m vector. So, u here is 2 power m. 2 power m plus 2 power m is 2 power m plus 1. At least from that level, it makes sense. The next level you may want to think about is the number of code words on the LHS and the RHS. Okay. Let me see. Try this. Show that the number of code words on the left-hand side is equal to the number of code words on the right-hand side. Remember, u can be pictured here arbitrarily. v can be pictured here arbitrarily. Can you show that? Yeah. Yeah. Yeah. So, you have to use the prominent border identity, right? So, you have to see that carefully. And then you will see that it will work out. Okay. So, it needs some working, right? It is not immediate. Am I right? See, the number of views is what? No, it is not. 1 plus m choose 1, m choose 2 all the way to m choose R plus 1. The number of views is 1 plus m choose 2, m choose R. Then you have to multiply those two or add those two. You have to multiply those two. Then, you have to get this grade. Okay. So, it is a non-trivial operation. It is not just one application of the result that you are citing, but the result is something you will be used. Okay. So, we will do that carefully. Okay. Try it as a prominent border identity. If you are interested in manipulating prominent border things, it is not a major thing, but something you can show that this is true. Okay. So, it makes sense at least from a first-order point of view. Okay. Then you might want to... I am sorry. I don't know. I might be... I know those combinatorics is involved identities. You can use anything you want. Try to prove it. Just so we give it a challenge in case you want to prove it. But we will prove it using our read sediment method, read miller code method. Right. We will show that this gives you this. We will start from the left-hand side and go to the right-hand side. Okay. We will give you a method for starting with an arbitrary code word on the left-hand side and go into the right-hand side. Okay. And then, vice versa. So, I have shown a one-to-one mapping for this. Okay. So, this is a way of proving the combinatorial identity field. Okay. So, you can think of it that way. Okay. All right. So, here the polynomial view is very nice. Okay. So, if you take the vector view, it is not hard. It can be done. But the polynomial view is also nice. Okay. It gives you a very nice handle on what is going to happen. Okay. So, what I am going to do, like I said, is I am going to start with the code word on the left-hand side and show you how to find U and V. Okay. So, once I do that, I am sure that U belongs to this code word, U belongs to this code word. So, I will be done. Okay. Going the other way also, we will see it is possible. It is not very easy. Okay. So, let us try that. Okay. So, what is an arbitrary code word that belongs to R and M? R plus 1 comma M plus 1. Okay. So, the work of it as a polynomial. Okay. So, the word is a polynomial in M plus 1 variables. Okay. And I know the degree is less than or equal to R plus 1. Right. So, this will have several terms. It is the sum of several terms. It will be like that. Okay. So, it will have a lot of terms which do not involve V M plus 1. Okay. Make have. Okay. So, all those terms and call it as G of V 1 to V M. Okay. All those terms which do not have V M plus 1. Okay. So, it is a polynomial in M plus 1 variables. There will be several terms which do not have V M plus 1. There can be. All those ways you collect together and put it into G. That will be the degree of this game. What can you say about the degree of this game? R plus 1. So, it will be R plus 1. So, it will be R plus 1. All those will be left. All the other terms will have V M plus 1. What does that mean? I can tell V M plus 1 outside. So, once I tell V M plus 1 outside, I will have something else which I will call picture. Again, V M only. And what can I now say about the degree here? Less than or equal to R. Is it okay? Okay. So, if I evaluate F, I will get a vector of length 2 power m plus 1. What I can do instead is to evaluate G for all 2 power m plus 1 possibilities first. And then I can evaluate the m plus 1 time sets for all 2 power m plus 1 possibilities and then I can extract those 2 vectors. I will get the exact same answer. So, the third word here corresponding to this guy and there it is 2 power m plus 1 possibilities over all the m plus 1 variables V1 through Vm plus 1. Now, what will happen is I evaluate G over all 2 power m plus 1 possibilities. Whenever V, it says it is independent of Vm plus 1. So, Vm plus 1 is 0 for the first 2 power n cases and then Vm plus 1 is 1 for the next 2 power n cases. But it does not matter because Vm plus 1 does not even show up. So, I should get the same vector repeated. So, I will get a vector which is U and then U is there. You agree? So, that is U now. U is simply G evaluated by M book. So, you take G evaluated by M book, this Vm plus 1 does not really matter. We will be 0 set alive and then 1 for the next. It does not matter. See, Vm plus 1 is the largest thing. That is 0 for the first 2 power n, 1 for the next 2 power n. So, that is how the variables will be. Now, what about this way? What will be the first 2 power n path? 0. Why will it be 0? What is Vm plus 1 is 0? So, for the next 2 power n path, it will be an evaluation of H that I will call V. So, what is V? V is the evaluation of H on M bit vectors again. Only M bit vector. So, Vm plus 1 is just its outside only on M bit vectors. What do you know about U now? U will belong to obviously, G is a degree R plus 1 polynomial in M variables. So, clearly U belongs to R M of R plus 1 M. What about V? V belongs to R M of R plus 1. And that is my reason. So, any code word in R M of R plus 1 comma M plus 1 can be written in this U, U plus V form. So, this U, U plus V is a very powerful construction. I will show you an interesting property for it soon enough. It is a very interesting and powerful construction. So, how do you do it? Other way is very trivial. You just take anything like this, you come back and every step I did can be reversed. So, I can go this way, I can go back and it means this is a one to one transformation. Yes. . No, the degree can be R plus 1. The degree is R plus 1. So, the inclusion doesn't go the other way. See, this case for instance R M of V will also belong to this where the inclusion goes that way. The other way there is no inclusion. Yes. . No, no, no, less than or equal to R plus. That is the definition for the envelope. I think I made that degrees, did I get that right? I don't know if I clearly stated it, but yeah, degree is less than or equal to R. So, less than or equal to R. So, that's our proof for this U, U plus V. So, there are lots of powerful interpretations of this thing. So, for instance, if you get a generator matrix, so I will give you a generator matrix interpretation. This is a very interesting interpretation. So, remember if I now think of the generator matrix. So, let me go back and take that back. So, I think I have told some nonsense about the multiplication here, which is not true. So, the number of forward words here is 2 power of the dimension times 2 power of the dimension. So, the dimensions only add. I think I said some multiplication involved. There is no multiplication involved. But there are several terms in the summation. You have to use the identity repeatedly to do that. Is that clear? So, let me go back and correct it. So, the number of forward words U is 2 power kf R plus 1 comma m. The number of forward words V is 2 power kf R comma m. So, when you multiply those two, the dimensions will add. But it's not just 1 plus 1 choose R plus 1. You have also to add everything together and carefully see that it adds up to this. So, that's the only thing you have to do. It can be done very easily. So, I have to correct that. So, when I thought about the generator matrix, I understood that there is a mistake there. So, now, let's think in terms of generator matrix for the R plus 1. So, what happens? So, we have Rn of R plus 1 comma m plus 1. Every forward word can be written as U plus V where U belongs to Rn of R plus 1 and V belongs to Rn of R comma m. So, this imposes a structure on the generator matrix of my code. So, I can have a generator matrix for this code, which may be I tell the R plus 1 comma m plus 1, which will have this form. What kind of a form? First thing I can do is I can put this vertical line here. I'll separate it into 2 comma m, 2 comma m. What I have before 2 comma m is from Rn of R plus 1 comma m. So, I can put a G R plus 1 comma m here. Now, the same code word also shows up on the other side, which means I should put the same U of R plus 1 comma m here also. Then, what I should put? Below this, I should put G of R comma m. What will I have here? Here, it will be easy. So, this is not really a very drastic result. In terms of all possible binary vectors and then putting one to the other, this form will be clear also, but it's very hard to visualize that from the all possible binary vectors. Think about it. It's very hard. At least for the general R, I find it to be difficult. So, it's not too hard. It's difficult to visualize it. But from the polynomial point of view, the proof is very clean and it just comes out very nicely. So, what can I do now? I can repeatedly use this result. So, I have it for m plus 1, R plus 1. I use it repeatedly in each of these plots. I'll simplify, simplify, simplify. I'll go over some. There were a form which is, which has lesser values for m and R. And at that point, I can select that one. So, there is this recursive structure that's implied by this U U plus B. So, the recursive structure is quite useful in several contexts. And it could be like it. There are lots of things that you can do with this recursive structure. So, this is one way in which this U U plus B structure is used. If you want to come up with a large generator matrix, you don't have to remember the entire large generator matrix. You can remember smaller matrices and then put it together nicely. So, you can repeatedly do this. And that kind of thing is useful in lots of semi-processing. I mean, if you want to remember some big matrix, you can do it very nicely. Think about that. That's one utility. The other utility, of course, is in the minimum distance. So, that's the thing I'm going to show for you next. So, let's talk about U U plus B construction. Suppose I have two chords, C1, C2. So, I burned the two chords separately. So, I have two chords, C1, which is an N, K1, C1 chord. C2 is an N, K2, C2 chord. And suppose I make a chord C, which is U plus B, U and C1, B and C. This is properly well-designed. Both of them have the same length. We can have different dimensions. It doesn't matter. What will be the size of this chord? Two parts, K1 plus K2. So, finally, the block length here will be 2 N. That's quite easy to see. What will be the dimension? K1 plus K2. Here, it's also very easy to see. What about the minimum distance? That's my question. This is a very interesting construction. Let me see. Think about it for a while. Let me see some guesses on minimum distance. What can I say about minimum distance? Will it be greater than? Yeah, I mean, I want good bounds. I mean, I can say greater than D1. Fine. That's true. But I want to use both sides. I don't want to use just one side. If I do use just one side, then there's no point in doing U plus V. I have to be able to use both sides and then come up with a nice... For instance, if I say a code word of C is non-zero, right? There are two possible cases. V could be zero or V could be non-zero. If V is zero, what happens? You have two D1. That's a better answer than D1. If V is non-zero, what happens? That is the trick. This is the trick we used to get a good decent bound. It turns out if V is non-zero, you can show how the weight will be greater than or equal to D2. Think about it. Let me try this proof for about 5 minutes. It's interesting. My claim is if V is zero, the minimum weight is greater than or equal to D1. That's very easy, right? You have U, U. U has to be non-zero, right? If V is zero, U has to be non-zero. So non-zero code word, the same code word repeating, should have at least weight D1, so it will be two D1. If V is non-zero, okay, U could be zero. If U is zero, then you have D2, what do you mean? But if U is not zero, then U plus V can cancel something, right? But then what has to happen? You add here also, right? That's the idea. So for example, U is cancelling something in V in the right path and the left path, that will be a one that's adding. Only if it is a one that can reduce the weight. If it is a zero, it can't reduce weight. So it will be adding in. So whatever it cancels here, it has to add on this side. So it should be at least weight, okay? So you can show the minimum distance D is greater than or equal to minimum of two D1, okay? So that's the result you can show for the U, U plus reconstruction. It's a bit non-trivial. This path is quite easy. This path is a little bit tricky, but you have to think about it. So you have to think about it for a while. Condition on V, when V is non-zero, what can happen? V is zero, what can happen? Okay? Okay. So now I'm going to show this. Can we say that for V to go towards the minimum distance of space? It's two path M minus R. I'm going to prove it. I'm going to prove that using this method. Okay? So in fact, okay, so we will see. We'll see something. So what do we do for the regional approach? So for the Rn code, I know this identity. But Rn plus R plus 1, N plus 1 equals U equals V. So what do we do again? Rn plus R plus 1, N minus R plus R plus N. Okay? I want to show something like minimum distance of the regional approach is two path M minus R. So is there any method that is suggesting itself to you? Induction. Induction. Okay? So we have to do induction on it. Okay? So you assume that for M, for all R, it is true that minimum distance is two path M minus R. And for some small M, you can verify that. It's very easy. Take for M equals 8, and exactly verify it, or M equal to 4. M equal to 2, and exactly verify it. It's a very simple case. So you can exactly verify that for small M. Okay? And then your index and assumption is, for a particular M, it is true that the minimum distance is 2 path M minus R. What happens to M plus 1 is what I have to show. For that, I will use this. Okay? So what happens to the M in here? Greater than or equal to minimum of what? Two things, minimum distance of the first gate. What is the minimum distance of the first gate according to my index and assumption? Two path M minus R minus 1. Two things, what is what? Two path M minus R. Okay? And then what about the other gate? It's again two path M minus R. How do I know that this bound will be met? How do I know from here, how can I go to equality? Yeah, there is a V, right? So I know minimum distance of R M of R comma M is equal to two path M minus R. You simply set U equal to 0, and take the minimum gate code from there, you have to get two path M minus R. Okay? So if you know the minimum distance, you can exactly say that it has to happen also. Okay? So from here you can go to the equality also. You can just set the equality if you like. But it should be really okay. Okay? So I'm sure for R M of R plus 1 comma M plus 1, D minus two path M minus R and that is enough. Okay? So my induction can proceed now to M plus 1. You can check these other cases if you like. It will just work out. Okay? So it's not a good thing. Okay? So by induction on M, improve this, improve this result. Okay? So the U, U plus 3 construction, I hope you agree, is quite useful. If you see a nice proof of the minimum distance, this is your recursive structure representative matrix, which you can use for encoding if you like. Okay? So you can encoding a large n-regional code. You may not want to store the entire representative matrix. You don't have to do that if you use the recursive construction. You can store smaller parts from together here. Okay? All right. So that's about the thing. And the last thing I want to show you today is yet another view of the regional approach. Okay? So it has become very, very popular recently. Okay? So it was used before, but recently with this new type of codes called polar codes, this interpretation of Weedmuller codes has become much more popular. Okay? So it's another construction. Okay? So this won't prove in any great detail, but you can probably think about it and convince yourself that it's true. Okay? So what we'll do is we will construct the 2-par M plus 2-par M binary matrix. Okay? Okay? So if you think about the Boolean function construction, this is what we did. We came up with 2-par M vectors of length 2-par M. So you can think of it as a matrix. And we took basis vectors from that matrix as a subset of the rows. We took the first one row or first six rows or first 11 rows. Some subset of the rows we took as our generator matrix. Okay? A similar idea I used here except that the 2-par M by 2-par M matrix is constructed differently. So how do you do that? You do it yourself. You start with this innocent looking matrix, 1, 1, 2, 1. Which may be out of G2. Okay? And then G4 is going to be G2 monocoque product with G. Okay? So that is just monocoque product. I'm going to have to know what a monocoque product is. To take two matrices A and B, you replace every element of A, AMN by AMN times B. Okay? So every element is blown up into a matrix with a scaled version of the next matrix. Okay? So monocoque product is a crazy product. It's not common data on all that. But it's always well-defined. For any given matrices A and B, it's defined. So we will get a big matrix, the product of the two rows, product of the two columns of the ultimate dimension. So it will become a matrix. It will blow up. Okay? So what happens when I do G2 monocoque G2 here? I get 1, 1, 0, 1. 1, 1, 0, 1. This is 0, 0, 0, 0, 0. And you'll get 1, 1, 0, 1. So wherever you have a 1, you simply get the same. Now what about G2 monocoque product G2? Another monocoque product with G2. If you take this and take a monocoque product with G2, you'll get G8. Take another monocoque product with G2, you'll get G16. So if you go to each of these guys, you will see that G2 power M equals G2 monocoque product G2 to G2 M times. Okay? You can write it as 2 power M by 2 power M binary matrix. This rows will be permutation of, will be some permutation of the previous rows that we had. What are the previous rows that we had? 1, Vm, Vm minus 1, V1 and then products etc. lower bound to Vm, Vm minus 1. Okay? It's quite easy to see why the top row has to be 1. Right? Whenever G1 doing it, top row will be 1. Similarly bottom row will be Vm, V1. Everything will be 0 except for the last one being 1. The other things are a little bit more complicated. But you can go through it right for a few experiments. It can also be shown rigorously. But if you do this repeated monocoque product, the rows that you get in your 2 power M by 2 power M matrix will be the same as the rows that you had before except that it will appear in a different order. Okay? Then what can you do to construct readmuller codes from this? You simply choose those different rows. Okay? So one of the key innovations that have been, that's been around recently now in polar codes, which has become very popular is, instead of choosing the rows as suggested by the readmuller idea, you choose the rows differently from this. Okay? And how you choose that will depend on the channel and all that. So you use all those ideas to pick this. So this concept is quite interesting in that fashion. But that's the idea. Okay? So readmuller codes can also be constructed this way. And I don't want to go into more details here. It's not immediately useful for us. So we won't use it very extensively. So that's the end of it. Okay? So there's one more property for the readmuller codes that we have to do. And after that we can look at encoding and decoding. And that's got to do with the dual of the readmuller codes. We came up to the minimum distance assumption. The next thing we saw was dmin equals 2.n-r for readmuller rm. The next thing about the dual, the dual you can show, the dual of rm of r,n will be rm of m-r-1,n. So that's the result, which I will prove in the next class. Okay? So the name result we'll prove in the next class will be about the dual. If you want the dual, you got rm of m-r-1,n. So you'll see it's very easy. The proof is very easy. Once again the proof will involve the polynomial u and the vector v. Okay? And if you go back and forth between the two, it's a bit confusing. But it puts us into... So after this we'll see encoding decodes. Okay? And that will... But we'll pretty much finish up the readmuller codes. And I'll tell you a minute, there are a few references to your book. I think the lumenkostler book has a reasonable account of readmuller codes. You can read it. There are also other references, but whatever is there in lumenkostler is good enough. Okay? So the good thing is there is what I've... I've not done anything beyond that. I'm going to stick to that for this. Okay? So that'll end the readmuller codes. So we'll finish the readmuller codes tomorrow. And we'll meet after that.