 So, we are continuing our look at binary circuit codes. So, we look for this ring Rm, this is the cyber polynomial, primary polynomial, primary degree is less than or equal to, degree is less than or equal to n minus 1. And addition and multiplication are done to expand to a complex. I mean I do not really have to say addition is done modulo expand plus 1. So, the multiplication really it makes a difference. And then we saw cyclic codes are basically ideals from Nare. And then we saw the definition of an ideal, we saw that multiplication by x is the same as the synthesis, because of which ideals become cyclic codes. And then we saw the generator polynomial. So, we saw all ideals are useful in Rm. So, that an ideal i, cyclic code will be thought out of the integrated by g of x. Not only that, different polynomials and so only this we can have a special g of x, a pressure generator, which is the least degree, least degree polynomial in i. So, I can say there least degree polynomial on i, because if there is only one, if you do not have multiple least degree polynomials, it is unique. And not only that, we know that Vfx divides x bar n plus 1. So, there is lots of nice properties that ideals in Rm satisfy. And that is good. And then the last result that I showed for you is, if you have an ideal, we will generate the over facts. If I tell you who had over facts divides x bar n plus 1, this implies what? Fx is the generator polynomial of i. So, over facts is the generator polynomial of i. The reason is, if you had a lower degree polynomial in i than fx, that also has to divide x bar n plus 1. And fx also divides x bar n plus 1. So, in all these things together, you can put it together maybe. You do not even need that, that provides a better result. So, let us see. I think it has to work out in some nice way like that. So, I think let me write down a proof. I think I have done a proof. I will see what is needed. So, suppose Vfx equals mfx times over facts in Rm. So, what do you mean by saying gfx is mfx times afx in Rm? Actually, gfx is over facts times over facts in f2x. And then what should I do? I should do modulo x bar n plus 1. So, that is how it works. So, when you have something like this, what is true is gfx has to be equal to mfx times afx plus some bfx times what? x to the power n plus 1. So, we know that fx also divides x bar n plus 1. So, you will have afx times mfx times bfx plus some efx. So, what is this efx? So, we know if you see this. So, this is true. We know. So, this is a nicer way of writing it down. x bar n plus 1 is some afx times efx. All this is in f2 only. Without any modulo. So, this will have to be true. Now, gfx is here which means clearly what? You cannot have the degree of gfx being lesser than the degree of afx. So, this is in what? In f2x. Is it fine? No? Yes, maybe. So, afx has to divide gfx in f2x itself. So, that clearly implies it will have to work. So, if you have afx times efx, what will be the degree of efx? Oh my God. Degree of efx will be n minus the degree of afx. So, that has to work. So, efx has degree n minus that and you can also look at the degree very carefully if you like. But this has to work out. This is in f2x itself. Which means afx has to divide gfx in f2x. So, this is basically a rewriting of the proof that I said that if you have a generator polynomial, then it has to divide x parent plus 1 and then every other element of the ideal has to be a multiple of the generator polynomial in f2x. So, pretty much the same proof you can redo like this and we will get the answer. So, the same idea is used here. So, this has to work out. So, you cannot have gfx being lesser degree than afx. So, same this afx is okay. So, at least that not just a little bit. So, this prototype of the generator polynomial has, gives us immediately one nice characterization of the circuit code. If you have an ideal being generated by gfx and gfx is the generator polynomial. And let's say the degree of gfx equals g0 plus g1x plus grx to the power r. The first thing is when I say degree of gfx is r, gr will not be 0. If it is 0 then the degree will be not r. I can also argue that g0 will not be 0 in the generator polynomial. How do you argue that? Yeah, you can take an x out of the remaining and then what will happen? What is inside? But how do you know that that's in the ideal? It's a time step, no? Yeah. So, it's a cyclic shape stuff. What is inside? So, obviously if you do enough cyclic shapes, you will go back to what's inside. So, this is 0 when we can produce some other element in the ideal which has lesser degree than r. So, this will also not be 0. So, these two things you can keep in mind. So, gfx is degree r. I can now find the size of the ideal. Okay? Where is that? If I were to know, I don't know is the set of all multiples of nfx times gfx. Okay? So, it's not right. Degree of nfx? What can I say about degree of nfx? Let's go n equal to n minus r minus 1. Where can I say that? As you know, every multiple of gfx in f2x of degree less than or equal to n minus 1 is in the ideal. Okay? So, both ways it works, right? If any multiple of gfx is definitely in the ideal, there's no problem. But I know all elements of i can also be or also multiples of gfx in f2x. So, if you only do multiplication in f2x, when will I get polynomials inside rm? Only when the total degree is less than or equal to n minus 1. So, if gfx is simple as degree r, you cannot make nfx of degree greater than n minus r minus 1. So, degree has to be less than or equal to n minus r minus 1. Only then the product where I have degree, product where I have degree less than or equal to n minus 1. And I'll have all the elements of i. Okay? I don't have any other elements. So, from here, size of i can be equitifunded. Size of i equals what? 2 power m minus 1. Okay? So, that's the number of nfx that I can have. Okay? So, that's the degree less than or equal to n minus r minus 1. It means n minus r coefficients are there in mfx. So, you pick either of them, 1 or 2, 1 or 2 is 2 power m minus 1. Okay? So, gfx gives you that. Not only that, if you know that i use a cyclic code, right? This idea also gives you the generator matrix. Okay? You can find the generator matrix. So, this clear basis vector solve this case. The very easy generator matrix is to put gfx in the first row. What do I mean when I say gfx in the first row? You put g0, g1, all the way through. The r, and then you fill the remaining with r. Okay? So, remember, the third one, that's the end, right? Okay? And then I can now shift. I can do x times gfx in the second row. Okay? And what will be x times gfx? Let's 0 here, d0, 0, not 0. gr minus 1, gr, 0 all the way. Okay? And then how many shapes do you have to do? The last one will be x bar 1 minus r minus 1 times gfx. Okay? But we'll put gr over the very end point. So, we'll have some g0 to gr. Okay? And that will be the generator. Where will that be the generator? You can see that in this multiplication. Okay? m of x times gfx can be written as m of x equals m0 plus m1x plus around full n minus r minus 1, x power n minus r minus 1. So, m of x times gfx can be written as when I multiply by gfx, it's m0 times gfx plus m1 times xgfx plus all the way down to n minus r minus 1 times x power n minus r minus 1 times gfx. Okay? So, if we view each of these gates as a vector, I get this generator. Okay? So, every codeword, remember this is a codeword. You can pick up it as a codeword polynomial, which will be c0, c1 all the way to cn minus 1. In terms of polynomials, it will be c0 plus c1x plus around full cn minus 1, x power n minus 1. Okay? So, this polynomial is equal to the sum of all these gates. And if you vary m0 to mn minus r minus 1, I get different codewords. So, that means clearly this is the basis, not too hard to argue that this is the generator polynomial. All these things, I think we saw briefly, but anyway. So, it's good to go over these things once again. So, this is the main idea. The main idea is the way this proof goes. Any element of this ideal, if I say it's generated by a divisor of x power n plus 1. It's important that it should be a, it should be something that divides x power n plus 1. Yeah, we have used that very clearly here. Then it will turn out that any element should be a multiple of gfx in f2, f6. And that gives you all the required properties. Okay? So, that's about these guys. So, now you're going to go on and try and list out all the possible cyclic codes. So, of course, if I have to go back to the first property here, the important property is this thing. Okay? If I list out all the divisors of x power n plus 1, I have also listed out all the cyclic codes of length n. Right? I don't have to really worry about that. Okay? So, all divisors of x power n plus 1. Of course, the divisor should have binary precision. That's part of the restriction. gfx has binary coefficients. So, now the point is, how do I do this? How do I assign divisors of x power n plus 1? You already know the answer. Okay? So, let me do that a little bit more slowly. So, let's say, part 3 of x power n plus 1. Okay? So, the first thing is, we will pick n to be odd. Okay? If n is 0, and if n is 0, x power n plus 1 will have repeated rules and all kinds of confusion will happen. So, if n is even what will happen? So, what do I do if n is even? Say, n is 2 times m. And I can write this as x power n plus 1 whole square. So, I can keep on removing factors of 2 till I get an odd number. Okay? So, it will be some x power odd number plus 1. We'll raise to the part some power of 2. Okay? I can go down to that level. So, I can remove all 2's from n. Okay? So, I'll assume n is odd and only factor that. Okay? So, usually, whenever we think of cyclic codes, binary cyclic codes, n will always be odd. Okay? You won't have an even length cyclic code. I'll tell you more about these things later on. Okay? So, now you have n being odd. So, if you want to factor x power n plus 1, you know it's the same as finding n troops of unity. Okay? So, if you want to find some number which then raise to the power n will give you 1. Okay? So, it's the same as finding some element in a large enough feed which has ordered equal to n. Okay? So, it's good to find elements like that. Okay? So, you can show a lot of things about x power n plus 1. In fact, when n is odd, x power n plus 1 and it's derivative, whether it's derivative, formal derivative, n next to the power n minus 1. So, n is odd, it's going to be the x power n minus 1. And x power n minus 1 and x power n plus 1 don't have any common factors. They're relatively prime. Okay? So, it can never have repeated roots if you have n being odd. Okay? So, that's the standard result in polynomial stuff. Okay? So, if you want the polynomial to have repeated roots, polynomial and its formal derivative, okay, should have some GCD which is not one. They should have some common factor. Okay? The repeated root will occur both in the polynomial as well as in its derivative. Right? If you take say x plus 1 squared and you do a formal derivative, what do you get? Two times x plus 1. So, derivative also has that as a root. You can show this. It's not very hard to show. Okay? So, clearly it won't have any repeated roots and there are various other ways of showing it. At this point, I can prove it to you in various ways. Initially, if you want to develop it, that's how we do it. Okay? So, n is odd. You need to find some, let's say, alpha, which is 3 up to power n. That's what. Other than alpha equals alpha. Okay? If n is odd, it turns out this is always possible. Okay? So, if n is odd, there exists m in first step. So, n odd, there exists n in first step. n divides 2 power n minus 1. So, this is the fact which you can prove using various results. I think we proved it earlier in class also. I'm not going to repeat it. Okay? But this is true. Okay? There exists n. First step, n divides 2 power n minus 1. In fact, usually you pick the smallest n. Smallest n is usually chosen. Okay? Once you have this, okay, what you do is, if you have beta and gf 2 power n in perimeter, you can set alpha to be equal to what? Beta power 2 power n minus 1 over n. Okay? This is what we're going to set it to be. Okay? So, that's what's for all these things. It's a little bit confusing. Okay? So, if you do this, then order of alpha is going to be equal to n. Okay? So, I know x bar n plus 1 has no repeated roots. And if you have an element of order alpha, order n and gf 2 power n, so I can find n roots for x bar n plus 1. Okay? So, alpha to the root of x bar n plus 1. In fact, alpha, alpha squared, alpha power 3, so on till alpha power n minus 1. And all these things will set, x bar n plus 1 in gf 2 power n. Okay? So, I've just seen before that, let me repeat that once again. It's rather repeating. Okay? So, if alpha did not have order n, then this cannot be distinct. Okay? I won't be able to argue that. But since it has order n, I know this is distinct. Okay? Once this is true, I know I can easily write x bar n plus 1 over s x plus alpha times x plus alpha squared. So, I'll go over that one. Okay? So, alpha power n minus 1. Is it okay? Did I get it right? No, no, no. I'm sorry. You also have one. Okay? So, you also need one which you can write it as in any which way you want. So, let's write it in the beginning itself. So, x bar n plus 1. Okay? So, one nice thing about this result is, we see that x bar n plus 1 factors into linear factors. That's a nice thing in this. But the only not so nice thing is that you have to deal with no gf2 parameter. Okay? You don't have binary factors. There's only one binary factor. Okay? Right? Everything else is non-dynamic. Okay? So, you have to now call upon your cyclotomic process idea and then combine the terms and get minimal polynomials which will now be binded. Okay? So, that's something we have to do. So, for that, you have to find. So, next, what we have to find cyclotomic process. This guy. Modulo n under multiplication by 2. Okay? So, you will have so many cyclotomic process. Then, according to the cyclotomic process, we group your powers of alpha and put your factors. And when you multiply all the factors inside the cyclotomic process, what will you write magically? You will get a binary polynomial and that will be reducible in binary analysis. Okay? So, that way you can group the linear factors together according to cyclotomic process to get binary factor. Okay? So, this is the general idea that we've been using. But, yeah, so the process themselves give you the degree of the polynomial. Okay? So, depending on the cyclotomic process, depending on the slight size of the cyclotomic process, you know what degree that polynomial will have. If you want to exactly find that polynomial explicitly, you should do some multiplication in gf2 param, which you may not want to do. If you don't want to do that, at least the degree is there. Okay? So, the degree itself gives some information for us. Okay? So, that's what we're going to do. So, I'm going to take a couple of examples. And let's take this. For example, I'll take 1 equals 9. Okay? So, if you do that, the first thing you have to find is in which Galois field you have the primitive ninth root of unity. Okay? So, you may not even need to find it. Okay? So, let's try to find the cyclotomic process. Okay? So, remember, the set I'm working for is 1, 2, 3, 4, 5, 6, 7, 8. That's what I'm working with, the cyclotomic process. I'm going to take the elements and do this partitioning of the cyclotomic process. The first thing we'll do is go. Okay? Next, when I start with 1, I'll have 1, 2, 4, 8, 7, 5. That's it. Okay? That will be the first cyclotomic process. Next, you have to see what is left out. 3, 3, 6, 6. Okay? And that carries everything. Okay? So, I have 3 cyclotomic process. So, I'll call the first one as C0. This one, I'll call C1. This one, I'll call C3. Okay? So, it's usual to pick the smallest element in a cyclotomic process and make it the representative of the process and call it C3. Okay? So, if I do this, it turns out that it will be so, x star n plus 1 will factor into 3-parameters and 0 affects and 1 affects and 3 affects and 0 affects will do what? x plus 1 and 3 affects will do? x star n plus x plus 1. Okay? So, how do I know that it will be x star? How do I know it will be x star plus x plus 1? It's a polynomial of degree 2 Yeah. It's a polynomial of degree 2 and it has a reducible that immediately tells me it has to be x star plus x. Now, everyone affects on multiple possibilities. We can pick the primitive 6-degree polynomial which is possible to pick that. There will be some tables for it but I know that the degree is 6. Okay? It has got degree 2, degree 1. Okay? So now, if I want to enumerate all cyclic curves of length 9, okay? So, I have to just list out all possible generator polynomials. Okay? So, what are the different possible flow effects? Okay? And k also, right? k is basically the dimension. Okay? So, if I want to write down cyclic codes and make this 9, I have to list out the possible gfx. What are the different possible gfx? The first one would be 1. Okay? So, it's always a trivial thing. And that will give you k equals 9, right? So, degree n minus degree so, it will be equal to 9. Okay? And then, next one is x plus 1 by itself. That will give me k 8. In fact, this will be the real name code. 2 by identity code. How do I know it will be the even weight code? Yeah, 1 is the real. Right? So, all code words are multiples of x plus 1. So, what will happen if I put x equal to 1 and c of x? Right? If it is 0. Okay? So, c of 1 is 0 means what? c of x is c0 plus c1x plus c2x plus so on. If I put x equals 1, I basically get the parity. Okay? c0 plus c1. That is 0 means the parity is 0. So, it gives me the even weight code. So, x plus 1 always generates the even weight code. So, it is an easy way to keep in mind. So, what else do you have? x plus 1 plus 1. Right? What will be the dimension here? 7. So, this code is a... It is an interesting way to call it. That is really no useful property. Okay? So, you can think about it as various ways of thinking about it. But, x plus 1 is 7. 9 and 7, it has... It cannot have a minimum distance 3. Can it have a minimum distance 3? A 9 and 7 code? Let me see if you remember. Can it have a minimum distance of 3? How do you answer this question? Don't think in any other way. Okay? A 9 and 7 code has to have a parity check matrix. Right? It will have 9 columns. How many rows will it have? 2. 2 rows, 9 columns. Can you have minimum distance 3? It is impossible. That is how you answer these questions. Okay? Don't think... Good things. When I have this question of minimum distance, it makes the only way to answer it is with the parity check matrix. Okay? So, there should be other methods. But, usually, parity check matrix will come clear. A 9 and 7 will not have a minimum distance. Can it have a minimum distance of 3? Can it have a minimum distance of 3? A 8 and 5 is one of the values. What? What are you saying? Think about it. Rank is not the problem, man. Oh, my God. I forgot to know the definition of minimum distance. What is the definition of minimum distance? All the entries are binary, right? Binary? Obviously, it's binary. These are all binary. I'm talking about binary cyclic codes. If I didn't have binary cyclic codes, why am I worried about combining the factors together? I won't even worry about that. So, binary. 9 and 7 code over a suitably large alphabet can have minimum distance of 3. No problems with that. But, binary cannot have that. Okay? So, when you go to the... You cannot have more than 3 columns. 4th column will tell you. So, extraplegicly, one is not a very interesting code. And then, what else can I do? Okay. It's all right. XQ plus 1, I can go to. What is XQ plus 1? Basically, the product of these two. So, if you don't want to do a multiple question, you can do this. Write it like this. And that will have 6 dimensions. Can you say anything more about that code? XQ plus 1? What do you think that would be? I'm sorry. It'll actually be even weight. It'll be a subcode as an even weight code, right? Okay. Any other comments? Minimum distance, etc.? Minimum distance is 2, right? It's got XQ plus 1. So, yeah. Definitely, minimum distance is 2. So, it's not very interesting from error correcting and all point of view. Minimum distance is going to be 2. How do I find minimum distance 2? It's clear, right? But XQ plus 1 is a problem. And that does not mean weight 2. So, it's clearly minimum distance 2. Okay. And then, what else? What is the next one that is interesting? It's this N1Fx. Okay. I don't know what it is. But I know it is grad degree? 6. So, what will be K? 3. Okay. What can I say? Can I say anything about this code? Can I say anything about the minimum distance of this code? Okay. So, it turns out that it's something called the BCH bound that we saw. We didn't see it in the volume of generality. So, I'll do it later on. But that's the only thing you can use for quickly finding minimum distance. Otherwise, you have to go and say, you find the target matrix and actually find something like that. You'll answer it. You can't answer very precisely. So, it turns out if you use the BCH bound, what is called the BCH bound, which I'll do later on, which basically relates the minimum distance to the number of roots that are consecutive. Okay. So, here you can find that there are two consecutive roots. One, two. Right? Not more than that. So, the minimum distance is definitely greater than or equal to three. Okay. That's the only thing you can say. Okay. Anyway, we'll come back to that later on. So, the dimension is three. That's easy enough to do. What else can we do? Anything else? X plus 1 times M1x. Right? This I can do, no? What would be the k there? Two. Okay? What can I say about this, right? Yeah. So, there are various things you can do, the BCH bound, even rate, et cetera. Lots of these things you can say. So, what else do you have here? X squared plus X plus 1 times M1x. And that would be one. Okay? What code is that one? Appetition. So, how would I find this repetition code? What will I get if I multiply these two things? 1 plus X plus X squared plus so on till X star 8. Okay. So, let's see. What do you think M1 of X will be? Okay. So, this is X star 9 plus 1. What will M1 of X be? Yeah. It's going to be X star 6 plus X star 3 plus 1. Do you get that? Okay. What will M1 of X be? What? Yeah. X star 9 plus 1 times X star 3 plus 1. Right? So, it will end up being 1 plus X star 3 plus X star 6. So, you can, in fact, find M1 of X also explicitly if you like. So, all these things will also have some reasonable parts. So, if you look at M1 of X square, 1 plus X star 3 plus X star 6. And it has got dimension 3. Okay? And this is GSX. Okay? So, once you know that 1 plus X star 3 plus X star 6, you can say something more about this code. How do you think the code words of this code will look? 1 plus X star 3 plus X star 6. Okay. Every star will repeat. Will repeat, right? So, you see, M1 of X is going to be the, no, M1 of X is this bit. So, the message polynomial has degree only less than or equal to 2. Okay? So, if I take a polynomial of degree less than or equal to 2 and multiply with this, in fact, every code word will have to stop. It will be some N0, N1, N2. And then what will happen? The same thing will repeat N0, N1, N2. And then, another N0, N1, N2. So, this is basically the repetition code in this case. Okay? It's basically the same as 3 repetition cells, the 3, 1, 3 code. Okay? So, it's basically the same as the 3, 1, 3 code. Instead of repeating N0, N0, N0, M1, M1, M1, M2, M2, M2, I'm doing some good permutations just for fun and doing M0, M1, M2, M2, M1, M2, M1, M2. So, clearly there is no under the name of the sentence 3. Okay? You can also do it using bc's bound and all that, if you don't know M1 effects. You know M1 effects explicitly like in this scenario, you can find a lot more details about how the code will look. Okay? So, you can look at this there. What will be x plus 1 times M1 effects? Just 1 plus x, 1 plus x, 1 plus x, 1 plus x. Yeah. So, I mean, now that I know, I mean, think about it. So, it's something like this and it has to have even weight. Okay? So, when will it have even weight? You have to think about it. So, you're repeating it 3 times. So, the weight of this, you can find, yeah, should, what do you mean each of them? Should I use them? Yeah. So, out of M0, M1, and M2, 2 of them should have, I mean, yeah, something like that has to happen. So, you can think about it that way and find out some more things. The repetition code anyway is quite easy. Okay? So, that's it. Those are all basically codes of length 9. For instance, there is no cyclic code of dimension 5. There's no cyclic code of dimension 4. Okay? Right? So, actually only 5 is the non-previous statement. From there, I can quickly go to the other thing. How will I do that? If there is no cyclic code of dimension 5, how do I know that there cannot be a cyclic code of dimension 4? Yeah, it's real, right? If there is a cyclic code of, there's no cyclic code of dimension 4, there cannot be a cyclic code of dimension 5 else. If there is a cyclic code of dimension 5, which dual will also be cyclic, that will be a dimension 4 cyclic code. So, you can quickly rule out these cases. So, 5 and 4 are not possible for cyclic codes. Okay? So, it's kind of like a non-trivial result, which you cannot show directly. Okay? So, if you just call some guy at the street, you know he's able to do that, and say can you show that there's no cyclic code of dimension 5 with length 9? It's slightly non-trivial. It's not very clear why it should be infinite. It shouldn't be infinite. Okay? It comes from the factoring of h per 9 plus 5. 9 plus 1, it has only 7 types of factors. The hint and a set of factors, those powers add up to 5. So, that's the idea. So, it's slightly non-trivial. Okay? So, let's do maybe one more example, which is a little bit more interesting. Maybe. Okay? I'll take 1 equals 21. Okay? So, 21 is interesting enough. So, if I do cyclic dynamic process once again, I'll add 0. Then I'll have 1, 2, 4, 8, 16, 11. Okay? And then I'll add 3, 6, 12, that's it. And then I'll add 5, 10, 20, 19, 17, 14. Right? And then I'll add 7, 14, that's it. Okay? And then I have 9, 18, 15, that's it. Okay? So, you will have an M0 of x, which is x plus 1. Then you have an M1 of x of degree, 6. Then you have an M3 of x of degree, 3. Have an M5 of x of degree, 6 again. And then you have an M7 of x, which will actually be x plus x plus 1, okay? It cannot be anything else. Then you have an M9 of x. Okay? That's all the factors that are. Right? So, these are all the, these are all the modifications. So, now if you want to write down all cyclic codes and write down g-effects and then k, right? It's a little bit more messy, you know? I mean, you have so many more codes, but you have to pay some attention to it and then do it. Of course, you have the 1 and the x plus 1 and all that. So, you can get to the part quite easily. Then you will have x plus 1, 20, once again, the even rate code. And then the next one would be, you know, 20, once again, the even rate code. And then the next one would be x plus x plus 1, which would have to be 19. And then you have two possibilities for 3, right? You can have x plus 1 times, x plus x plus 1, which would give you 18 or what? Yeah, you can have several possibilities. M3 of x can also have M9 of x. Okay? You can have M3 of x and M9 of x. And then, okay, so I'm not going to write down the polynomial, sir. I'm just going to find out what k is possible. Okay, I'll ask you what k is possible. Let's see if any k is not there. What about 17? Is it possible? Yes. Okay, degree 4 is possible, right? Degree 5 is possible. Degree 6 is possible. Degree 7 is possible. Degree 8 is possible. Degree 9 is possible. Degree 10 is possible. 11 is possible, right? 12 is also possible. So it looks like for all dimensions you have it. It's enough if you check up to like 10. 10, 11 maybe. Okay, 10 is enough. It's enough if you check up to 10. If you see degree 10 is possible, x bar n plus 1 by that will give you the other degree. Okay, so anyway, so we'll all be okay. So it's enough. So all k's are possible. Seems like an interesting problem or not. I haven't seen it first anywhere. Maybe it is solved already. I have no idea. So what n, right? Let's ask the questions. Of course we ask the questions. For what n, do you have cyclic codes for all k's? Okay, I don't know if that problem is solved or not. I don't even know if this is nice enough problem. But it seems like an interesting enough problem that has come up in our computation. So it seems crazy, right? 9 doesn't have something and then 21 seems to have everything. So maybe there is some nice property that things have to be satisfied for you to get. Just think about it. If you come up with an answer, let me know. I don't think anybody else will be interested in it, but at least I am interested. So it seems like a curiously problem. Okay, so you can do this for other n also. Any other n also you can do this. So notice, I never have to go through any trouble of finding any which field in which there is a primitive 21st rule of unity, et cetera, et cetera. Nothing you have to do. You just have to do very simple stuff and this is the answer. Okay, so maybe we can try some other curious numbers. So let's try one more curious kind of number. Maybe we'll try n equals, let's pick a prime number. So let's say 17. This is for fun, right? 17 is not such a bad number as you might think. There are some things nice about it. So where will you find a primitive 17th rule of unity? So the numbers of the form 2 power n plus 1 is very easy to find the answer, right? 2 power n plus 1 times 2 power m minus 1 is the same as 2 power 2m minus 1. So once you find a number like that, it's very easy to find. So in fact, 256 will be the field in which you'll have. Okay, so that's some things you can use if you like. So this is not such a bad number. Okay, let's try the such a bad number. 1, 2, 4, 8, 16, what? 15, 13, 9, that's all. It cannot be more than 8. Okay, that's a good number. Okay, and then 3, 6. Okay, all the remaining has to come. I think that we could be 4 also. So we should be careful. 3, 6, 12, 7, 14, 11, 5, 10. That's it. Okay, so you have very simple looking factorization. So we have unknown effects and three effects. And then there are very few cases that are possible. So in fact, this number of cases that are possible, we'll have, of course, 17, then we have 16. And then what? 9. 9, no, 9. 9, 8. 8. That's it. And 1. Okay, 1, of course, you should have. 17 is there. 2 also should be possible. No, no, no, 1. Only 1 is possible. And 0, I mean, usually people use a trivial 0. K equals 0 means what? The null code. It's called nothing. I think all 0 code would be okay. You can take just the all 0 code. Okay, so that's really defined to have. No, it's no information. Well, let's try one more. What's the fun? Okay, I'm curious about what will happen. I have no idea. 90. It's a number. I have no idea. It's a time that will have 19. So one answer that's very easy is 19 itself. So 2 by 19 minus 1. 19 is a prime number. So 19 will divide 2 by 19. Let's try more. Yes? Okay, think about it. It's a result. Okay. So the way to find it is you have to count the number of numbers below n which are relatively prime to n. Okay? So 2 for that number minus 1. n will always be like that. Remember this rule. It's called so much little theorem. It's not a very difficult thing. 2 plus p minus 1. Yeah, I mean yeah, p minus 1. Yeah, it's 2 power 18. Okay, so you have to find the numbers that are less than 19 which are relatively prime to n. So 1 to 18, you have 18 of them. So 2 power 18 minus 1 will divide it. So up to 18 is fine. But then you can also have smaller factors. Let's check if 19 is such a bad number. It might just have one factor. So we'll see. Okay? So then you have to just multiply and check this, right? So 1, 2, 4, 8, 16, 14, 7. No. 7, right? And then 14, 9, 18. Oh yeah, it's bad. If 18 comes in the ninth position, right? Then everything else will also come. Okay, how do I know that? Minus 1, minus 1, minus 1, minus 1. Yeah, so all the minuses will come after this. Just think about why I said that. So that's how it starts to work out this way. So all the minuses of these pairs will come and you'll get just one. Okay, so 19 is a very bad number for cyclic codes. So you have just the trivial cyclic code. Okay? And you have only the trivial cyclic code. You have the identity and the all-zero. And then you have even rate and repetition. Okay? That's all. Nothing more to find. Is that right? Did I make a mistake? Okay. Okay, so what are the weird numbers in which strange things can happen? Usually prime numbers are a bit weird. Some things like this can happen. And usually in prime numbers. Okay? Let's see if we can take a nice example. It's about whether a module 4 or something happens or not. Anyway, it doesn't matter. Okay, so these are factoring experiments. Plus one, you can have a lot of fun with it. In fact, a lot of interesting questions can be asked around this factoring. You might think it's very silly, but there's very interesting number theory that can come into play. Okay? If the atomic process, when will they recover? It's an interesting little number theoretic problem. Okay? I think that's a solution. It's not very unsolved. I think it's an interesting really question that all of us can have a lot of fun. Since you asked me to do this in detail, so final exam becomes more interesting. So it's not when you have a choice, you have to exercise it very carefully. You don't have to do it carefully. I'm going to prep you like this. Okay, so that's about factoring. So factoring gives you all the ideas. So the next thing that is usually done is the dual term. Okay? So anyway, so let's not worry about the dual term now. The next thing that people talk about are zeros of the people. Okay? So we know that experiment plus one factors into linear factors and df to parent. Okay? So again, remember we'll take n to be odd always. Oh, I want to repeat this again. Okay? So for a cyclic probe, it's been defined by a generator polynomial, g of x, and this g of x divides x parent plus one. So what should happen to g of x also? g of x will also factor into linear factors into linear factors in g of to parent. Another way we are putting it is all the roots, g of x has degree r, it will have r distinct roots in g of to parent. So it's another way of expressing the same things. Okay? Has, so the first word degree is equal to r. Okay? g of x has r distinct roots in g of to parent. Okay? This is the other way. So when people say zeros of a cyclic probe, basically they're referring to these r distinct roots. Okay? So zeros of the cyclic probe set of r, let me say r, the set of distinct roots of g of x. Okay? This is a general enough definition. The distinct roots of g of x are the zeros of the cyclic probe. Okay? So, so a lot of times people just, they'll just put up the zeros of the cyclic probe. It's enough if you put up the zeros of the cyclic probe. Remember again, zeros of the cyclic probe. Okay? So, so one more thing we know is that the zeros of the cyclic probe, whatever's going there. So you remember? Yeah. The, the cyclic probe across it, yeah. All that will come before that. Even though it is in g of to parent, I know that the roots of x parent plus one are all powers of the primitive nth root of unity. Okay? So you only have to look at the element of g of to parent which has order n. Okay? So you know it cannot be an arbitrary, so the roots cannot be arbitrary elements of g of to parent. Roots will have to be powers of a primitive nth root of unity. Okay? So all the elements that are roots of x parent plus one will also have order dividing n. Okay? So that is also true. Okay? They'll all be exactly, can be written down as a powers of, is a powers of an element of order what? Of order n. Okay? So let me ask you another question here. Okay? Since you know x parent plus one cannot have more than n roots. Okay? So the other question I wanted to ask is, can there be two elements of order n then? Two different elements of order n in g of to parent. Is that possible? Can there be two different elements? Okay? But then if there are two elements like that, one should be written, one should be, you should be able to write one as power of another element. Okay? Why is that true? Okay? If there are two elements of g of to parent which both have order n, then you should definitely be able to write one as the power of the other one. Why is that true? Yeah, there's one that has to generate everything. Well, x parent plus one cannot have more than n roots in g of to parent. It has to have only n roots. Right? So when you write up all the powers of an element of order n, that should give you all the roots of g of to parent plus one. You cannot have any other root which cannot be written as a power. Okay? There can be more than one element of order n. Okay? So you take the primitive entropy of unity and raise it to a power which is relatively prime to n. Then you will get another element of order n that's it. Okay? But it's all expressible as the powers of each other. Okay? The same result as saying every, every field has only one primitive element. What? Not one primitive element. Can I have multiple primitive elements? Then you can always write one as the power of the other. Okay? So it's always possible. You cannot do anything. Again and again and again to prove these kinds of results. Okay? Anyway, so the distinct roots of g of x are there are zeros of the cyclic code and usually people use the zeros to define the cyclic code. They say consider the cyclic code with zero set. This is the set of zeros. But that fully fits the cyclic code. Okay? And so look at the check polynomial. So we define something called the check polynomial. Right? So before that I should point out also the other thing. The roots of g of x have to be union of cyclic atomic process. Okay? So that's the first time. The roots are, let me say zeros. Zero of r. Elements of. Other. Dividing n in g of 2 of r. Okay? So zeros are, let me say r, what I mean is, you see what I mean. So it cannot be an added element. Only those elements whose order divides n can be a zero of a cyclic code. Okay? That looks true. The other point is zeros will be, zeros are unions of cyclic atomic process. Why should they be unions of cyclic atomic process? Otherwise, the factor will not be binary. Okay? So if you have one zero from a cyclic atomic process, all the other zeros will also come separate. You have to take, you cannot drop. Right? So otherwise, the thing will not be binary. Okay? So what people will do is, when they specify zeros of a binary cyclic code, they only specify one from each cyclic atomic process. Just to simplify the notation a little bit. So you say, okay, it has the cyclic atomic process, the cyclic atomic process. Only provide the representative. That's enough. Okay? We don't have to keep listing all the zeros in full very detailed because we know all the other cyclic atomic process. Elements will come anyway. Okay? So these two ideas are used quite often. They need to find cyclic codes. And then what else? So, okay, you can move on to the check polynomial. So there's something called the check polynomial. This is again interesting. It is the property of the check polynomial. So basically, we define check polynomial as the perfect to be x bar n plus one divided by gfx. Okay? So it's a product polynomial. It's also as active as x bar n plus one. Okay? So basically it divides x bar n plus one also. So one nice property is, cfx belongs to the cyclic code. Which one of these? Cfx times hfx equals zero in rn. Okay? So this is the main result, which is nice about the check polynomial. So one direction is very easy. The other direction is also not too bad. So at cfx times hfx being zero in rn, cfx times hfx should be some multiple of x bar n plus one. And then from there, you can quickly decide that cfx will have to be a multiple of gfx. So which fx divides x bar n plus one, you take it to the other side, you get gfx. So gfx has to divide cfx, and that's why cfx is a code one. Okay? So both directions are easy to prove here. It's not very hard. Is it okay? Okay? So see, remember how we proved this? cfx is the sum mfx times gfx. So what will happen if I do cfx times hfx? I'll get mfx times gfx times hfx. What is gfx times hfx? x bar n plus one. So that has to become zero in rn. Okay? The other way you say, cfx times gfx is actually mfx times some efx times x bar n plus one. We derived the hfx. We'll get efx times gfx, and that tells you cfx is a code one. So you can prove it just based on these properties. What is nice about the Czech polynomial is it has a zero set which is the complement of the zero set of the code. Seriously, zero sets of Czech polynomials. So cfx is zero one minus one, and you do a set minus with those zeroes of the code. Okay? That's one thing. The other thing is the Czech polynomial by itself also defines another cyclic code. You can also think of this cyclic code. Okay? But we'll have zeroes given by this. Okay? And this cyclic code and the original cyclic code have an interesting connection. So it's not a very obvious kind of connection. So that needs a little bit of more work, and that's where the dual comes in. Okay? So it turns out to take this hfx, and you have to do a reversal, to do the reversal. That will also be a factor of x bar n plus one, and that will generate the dual code. Okay? So those are things I think I proved. So I'm going to just write down the result here. So one can show that the dual of the cyclic code is, again, a cyclic code. Okay? So if you have c being a cyclic code, okay? And the c is equal to gfx. Okay? You define hfx to be x bar n plus one by gfx. Okay? And then you do the following. You define something called hfx, which is x power bgfhfx times hfx inverse. Okay? So this is something I did when I needed the dual. So I'm not going to prove this result for you. Okay? I'm not able to go to the next page. So I'm not going to prove this result for you. So first of all, hfx will also derive x bar n plus one. How do I prove that result? hfx divides x bar n plus one. Okay? Okay? So you use the fact that x bar n plus one is gfx times hfx. And then multiply both sides by x bar. Good? x equals x inverse in both sides. So you get x bar minus n plus one. gfx inverse, hfx inverse. And then you multiply both sides by x bar n. Okay? So we'll get one plus x bar n back again on the left-hand side. On the right-hand side, you split the n as degree of gfx plus degree of hfx. And take x bar degree of gfx into the gfx inverse. And x bar degree of hfx into hfx inverse. Both of them will become proper polynomials. And you'll get this proper fix times some g reversed of x to be x bar inverse. So this is the way. The second thing is, more interesting with all this, c bar is this square cyclic code generated by hfx. Okay? So this is the result I showed before. So I'm not going to re-prove this for you. But this is how it works. Okay? So now how do I find zeroes of the real code? Okay? So I'll go z equals zeroes of zeroes of zeroes of c What is the zeroes of the real? It'll be what? Negative of the complement model. Right? So you have to first take zero one two n minus one z minus z. And then what? It'll do. So suppose I call this that complement. Okay? And then I have to do minus z complement. Of course you can do modular one. Or you can just stop with minus z complement and then understanding that it's everything is modular. This is the zeroes of the real code. Okay? How did I get that answer? What I'm doing is hfx inverse. Okay? So all the roots will become inverses of each other. This is minus. In terms of powers it's minus. So this is the main result. It's just interesting. The dual has minus z complement model. Okay? So I'll put up from here on Tuesday. Okay? And I will start working on it. Okay?