 Alright, so let's continue from here, I said it's an over count if you don't understand it's not a big deal but I mean it's a little bit more subtle, I'm trying to explain it in a very simple way, it's a little bit more subtle. So here again some of three columns, okay, and so on, till what do we have to add? Okay, in a very simple way if I want to, don't want to worry about over counting and all that, I'll add till D minus 2, why D minus 2? D minus 1 is okay, okay, combination of D minus 1, hums can be added that, if I add D minus 1 columns and if I get some column and that can be added, okay, it's not a big deal, I'll still get a minimum distance D, okay, this should be what, greater than or equal to what? 2 power r, if this condition is satisfied, I can definitely add the nth column also, okay, so I have written this only for n, this needs to be valid for i equals 1, 2, 3, so on till n. Oh yeah, less than or equal to, I'm sorry, I'm sorry, I'm sorry, I'm sorry, okay, it's less than or equal to 2 power r, okay, so this is the bound, okay, so this is called the Gilbert-Vashramov bound, it's as I said very famous and it'll seem to be poor for small n and small d and all that, but when you go to large n and large k, it tends to become quite exact, okay, so when people have shown after a lot of research some slightly non-trivial asymptotic deviation and in general making this bound better for large n and large k is as I said one of those, I think there is a $500 or a $1500 price tag to that problem, if you solve that you'll automatically get that money from somewhere, okay, so it's a problem of value also, okay, literally, okay, so let's take this example and try to apply it, okay, what did we have? We had n equals 31 and d equals 4, what does this tell me r should be greater than or equal to, let me see, GV bound will tell me, 7 really, let me see, d is just 4, right, so you'll have 1 plus 30 plus, what, 30 choose 2, right, what is 30 choose 2? 30 choose 2 should be some 400 something, 430 something, 435, you add that to these two you'll get, 466, so this tells me r should be greater than or equal to 9 at least, right, which means what, k is less than or equal to what, 23, so does this violate a previous construction? Yeah, see again, don't interpret this as a bound, okay, just gave you that long warning and don't go ahead interpreting this as a bound, okay, this is only a existence result which works for this k and this n and this d, okay, you can handsomely violate it for small in and small k like I showed you just now, okay, what does, what did our construction tell us? 31, 25, 4 is possible, okay, well you might not consider 2 to be a handsom violation but it is still a violation, right, it's possible to get better k than this but as I said if you can show that you can always get something better than this, better than the gv bound for large k and large n and that's a very non-trivial result, making this better, making this summation very accurate is a highly non-trivial problem, okay, alright, so that's the gv bound, we'll stop with bounds here, okay, stop with bounds here, I want to take this time moment to recap a little bit about what we did because we are going to jump into the d equals 5 type designs which involve finite fields, okay, so drastically different area, so before we go there, let's take stock of what are all the various things that you have learned, okay, right, let's hope that you've learned all of that, okay, so we've been talking about binary linear codes, okay, this is recap, okay, so the first question that some of you may ask, I don't know maybe some of you asked, maybe some of you didn't ask, why linear, okay, why not non-linear, why do I insist that add of some of any two codewords should be another codeword, what's the, what's the objective there, I mean why do we want linear, okay, so you can justify it using various things, one way I justified it was I said there are simple encoders, right, told you there are simple encoders, simple decoders for these things, simple way of thinking about it, nice structures useful but are we losing anything, okay, all these bounds, do they apply for non-linear codes, in fact it turns out they do also, okay, so all these bounds also apply for non-linear codes, okay, and I've also shown you, yeah, you can prove that also, it's another argument, okay, so since all these bounds also apply and since many linear codes have also been constructed to meet these bounds, one can argue that if minimum distance is your criteria then linear could be as good as non-linear, okay, there's also another argument for linear codes, it comes from information theory, in many things you can, in many actual channels you can show that linear codes are good enough for achieving what's called capacity, okay, so that's good, so you don't lose much by doing linear codes, okay, so that's one of the things, so linear codes you can accept, okay, and the next things I want to convey are the notions of block length, dimension and minimum distance, okay, these three should be very very clear in your mind, dimension and block length might sound very trivial to you, but when you play around with the code, puncture it, extend it, shorten it, these things also change and you should have a very good idea of what they are, okay, because they are the bread and butter, if you don't know them there's no way you can do encoding and decoding, okay, and minimum distance which is, one would agree at this point is the most crucial of all the three parameters, right, right, but we also saw bounds that relate all these three, okay, so what else did you learn, okay, decoding, right, encoding and decoding, we really didn't concentrate too much on encoding, what did I say for encoding? Simply do, m times g is what I said, okay, suppose you had to take stock and count the number of operations it requires for doing m times g, okay, suppose you had to do it, okay, it might seem like it can get a little bit unwieldy, for instance, if g is a very large matrix, okay, it's a 500 by 1000 matrix, okay, for instance, then you need to store a 500 by 500 matrix, right, for doing this multiplication, right, it could be some non-trivial random matrix and you have to store it, okay, if you have some experience with VLSI and all that, storing such large matrices with being able to access it in some way can be a little bit non-trivial, okay, so it's not the easiest thing in the word, okay, while encoding is conceptually simple to describe, it would be nice to have it simpler than this, okay, maybe a simple VLSI structure or something, some digital structure which will encode matrices, okay, or at least g should be, g should have some nice properties, it should have some nice properties, okay, it should be, for instance, sparse, I mean, if it's sparse, it's not too scary, okay, you can do all that. Encoding, as I said, it's easy to understand, but it's not fully solved if you want to insist on easy implementation, okay, so that's one thing. And decoding, we have left it to be, we have left it quite open, okay, so the only thing I did was syndrome decoding, which I said very clearly cannot be done easily for large n and large k, okay, the table that I built, if n minus k is 500, you can't build that table, okay, so you have to do it online and doing it online, solving that equation is s equals h times e transpose, doing it online can take a lot of computation, okay, so solving, this is the major problem, finding the minimum weight solution of this, can you find the minimum weight solution for this very quickly, if you can do that, then you've solved the, kind of solved the decoding problems, okay, so this is roughly where we are as far as reading up and as far as knowing what the area is about, okay, so this is what you've seen so far, okay, but one thing I'm not really motivated very clearly is the need to go to large n and large k, okay, why is it that we need to go to large n and large k, it turns out the tradeoff between k by n versus d by n becomes better for large n and large k, okay, so that's the best argument I can give right now, okay, it turns out to be better, that's one thing, other thing is in practical packet communication systems, it's good to have a large packet, okay, if you have a lot of small packets, if you're familiar with these layers and multiple overheads, each layer will come in and add its own overhead, if you have a packet of length 30 bits and if for each packet you have to add like 100 bits of overhead, it makes no sense, okay, so you lose a lot of, a lot of rate that way, okay, you don't want to do that, okay, so it's good to have large packets, so that adding these overheads, like for instance something called CRC is always added to packets, so adding CRC should not increase your rate, decrease your rate too much, so it's good to have large packets, okay, so for various arguments like that, k by k and n have to be large, okay, and when things become large like that, we don't know anything, right, we cannot do anything right now, we cannot constrict codes, right, when n increases, d has to be larger, we cannot constrict codes, we cannot encode them, we cannot decode them, okay, so what we'll study next, starting with finite fields, is a way to solve all those problems, okay, and read Solomon codes, provide a solution to all these problems, wonderful, okay, beginning from the very practical to the very theoretical, they give you a wonderful solution, in fact, with Solomon codes as I mentioned are MDS codes, okay, but to really get to that, you have to be very patient, okay, but to learn a lot of other mathematics behind it, follow up a lot on those things, and then finally read about the Solomon codes, okay, so that's where we are proceeding from now on, so about 15 more minutes, I want to waste this time, so I'll start off with some very simple finite fields, and then we'll keep going, okay, that's the next thing I'm going to say, okay, so as I said, one way of thinking about the need for all this is to construct codes with larger d, okay, d equals 5 or larger, right now, we don't know a very nice way of constructing, okay, one of the most elegant and wonderful ways of constructing codes with minimum distance 5 or larger is through the use of what's called a Van der Maan matrix, how many of you know what a Van der Maan matrix is, okay, so this Van der Maan matrix you must have seen this sometime, okay, it's a very simple matrix, it plays a central role in all these constructions, okay, and you also need to know about finite fields, you need this matrix with entries coming from what's called a finite field, okay, so these two things together will give you the answer to all the constructions you need, okay, so it's a very simple idea, idea is not very great, but you need to know the finite field mathematics to get over, okay, so we're going to do a little bit about finite fields, okay, so the first question you might ask is what is a field, okay, so in mathematics a field is a set of elements on which certain things you can do, okay, set of elements that can be, okay, I'll give a very loose definition, we'll make it precise later, okay, that can be two things you can do with them, you can add, add it and subtract it, multiply it and divide it, okay, it's a very loose informal definition, I don't want to be very exact at this point just to give you a motivation, do you know set of elements on which all this can be done, okay, can you say done, I mean you can do it, but you should do it consistently, you can't say all kinds of things, it's a simple role of defining it, just you cannot just come up with all kinds of things, okay, so I'll define all that very precisely later, but I want to simply motivate initially to get you the idea, okay, what is one set of elements on which you can do all these things, okay, everybody says real numbers, as if you know the real numbers very well, okay, real numbers are one of the most nasty fields out there, okay, let's not go into such fields, okay, something much simpler than that, I'm sorry, rational numbers, okay, a much nicer set of numbers which I know very well, okay, rational numbers are one of the first examples you should think of, why am I not thinking of integers, okay, yeah, so if you divide two integers you don't necessarily get an integer, right, so that's a problem, so I don't want to think of integers or even say natural numbers, 1, 2, 3, 4, subtraction is a problem, right, so you don't want to do all this, if you want to do all this, you see the smallest thing I have to go to is at least the rational numbers, okay, so rational numbers and then yeah, real numbers also are good enough, okay, so here are examples, okay, so typical notation for rational numbers is Q, so real numbers, it's so bad, so the problem is you guys don't learn real numbers properly, if you learn it properly then it becomes very bad, if you accept real numbers then it's good, there's no problem, if you know, if you think you know real numbers then you're doing fine, you don't need to know anything else, okay, if you have to really, really know then it becomes a problem, okay, so these are two examples but I'll give you a very simple example, okay, and then I'll tell you how to add, subtract and all that, it sounds simplest thing in the world but it can work, for instance, I'll write down what I'll call F2, okay, so I'll simply say I'll just take a set, two entries, 0 and 1, okay, then I'll tell you how to add, subtract, multiply, divide, okay, it's very easy, okay, division by 0 I will not expect, okay, it's not reasonable to expect division by 0, so I'll say division by 0 is excluded, but can you easily figure out how to add, multiply, subtract, do everything, it will work, okay, everything is modulo 2 it will work, okay, how will you add 1 to 1, that's the only non-trivial addition, if you do 1 plus 1 it will be 0, okay, so you see if you contrast this with the real numbers, it's a completely different type of definition, right, so you can have very small, very nice fields and also have very large, very nasty fields, okay, so in coding we are mostly concerned about finite fields, when I say finite I mean the set has to be finite, it has to have a finite number of elements, okay, so this is a finite field, okay, these two clearly are not finite, okay, real numbers and rational numbers are not finite, okay, so it's possible to extend this F2, F2 is a very simple example, okay, you can also make it slightly more non-trivial, like you pointed out you can take F3 which would be 0, 1, 2 and do addition and multiplication modulo 3, this will be a field, you will see it will be consistent, you do anything modulo 3 you can also divide, how will I divide 1 by 2 mod 3, mod 3, okay, you have to think about it in a little different fashion, okay, see it's good to think of division as the inverse of multiplication, right, you always think of it that way, when you divide 1 by 2 you want to divide 1 by the other, the way to think about it is it's easy usually to define 2 power minus 1, okay, so the way you have to think about 1 by 2 is for instance how do you do 1 by 2, you have to think of it as 1 times 2 power minus 1, what's 2 power minus 1, okay, I have to define this 2 power minus 1, right, I will define it later, okay, so you will see I will define it later, this is how I will define multiplication, right, this is how I will define division, okay, right now it's not very clear, we'll come to it soon enough, what about subtraction, what is 1 minus 2, okay, so I want to think of it as minus 1 but minus 1 is the same as what, modulo 3, 2, right, so you have to generalize these notions, okay, so that's what I want to convey, this notion that you are used to for what is addition, what is multiplication, what is division, what is subtraction, we'll have to be generalized little bit, you'll have to take it to its very basic essential core, what is it that I do when I subtract two numbers, okay, what is it that I do when I divide two numbers, what is it that I do when I multiply two numbers, we should do, we should think about all that very carefully and we'll generalize it based on that, okay, so it will involve a lot of what is called abstract mathematics, okay, so very often people are not very comfortable with it, okay, when I write down plus and when I write down dot and do that, it can be disturbing to you, you'll never know what this is, it will seem very abstract, it will seem like addition, division, multiplication, okay, it's a long way to reach Solomon codes from here, okay, there will be lots of times when you'll be completely lost, okay, I want you to keep trying, okay, eventually you'll get used to the notion of finite fields, it takes time, okay, it's not very easy to learn but we'll try to go, I'll try to go as slow as I can, okay, so I'll try my best to go as slow as possible, okay, so the next 10 minutes or so I'm going to spend giving you some motivation for why such kind of abstractness is something you've seen before, okay, so you might think, you might say I've never seen abstract mathematics, I only work with real numbers, real numbers, numbers that are real, okay, so it's not like that, okay, it's always been an abstract idea, a lot of things have been abstract, it's just that you learn it in a very different way, you learn from your young age, so you think it's all very real, okay, it can be very abstract, so if you think of it historically, okay, so if you want some historical background, okay, so people typically think of the whole numbers or n, as I call it, the natural numbers as being the first numbers that you would have come across, okay, so these natural numbers are used for counting, right, what are the natural numbers that you had? 1, 2, 3, so on, okay, then maybe the whole numbers came in, okay, so what are the whole numbers you would include? 0 into them, okay, so maybe I put in a 0 here, okay, the necessity for 0 is also interesting, 1, 0 comes in, right, suddenly you needed negative numbers, okay, so there is a big abstraction, okay, somehow it seems very clear to you what minus 2 is, but what is minus 2? What is minus 2? Can you add minus 2? Can there be minus 2 things? No, it's not real at all, right, it's very abstract and this is one of those things that you learn very early on, so it seems very comfortable to you, okay, that you can write down this long list of numbers and assume you know what it means, right, what are these things? It is an abstract idea, how do I define minus 2? What is the actual core essential definition of minus 2? Yeah, that which I add to 2 to make 0, okay, there is no number in n which when added to 2 will give me 0, do you agree? So what do I do? I invent a number and I say, I will call it minus 2, that when added to 2 becomes 0, okay, and I make my list of numbers larger, okay, so now I get consistency for subtraction, it was a very exceptionally abstract idea, okay, but it seems very real to you because you are used to it number one and the other thing is this is wonderful relationship you can make between what's called the number line and this, okay, so most people are very comfortable with measurements, okay, you know you start at some point, use a ruler and measure, what if you have to measure in reverse? So you say minus in that way, right, you learn that in physics and it becomes very comfortable to you because you measure and measurement is always the most easiest thing to do that's how whole of math also got started, right, people wanted to measure things very correctly, okay, so on the number line, negative numbers make a lot of significance and you can associate that with measurement which is a very natural intuitive process which people understand very well, so it seems very real to you mostly because of the measurement, okay, because you always associate minus with you're an axis, you're in the origin, you're going negative, okay, we will go to number systems where you won't have such things, you won't have measurement, you won't have axis, you won't have the origin, so naturally you'll be lost, okay, so it's not unnatural to be lost, okay, but you have to remember that the ideas are essentially the same, okay, the ideas are essentially the same, I defined addition in a certain way, okay, and then I have 0, then I have to come up with some number which when added to this number will give me 0, right, that's the negative of that number, right, my operation has to allow for that, okay, so you'll see we'll cook up some examples like that the way it works would be like that, okay, so the number line is very interesting, so you have 0, 1, 2, 3, minus 1, minus 2, so on, okay, and I want to harp on this measurement a little bit, why do you think the rational numbers came by, why do you need rational numbers, if you're only measuring, okay, that's an abstract way of thinking about it, let's think in terms of measurement, why do we need rational numbers now? Yeah, exactly, so if you fix your unit, okay, right, it's not good to keep changing units all the time, and how many units will you change, you can't keep on changing units, right, 1 9th of something, 1 8th of something, it cannot be a different unit, okay, so you can't keep changing units, at some point you have to stop, I'll say I'll fix my unit and anything between 0 and 1 in this unit will be denoted 1 by how many ever it is less, okay, so at that point you freeze your unit and you say I have rational numbers, okay, now you have addition, subtraction, multiplication, division, you need to do all that, right, once you have units and measurements, you have to be able to add, you have to be able to subtract, right, when you actually construct something, all these come, okay, so you can think of rational numbers on this line, okay, right, fractional things, you fix a unit and you want to measure, you naturally led to rational numbers and it seems very nice, okay, you have also been told you can think of the real numbers on this line, many of you are probably very convinced that you can see root 2 on this line, okay, it's very difficult to see root 2 on the line, okay, so where you'll actually meet root 2 is when you want to construct a right angle, it's possible to construct a right angle, right, you can construct a right angle, you construct one here, one here, where will you meet root 2, on the hypotenuse you'll meet root 2, okay, so early Greek mathematicians did a lot of work and how many other people did a lot of work on this, there was no common unit on which both the sides of the right angle triangle and the hypotenuse could all become rational, they could never find it, they could never come up with a nice unit on which it could have, okay, you see the problem here, right, there was no unit, how much ever smaller you make it, this number kept on changing, so they need, so you naturally need a new number for it, so you come up with irrational numbers, right, numbers that will have non-repeating, non-recurring decimal places, right, that keep on coming, right, you can't do anything about it, okay, so that's where you meet root 2, okay, imagine how abstract root 2 is, okay, otherwise, okay, if you did not have this measurement, how abstract would root 2 be, okay, just put this weird notation and put 2 inside it and suddenly you imagine, you square that number, you get a rational number which is 2, okay, you imagine that, okay, it's completely in your head, right, but somehow it has been brought into the measurement regime by this right angle triangle, okay, the hypotenuse becomes root 2 and it becomes so clear to you, right, you might have in reality, in coding you'll have situations where you cannot do this visualization, you won't have the right angle triangle, still you should be able to visualize the root 2 which when squared gives you something that you know already, okay, so that's the next thing, okay, there is also another construction where these numbers will show up, okay, so if you were to construct a circle and if you make this say the diameter, some rational number say 2, 2 is not very right, I'll make it 1, okay, okay, you'll meet another interesting irrational number here, okay, so this length along the circle will be what? Pi, okay, which is a more crazy number than root 2, okay, at least root 2 you can imagine as you square it, you get a rational number, okay, there's nothing like that for pi, okay, pi is called a transcendental real number, right, there's no polynomial equation that it satisfies, okay, it's a crazy real number, okay, in fact real numbers are one of the craziest number systems out there, okay, so to construct that and actually fully show where this number is on the line, how to think about it, how to add, how to subtract takes a lot of advanced analysis, okay, so you think you know it because all these number systems help you but there are very few people in the world who know really how real numbers behave, okay, so it's not a very easy thing to think about, real numbers are more crazy than you want, then you might believe, okay, that's one part of it, okay, it's one part of it, we'll go ahead and use more abstraction than this, we'll use a lot of abstractions, in fact I won't say, I'll talk about alphas and betas and gammas, we won't have anything to do with reality, okay, but I'll tell you some very surprising powerful properties about finite fields, okay, not just finite fields, using abstract fields, okay, if you don't believe me, using the notion of abstract fields, you can show some wonderful, wonderful properties, for instance, ruler and compass construction, okay, I don't know if you remember, you cannot trisect an angle, right, it's a very famous theorem, okay, you cannot trisect an angle using ruler and compass, what else can you not do using ruler and compass, yeah, some square to circle type things, you cannot do these things, anytime you have root 2, some non-trivial construction, you cannot do it with ruler and compass, you know how you prove that, one of the most wonderful and elegant ways of proving that is using abstract fields, fields with no relation to reality you might say, okay, but at the end of the day, they come back and tell you what is possible on the construction, okay, so there is, so there is a inherent beauty to it, it will come back and help you later, okay, same thing happens with the finite fields that we will learn, it will seem like we are learning about something that is not at all useful, but you will use this wonderful random on matrix and come back into codes and this parity check matrix and the rank criteria and this distance criteria and it will be a beautiful connection, okay, I hope you enjoy that connection as much as I enjoyed it when I learnt it and hopefully we will see that at the end, there are more things you can show using abstract fields, okay, that is one thing, okay, the construction, ruler, compass, construction and then there is one more result about, okay, actually this and that are related, other result is solutions for polynomial equations, okay, what do you know about solutions for polynomial equations? For quadratic, you know the exact solution, cubic and degree 4 also it turns out, one can write expressions, from degree 5 you can show that does not exist any expression involving roots and all that, okay, this is a very non-trivial thing to show, how do you show that? You show that using abstract fields, okay, so I want you to remember these things, okay and if you are intrigued by all these things, go read more about what these number systems are, what fields are, what does it mean, if you are intrigued about it and we will see only a very small aspect of it, I will highlight it only with respect to coding, I will not do a general discussion, definitely not, okay, but I want you to keep track of that and see that beauty finally, when you finally come back through random on matrix into the actual code construction, we will see it beautifully, okay, thanks.