 Okay, so we're going to start a new topic today, reading the low codes. Man, it's okay, we're reading the low codes. Okay, so before we do that, I want to emphasize once again that what you've seen so far is... So at this point in the course, if somebody wants a T error-correcting code, if somebody wants a T error-correcting code with a block length n, so I'm going to presume that you know how to come up with a code like this, come up with an efficiently implementable encoder, come up with an efficiently implementable decoder for that code. So what would be your choice? There are two possible choices. One is to have a... What are the two possible choices? You have a read-solving code, or you could have a VCH code. There are some advantages and disadvantages with either one. VCH codes have better performance for the same rate, etc. But read-solving code has better lower implementation complexity in terms of field involved. So that's the point where we are, and that's a good thing. So in a way, one ready-made solution we can always provide. So this is quite competent, it's not going to be very bad solution. So the read-muller codes are in a way codes that were replaced by read-solving and VCH codes. In a way, in case of read-solving, read-muller codes are slightly older. You might wonder why are we going to look at it. We won't look at it in great detail, but we'll see enough things there. Of course, the decoder for read-muller codes has some constructions which are very interesting. So it's not like a T error correcting boundary distance decoder. It's a different kind of decoder. For instance, I've been mentioning how when you want to get to capacity and such things, like we'll see in the next course, if you take a course, you'll see that it's not important to just correct up to the error correcting capability. You should correct a large fraction of errors beyond that also. So read-muller codes have decoders which at least correct a non-zero fraction beyond the error correcting capability. And that is a big interest. For that purpose, we'll see it. It also has a lot of nice coding theory ideas and we'll see the construction is very nice. So that's one thing which is good about this. So those are the reasons why we're saying it. Talking about it, so when I talk about the decoder, I think it would be good to pay more attention. The way we derive the decoder and look at the properties would be very interesting. Read-muller codes. Okay, so let's begin with the RM codes. So read-muller codes are a popular abbreviation of codes with the RM. So read-muller codes have a block length which is 2 power M of 1. So it's very trivial to start with 0 and 1 and all that. So if the block length is 1 and 2 and 4, you can pretty much distort all possible codes for blocking one. Similarly, if you start with 3, I mean nothing starts here depending on the problem. 0, 1, 2, 3. So usually I'm equal to 3 onwards is where it will become the I3 non-privileged. Otherwise it will be just a real set of codes. And this is the block length. And the construction, so far for each RM and BCH code, are always motivated with the parity check matrix. So you'll see for decoding read-muller codes, we'll go to the parity check matrix. But before that, the construction is usually described in terms of the generator matrix. And this is an interesting construct where you can guarantee a minimum distance based on the generator matrix construction. So far if you look at minimum distance property, the solution property we used was the random on-structure. And we said if you take, the matrix will be in full rank, so we cannot have any independence. What can I say? I have nothing. They have a job to do and they have to do it. So that's what we've seen. So coming back, this construction is using a generator matrix. And even through that, you'll be able to guarantee a minimum distance. So I'm going to give you the parameters first just to get loose to it. And then we'll see the I3 construction. So the read-muller code has usually two parameters, R and M. Length will be 2 power M. M will go from 0, 1, 2, etc. And R will take any values from 0 to M. So the read-muller code itself has two parameters, small R and small M. M is some non-negative integer, 0, 1, 2, 3, etc. R is, again an integer, but it takes values only from 0 to M. So if M is 3, R can take values 0, 1, 2, etc. So for every R and M, you have dimension 2 of R and M. So this is the dimension. State of R and M is basically M2 is 0. What is M2 is 0? 1, of course. M2 is 1, so R and M2 is R. So the block height is a power of 2, 2 power 3, 2 power 4, etc. And the dimension is this binomial coefficients added up to R. So if you say R, so this such a code is called the R-powder read-muller code of length N equals 2 power M. So you say R is the order of the read-muller code. M is the state 2, stands for 2 power M. So you see the R-powder, RN, the read-muller code, you can also say as the R-powder read-muller code of length 2 power M. So this is called the R-powder read-muller code. So that's the dimension. So it turns out minimum distance for this code is 2 power M minus R. So I think that probably got caught in the, let me just change this to 1. So you can see that. So the minimum distance for the R-powder read-muller code is 2 power M minus R. So that's the powerful nature of this result. So you have some good properties of this. So that's the parameters. If nothing in the parameter itself, we really need to know about the encoding and decoding and the construction, etc. That's what plays a crucial role. So the construction, like I said, is through the generator matrix. It also uses ideas of Boolean functions. So everybody here, I'm sure, have met Boolean functions at some point in their life. We may not have thought of Boolean functions in this way. So we'll think of Boolean functions in a certain way. And so we'll worry about what are Boolean functions? What is the Boolean function? So Boolean function is some function which takes you from 0, 1. So specifically we'll be interested in 0, 1, M to 0, 1. So we'll have M variables. So we'll denote as V1, V2, Vm. So this is standard notation. So there are M variables. How many possible values that these M variables can take? 2 power M. So you can make a truth table if you like through Boolean function. So Boolean function, if I call it F, I can make a truth table which would list V1 through Vm like this. And then if you have F of V1 through Vm here. So I can put all possible 2 power M possibilities here. So you start from 0, 0, 1, go all the way to the 1 fellow. And write the value taken by the function here. So this will be like 0, 1, whatever. So that's what we'll do. So this is a Boolean function, I think. Quite a few properties of this Boolean function. So I'm going to use some of those properties in the construction. The first question I'm going to ask you is, how many different Boolean functions are there in M variables? 2 power 2 power M. 2 power 2 power M, is that right? So how many different Boolean functions are there in M variables? 2 power 2 power M. How do you get to this? How do you get to that answer? 4M. So don't think of it in terms of whatever, min term or max term, form. You'll get really confused. Let's think of what it is. Here is a vector which represents the Boolean function. Every vector of length 2 power M can be a Boolean function. There's no problem with that. So you have a function of length 2 power M, a vector, binary vector of length 2 power M. It can be a Boolean function. How do I make it a Boolean function? You put the vector vertically in this way, and then write all possible Boolean through VM in this order from top to bottom. You change this vector, the function changes. So every vector of length 2 power M, binary vector, is a Boolean function. So how many different vectors, binary vectors do I have of length 2 power M? 2 power 2 power M possibilities. So what we'll do is, we'll think of the set of all Boolean functions as a 2 power M dimensional vector space. So this single vector is a Boolean function. I'll think of every single vector a little bit. So if you think about it, then when we do a NK code, we are dealing with N-bit vectors. Vectors of length N. Here I didn't read any reports. I want N equals 2 power M. So 2 power M nicely fits into this Boolean function framework. If I don't have 2 power M, then I can't quote things of it as a Boolean function. Only when I have power of 2, it becomes a proper Boolean function of N-variable, some variable. Otherwise, it just doesn't have the rich state. So that's what we'll do. We'll take the Boolean functions in N-variables. N-variables. Think of them as 0, 1, 2 power, set of all vectors, and 2 power M dimensional binary space. That's the first one. The next thing that I'll invoke is from your knowledge of Boolean functions, you might know this. So if I write down a table like this, this gives me a 7-form for the F. So I can go through and see every single place where F is 1. Then look at the V1 through VN that gives me that. Whenever a VI is 0, I will put a VI bar. Whenever a VI is 1, I will simply retain VI. So I can write F of V1, V2, VM in this form. I can write F of V1, V2, VM as some summation where each term will be 1. So if you want to be careful about V1, V2, VL, and it may also be a bar. Is that correct? I can also say it puts a bar there. What do I know about V bar? V bar is what? 1 plus V. In binary, V bar is the same as 1 plus V. Remember, plus is what? Modular pre-addition. Is that correct? Is that okay here? Maybe yes. So I can do that here. What is this plus? What is this summation? It's R. So I have to think of R here. What happens when I do R? Remember, this plus cannot be, it's not the same as Modular pre-addition. So what is this? This is some R. What do I do in the R? R is what? Can I write R in terms of itself? Maybe not possible. Let's see a simple example, and then we'll go to the case. I think if I write in general terms, it's very confusing. So let me take a simple example. I'll appeal to this example and show you a general form for the Boolean function. Which is always possible. So let's say I make this 3. I have 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0. So this is Vp, V2, V1. So it's common to write V3 on the left side. It's a convention for read miracles. So here I wrote it differently. Usually people write it in reverse. We'll start with Vm on the left-hand side. And let's say a function that I want, but V1, V2, V3, perfectly. Let's say I'll come 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0. Okay, suppose I do this. Okay, can I do that? Is that fine? Okay. So... Okay, so... Okay. Alright. So how can I write this function now? Okay, so I can write this function in that form. Yeah, V3, V2, V1 plus V3, V2, V1 plus. Okay, correct. Okay, so here this plus would be R, right? So let me replace with R. I think it's not a very good thing to say anything else there. So let's say R. We're okay? We're okay? Sorry? Is this correct? Or is this wrong? Did I make a mistake here? It's fine, right? Okay. So... Okay. So... So each term here, what is each term here? I think of each term here. It will have a rate of... So it's okay. So let me combine this. So what does each term have? This is also a function, right? This is also a Boolean function. Am I right? Okay. That's fine. This is also a Boolean function. In terms of a vector, what will be the weight of that vector? So if I think of this Boolean function... See, this overall Boolean function has a weight of 2. Now if I take this Boolean function alone, what will be the weight of that Boolean function? 1. What about this Boolean function alone? It's also a weight 1. So when I have 2 weight 1 vectors which are not the same, R becomes the same as XR. That's fine. So keep this duality in mind. So you are always used to thinking of min terms as not vectors. So you think of it as just the expression V3, R, V2, V1. So you don't think of it as a vector. So I want you to think of every single term in this R sum also as a vector. So that becomes a vector. You put all possible values of Boolean to V3. But if you have only a single one, that's clear. You'll be happy about it. What is the vector corresponding to V3, R, V2, V1? 0, 0, 0. 1, 0, 0, 0, 0, 0. Is it okay? What is the vector? 0, 0, 0. 1, 0, 0, 0, 0. Is it okay? Okay. You tell me. Okay. Let me ask you a question. Okay. So you are all very happy with the correlation between vectors and Boolean functions. You tell me the vector corresponding to V3, R, V2, V1. What I wrote here, right? Yeah. It's like, yeah. You write the truth table, say V3, R, V2, V1. You'll get a long vector, 2-param length vector. That is the vector corresponding to that. Okay. So what is the truth table corresponding to V3, V2, V1, R? 0, 0, 0, 0. 0, 0, 0, 0, 0. Now, in terms of these vectors, it doesn't matter whether I'm or XORing. Or XORing. Why is that? Well, you know, if this is one, that cannot be one. Right? Is it okay? It's okay. Okay. So what can we do next? I mean, I don't quite like this form. I want to replace this R with XOR. So I can do this here in this form. Okay. So I can take any function. S of V1, V2, V3. I can write it as wherever it is one. I put the mean term corresponding to that. And then instead of R, I can replace it with XOR. That is fine. So it can be replaced by XOR. Okay. So let's look at, let's say V3 bar, V2, V1. Okay. And suppose I want to write V3 bar as 1 plus V3. Okay. So what happens when I write 1 plus V3 there? Okay. So let's just look at that equation. What is V3 bar? I'm going to write 1 plus V3. This plus is XOR. XOR is not R. Okay. So I can take this equation here and replace V3 by V3 bar by 1 plus V3. And then do multiplication. Multiplication is perfectly. Okay. So it is here. V1 bar I can replace by 1 plus V1. And the plus would still be XOR. And I have an XOR only in the middle. Okay. So when I write F in terms of this momentum expressions, the R that you are used to can be replaced with XOR because I'm interpreting these functions as vectors. Be very careful. I mean, don't do this in the binary world that you are used to. You can't replace the R with XOR. You get a completely different value. Okay. In the vector sense, I can do that. It's okay. Right. Because I'm thinking in terms of the vectors that are XORing there. Okay. When I write a function F of V1, V2, V3, I'm thinking of the entire vector, not something else. Is it okay? R cannot be replaced with XOR and then done. But when I have such a situation, special situation, I can do it. Okay. So every bar can now be replaced with 1 plus without the bar. And then I can now multiply it out. So finally, a claim I can make is any function. So we proceed and proceed like this. And you will see that the function therefore V1, V2, V3 that I had bar becomes, becomes what? If I put 1 plus V3 here, I will get V1, V2, V1, V2, V3. Remember, what is this plus? Plus again an XOR. Okay. Sorry. Again an XOR. I will get V3, V2, V1 plus V3, V2. Okay. So once again V1, V2, V3 plus V3, V3. Is that the same? So this will cancel V1, V2 plus V2, V3. Remember, this plus is not XOR. Okay. Vector XOR. Can we check this V1, V2 plus V2, V3? Is that the same as the function I had? You can go back and check that. Okay. So if I do V1, V2, what will I get? So V1, V2, 0, 0, 0, 1, 0, 0, 0, 1. Okay. What is V3, V2? 0, 0, 0, 0, 0, 0, 0, 1. Okay. So if I do the XOR there, I get back to the same. Okay. So this is another expression of the same function except that in terms of R, I have XOR now. Is it okay? So be a little bit careful about what I mean by this, but it's a valid statement. It's not a wrong statement to make. Is it okay? There are various other ways of proving it. It's not very hard. You can replace R with XOR, but you have to do the corresponding changes there, and you can get to this formula. It's not given in the binary. Well, this is true. Okay. Maybe it's simple. You may not have thought about it, but it's very important. Okay. So now I can do this through every single function. Any function I come up with in M variables you can write the truth table. You can write the minterm form with R. Since each minterm does not have any problem with these. So that's only rate one. I can replace it with XOR. Then go into each minterm. Wherever I have a bar, put one plus. Remember when I say one, what is this one? I'll think of this one as the all one's vector. Right? Okay. I'll think of this one as the all one's vector. V3 is, wherever V3 is one, it will be one. Okay. So you can go back and look here. V3 will be this vector. V2 will be this vector. V1 will be this vector. Okay. So those are just real by themselves. Okay. Okay. So when I do that, I get rid of all the R's. They all become XORs. I get rid of all the bars. They just become product, except that in some cases I might have the degree, the number of terms might have gone down the one. So I have V3 bar, V2, V1. I might have gone to V1, V. Okay. A lot of cancellation might occur, except why I'll do all that. But finally I'll be left with the form that each term is a product of some subset of the V1 through Vm. And then I have XOR. Okay. So that is the result I want to make. I don't want to be able to prove it. But it's not clear how to do it. Okay. So finally I want to claim that any function V1 through Vm can be written as, this is true for, in general, for, in the case, can be written as some zero times one. Okay. So I put a big one into the bar where to denote that it's actually the all one's vector. Okay. So I can also think of a vector function. Plus A1 times V1. Okay. Remember, the V1, I'm thinking of it as a vector now. Okay. So if you want to solve this thing, this function is now a vector. One is a vector. V1 is a vector, et cetera. A2 V2 plus one, two. Some, I don't know. I mean, it's a bit painful to count this. So I'll say some A question mark. I'll put a question mark here. Just, we'll come back to the count later. It's not very difficult to count it. Plus, what else can I have? All possible products of two at a time. Right? So I could have that. Okay. So some A question mark, V1, V2, all the way through. Question mark, Vm minus one, Vm. And then what can I have? All possible, three at a time. All we have to, the last one will be a question mark, V1, V2, Vm. Is that okay? Right? And the plus is an XOR. You can write any Boolean function in this form. We're okay. So you can also think of it as a Boolean identity. It's very much a Boolean identity. And all the pluses are XORs. You can think of it as a vector. Just put one there, V1, V2. You substitute the values here and take the XOR. You will get the function. So it's kind of an identity. You can think of it in that form. You can use some other Boolean identities if you want and show this. It's not very hard. So we will think of it as a vector. I mean, so the vector is useful because the vector is, it will go back to the code we had eventually. So that's what you got. Okay. So any Boolean function, remember, Boolean functions, I'm thinking of it as belonging to 0, 1, 2, 0, n, right? So that's the vector. It's a vector. XOR, XOR. Is that okay? So each of these gates is a vector. One is a vector. V1 is a vector. V2 is a vector. Vm is a vector. So if I have to select this question mark, I can go through what will be the last question mark that's of interest to me. 2 power n minus 1, right? I'm starting at 0. Is it okay? Or will it have to be 2 power n? So set of all subsets of V1 through Vm, right? So you can have one at a time. See nothing, the null set, and then one at a time, two at a time. It will be 1 plus m choose 1 plus m choose 2 plus m choose 3 all the way to m choose m, and that will be 2 power n. So you have 2 power n. Terms in this. And what about each of these vectors? 1, V1, V2, Vm and all that. What about each of these vectors? Can I make some statement about linear independence here? Can they be linearly dependent? Can any two vectors in this XOR to give you 0? It's not possible, right? See, you will never get a Boolean identity like that. Two of them. See, any two terms here have a different form, different set of subsets of V1. For instance, it will be V1, V2. Another will be V3, V4. Why will V1, V2 ever be equal to V3? So that will never happen, right? So there can be no identity, linear relation involving any of these things. Because they're all independent variables. They're all linearly independent. Think about it for a while. There are various ways of convincing yourself that they have to be linearly independent. But it seems easy to think about a Boolean function. If it is not linearly independent, there should be an identity linking all of them. And how can that happen? Right? Nowhere that for all possible V1, V2, V3, you will never get an equation being equal to this. Okay? So each of these gates is linearly independent. And any function can be written as a linear combination of those things. Okay? So what does it mean? So this is a basis. Okay? So this is from 1, V1, V2, Vm, V1, V2, Vm, minus 1. All these gates, these two param vectors, form a basis for this space of Boolean functions. Then you view it as a vector space of two param dimension. Is that okay? So this guy has a basis, which is 1, V1, V2, Vm, then V1, V2, so until Vm minus 1, Vm, all the way down to the last row will be V1, V2. Is that okay? Okay? So these are all relatively simple statements about Boolean functions. But you may not have thought of Boolean functions this way. So first time you see, it will give you a bit surprise. Okay? So it's not very hard, but a bit confusing. Okay? All right? So remember, each of these basis vectors are length two param vectors. Okay? Right? Remember that. So I'm going to ask you more difficult questions. If you think you understand it, there will be more difficult questions coming. We'll see in clear. If you have any question, you can ask this. What is the question? V1 plus V2 plus V1 V2. Hmm. What is that question? Why will that be zero? See, it's XR, no? V1? It's XR. V1 plus V2 plus V1 V2. They're not the same. You have a one in the first row. No, it's bar, no. It's a bar. Be careful. Be careful. Don't use a Boolean entities. XR is different. What is AXR, A bar? A or A bar is one of them. What is AXR, A bar? A. A. It's not cool. So be careful with XR. So you're doing entities, usually you have with R. Be a little bit careful. A plus A bar is one of them. So that's R is the linking factor. Right? Okay. Alright. So maybe that's what I wanted to say. Why are you saying, okay, so you're saying what? V1 plus V2. Why is this V0? V1 has a one in the first version, and the only one is V1. V2 has a one in the second version, and V1 is zero. No, everything else is zero. Okay. Sorry. I think that's where the confusion comes. Okay. So V1 is this guy, man. V1 is this guy. V2 is this guy. Okay. So I take that back. So AXR, A bar is one, right? A or A bar is also one. So I got confused there. Sorry for that. So let's just come back to this. So when I say V1, so V1 is a Boolean function, which is one. Every time V1 is one. Okay. So it is actually, if you write it in this, in this minterm form, it is a very complicated expression. There will be like four terms. It will be V3 bar, V2 bar, V1, plus V3, V3 bar, V2, V1, plus several terms. Yeah. So every time it cancels, it will get V1 alone. Okay. V1 is basically this guy. Okay. So this linear independence is, maybe it's not very trivial to see, but we cannot have any identification value in these things. Okay. That's something that cannot happen. So basically, I think about it as, well, I'll tell you a very simple way to think about it. Think of SFV1 to VM as polynomials. Okay. Polynomial is the best way to think about it. Okay. So think of these guys as polynomials. Okay. And the way they take binary values is that they are polynomials. Okay. So when you want identities, you have to look for polynomial kind of identities. Okay. There's no way V1 plus V2 plus V1, V2 and V2 will be zero for all of you. So that's something that won't happen. So don't think of it as a Boolean function with R and XR and all that. It's a bit confusing if you do that. Okay. Even I got confused. But everybody can get confused by these things. So it's totally different. They are thinking about it. The best way to think of these things are polynomials. Okay. They take binary values, the polynomials and binary variables. Okay. They are thinking about it. So if you want an identity, you will have to have a polynomial identity. The only thing you can have is like A plus B in square equals A square plus B square. Something like that you can have. That's okay. But such things won't happen yet. If you have distinct monomial terms, there's no way they are going to give you any information. Is that okay? But also, other ways of arguing the linear independence, I'll just leave it at that. So the linearly independent, they form a basis for Boolean functions. Is that okay? Any other question? Okay. The next question I'm going to ask is what is the weight of every single vector on this basis? Okay. What can you say about the weight? Be a little bit careful. Okay. What is the weight of 1? 2 power m. So what is the weight of these guys? 2 power m minus 1. What about the weight of these guys? 2 power m minus 2. 2 power m minus 2. Is that okay? Did you get that? Okay. Every way, V1 is 2 power m minus 1. Okay. So it has only V1. Right? V2 through Vm are brain curves. Okay. As long as Vm, V1 is 1, I can have 2 power m minus 1 possible values assigned to V2 through Vm. But all of them, it will still have a value 1. So the number of places where it will be 1 is 2 power m minus 1. So what do you think of V1, V2? So V1, V2 to be 1, V1 should be equal to 1. And V2 should be equal to 1. What about V3 to Vm? It can take arbitrary value. So you have 2 power m minus 2. Okay. What will be the weight of this day? Okay. Weight is 1. Is that okay? Is that okay? All right. So one statement that I can make very easily is, out of these 2 power m vectors, only a single vector has odd weight. That is weight equal to 1. Everything else has even weight. Okay. I want you to remember that. That's quite important. Everything else has even weight and they are linearly independent. Okay. So what do you think of V1, V2, Vm, Vm, Vm, Vm, Vm, Vm, Vm. Okay. But there is one way, it says odd weight. So together, they can make a basis. It makes sense. If you all of them are even, then it cannot be a basis. It is wrong. All of them. There is one way, it is odd, it can take a basis. Is it okay? So another way to think about it is, if you forget about Boolean polynomial is, all those nonsense. So, 0, 1, 2, power m, there are many different bases. This is just one interesting basis. It is just an association with the Boolean variable. So, you can have the canonical basis if you like, it is not very exciting. This basis is a little more exciting, I will show you one. But ok, different basis for 0, 1, 2, param, but it also has a relationship with the binary polynomial terms, all right. So, if you want, let us look at one more example. So, maybe we will look at the example I make and slightly more detailed, ok. So, I have, I have 1, I have b1, I have b2, I have b3. So, let me write it down, ok. So, it is very common like I said to write b3, b2, b1, let me do that. So, it is going to be right there, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1. And 1 is going to be what? Oh, 1 is to go. So, remember our letters are this way, ok. So, in many bits you will find people write it roll wise. But, I think people are not very comfortable with 2, 3, 2, written roll wise. So, it will be like column wise. So, let's try it again. So, you have b1, b2, b2, b3, b1, b3 and then you have what? V1 V2 V3 okay so what is V1 V2 you can write it down it's not very hard so you see it's not V2 okay what is V2 V3 okay did I make a mistake here it should be a one comma okay V2 V3 is what I wrote before right 0 0 0 0 sorry yeah I'll do that I'll do it this should be 0 right we're okay what is V1 V3 0 0 0 0 0 1 0 1 okay and what is V1 V2 V3 all zeros last two alone V1 okay so it's probably not the best presentation possible but you can see the pair are how many vectors here eight vectors okay eight functions and they are linearly independent you can check that they are linearly independent if you like or you can believe what I said linearly independent and they form a basis for the eight dimensional binary vectors so it's just a different basis think about it okay it's a different basis and I have a some peculiar way of indexing each element of the basis instead of saying E1 E2 to all the way to E8 I'm calling that as 1 V3 V2 V1 V1 V2 V3 so it's just that's one way of thinking about it is it's a polynomial in three variables with binary values so the only possible monomial terms are V1 V2 V3 the constant term V1 V2 V2 V3 V1 V3 V1 V2 V3 they cannot be any other term for instance you cannot have V1 square V2 part serve why can't you have that V1 square is equal to V1 in binary well that's true so V2 part 4 is also the same as V2 so it come back to V1 V2 it won't give you any new vector okay so to think of binary value polynomials these are all the terms that you can have okay so that's how it works okay I don't even have to appeal the boolean functions I can just say binary polynomials okay so given you binary polynomials now we're ready to see the definition of read the records okay so the read the record R and R comma M is generated by okay so you can guess it's not very hard generated by one V1 V2 Vm V1 V2 V1 V2 V1 minus 1 Vm okay so think about that one okay all the way up to V1 V2 VR okay so let me do the all the way up to this side the last case will be will be taken R at a time okay so it will be M minus R plus 1 well okay so this is just one term this is another term okay so remember if I have n variables this base is right we'll start at 1 it'll have Vm Vm minus 1 all the way to V1 then it'll have V1 V2 V2 V3 all those things and it'll have 3 at the time then it'll have 4 at the time so on till R at the time right I will stop there I go all the way from 1 to products of V1 through Vm taken R at the time and stop there okay so take only those vectors and make that the basis of my code okay what do you mean the basis of my code they are the reverse of my generator matrix okay they're all linearly independent so clearly dimension will be equal to the formula ideal okay 1 plus M choose 1 plus M choose 2 so on till M choose okay so this is one way of defining read molecules there are so many other ways I'll give you one more way soon okay so is this clear okay right so I'm going to take the basis vectors corresponding to more or more terms having product of up to R Vi okay so V1 V2 Vr or Vm Vm okay very equal in destination is the following Rm of Rm equals f of set of all Boolean functions Boolean polynomials such that degree is less than or equal to okay so previously I gave you the basis and I said you combine the basis in any which way you want and you combine them in arbitrary ways what will you end up getting you will get all possible Boolean polynomials of degree less than or equal to R what do you mean by degree now okay so degree of Vi1 Vi2 ViL will be basically L okay and what is the degree of the of the function itself what is the degree here to a maximum degree maximum degree over alpha okay so for each term I can define a degree which is basically the number of variables occurring in the term and for any del Boolean polynomial I can have a maximum degree in fact there can be multiple terms which have a maximum degree what's okay I have no problems with that but the maximum degree itself will be unique okay we have just one value which is okay so why are there is this definition equivalent to that definition yeah both of them are the same which if you have degree less than or equal to R each term has at most R terms so clearly it can be written as a linear combination of vectors I gave you to take linear combination of arbitrary vectors there it will definitely give me only a Boolean polynomial of degree less than or equal to R so both increase okay so it's very convenient to think of an arbitrary regional code word okay so code word as R comma M it's very conveniently type of a function like this degree less than or equal to R which is what I wrote down there but that's all we think of a code word of a regional code okay so if you think of code words of strictly codes we found it very convenient to think of it as a polynomial right c of x it has some roots that's what controls it here for regional codes it's very convenient to think of them as polynomials with binary variables and the degrees are significant degrees less than or equal to R okay so everything adds up in this nice little bit okay so let's say examples for n equals 3 okay so let me take this guy here okay so what happens when R is equal to so let me just copy this guy then take it to some other page and then we'll see this okay so this is what we had for M equal to 3 so if I have R equals 0 okay what are the dimensions so R equals 0 has n equals 8 of course k will be what 1 right and what will be the code yeah so it will be the 8.1 repetition code do you see that okay the basis is only this guy so let's say alone and that is just a repetition code so clearly the minimum distance is also 8 and it agrees with our formula right so 2 bar M minus R if I use the function what happens when R equals 1 it will be an 8 comma 4 code okay so it's a more complicated code I don't know how to how to describe it so in fact you can describe it in a nice way so if you think of this think of these guys okay I mean there are various things thinking about it so let's forget it so 8 comma 4 okay so you can show the minimum distance will be 4 that's okay so what happens when R is equal to 2 I'm sorry 8 comma 7 but what code is that can you identify the code it's the even weight code how do I conclude that this is actually the even weight code yeah so first of all these seven guys are linearly independent and each of them has even weight you have the each of them has even weight so any combination you make will still have even weight okay so that will be all the even weight vectors of length 8 okay but 8 comma 4 I don't quite know what it is right so let me just leave it as a question mark it's the first part of each molecule of length 8 okay it's a very nice code it has some good structure we'll see it later on but one thing we know is d is equal to 1 so if you have these two we know that what happens if R equals 3 I get the entire 8 comma 8 identity code and d will be 1 okay that's also okay we can take code word yeah it is also a code word yes it's got 8 only this guy is weight 1 everything else is even weight this is 8 weight 8 no yeah 8 possibilities all right no no no this guy is already given me to be three is already all is odd weight all one was I mean I'm looking at 2 par n right so it's always even no problem okay there are 8 so some of these statements are in general true okay so R equal to 3 is the 8 comma 8 identity code okay so you'll notice once again the codes are appearing as dual paths so R equal to 0 and R equal to 3 are actually duals R equal to 1 I don't no no no R equal to did I get that right I'm sorry okay I'm sorry I'm sorry R equal to 0 and R equal to 2 are duals yeah R equal to 1 we'll turn out to be a self dual code okay so we'll see later on that it's a self dual code okay R equal to 3 is a real code but anyway it's it's 8 comma 0 if you think of a not including anything okay it's like the null code or something okay so you can take up it also as a par if you like that R equal to 0 and R equal to 2 are duals and like you said R equal to 1 we'll do a self dual code okay so we'll see that later on okay so these statements are in general true and we'll try to prove that but one more thing is this property of minimum distance d equals 2 par m minus r okay so so I'll urge you to look at the example of m equal to 4 it's not very hard try to look at that write down all the bases what does see what it looks like it's again you'll see some interesting observations okay so let me one observation which I'll make which I'll write down right now r m of 1 comma m is the repetition code sorry 0 comma m sorry the repetition code the other observation I want to make is r m of n minus 1 comma m is the even rate okay repetition code 2 par m comma 1 even rate 2 par m comma 2 par m minus 1 okay these two statements are in general true for any n how do I prove this is again the same proof only the last way is add weight everything else is even right it's linearly independent so it has to span all the even weight okay so these two statements we'll keep what I'll show in the next class is the minimum distance property in fact the minimum distance is 2 par m minus r that's what makes it interesting right so guarantees of minimum distance and the next thing we'll show is the dual property also so after that we'll try to go towards the deeper this will stop here