 In the last lecture, we have discussed you know establishing how to establish a problem is NP complete. In that connection, I have mentioned two problems which is in the line up of the undecidable problems concerning you know touring machines. For example, halting problem that is undecidable. So, given a touring machine of course, standard touring machine and input string w whether m halts on w that was the halting problem. We have observed that it is undecidable and then there are several variants that we had discussed in the similar lines. We have considered non deterministic quantitative analogous problem that we have written the problem n naught. So, and observed that it is NP complete. And then a variant n 1 was mentioned that means, given a non deterministic touring machine when you start that machine on a empty tape whether that will halts mean that accepts that halts in a given number of steps. So, that we have mentioned n 1 and I have also given certain hints to observe I mean in fact, I have shown the function that you can you could have observed that it is a polynomial time reduction n naught to n 1 to understand that n 1 is NP complete. Now, this is a very nice classroom exercises problems concerning touring machines, but the power of this essentially we can in the sequence in this line up you know I will introduce few more problems with which to establish that they are NP complete. And in fact, we can target to observe the proof theorem in the classroom using you know this kind of basic techniques. So, certain variants of this n naught n 1 these things we will you can always take as classroom exercises and observe that they are NP complete. And now, what I will do I will start with another problem called bounded tiling problem, because we have observed the tiling problem is undecidable. What we will consider now a variant of that is essentially you know a finite space need to be filled by tiles given a tiling system that is how we will take so called bounded tiling problem. And that we observe it is and we observe that problem is NP complete. So, and essentially what I will do here now what are the sequence of problems that we are establishing just to observe a problem is NP complete what I said already established NP complete problem. If you can reduce that problem to the given problem then you can observe that it is NP hard. And of course, you have to observe the given problem is in NP. So, these two conditions that is how we have to we are pursuing actually. So, let me first state the problem called bounded tiling problem as in the tiling problem here you have a tiling system. Let me say this that quadruple d d naught h v you know all these components d finite set of tiles d naught is the initial tile that you will be fixing it in the left bottom corner of the space that you are filling. And you have certain horizontal constraints h and vertical constraints v. Now, what is in addition here is you will be given a number s a positive number. And what you what you are doing in case of a bounded tiling problem if you take the first quadrant you are say let me put this way you will be say the if the quadrant is like this you will be choosing tiles in each position of this first quadrant which is unbounded. What now we do we restrict ourselves to you know a finite portion say this is 0 1 and so on till. So, 1 2 and so on say s minus s suppose if you look at till s if you look at then you see the tile this portion is 0 0 0 1 2 and so on till s. Now, here this is an s by s square. So, our target is to fill this given portion now what is the question concerning that I give you a tiling system d and a positive number s and I ask you whether there is an s by s tiling of the system d. That means of course, you have to fix tiles from this set in this you know the portion of size s by s that is what is essentially the target term. Let me formally mention an s by s tiling by d this is a function f from 0 1 and so on s minus 1 because if you want to fill this corner I will be talking about this point only that is s minus 1 correct. So, what do you I have here this is a function 0 1 2 s minus 1 cross 0 1 to s minus 1 because each tile is represented by it is this corner. So, this is 0 0 and this one is you know 0 s minus s minus 1 0 position. So, the tile is represented by this corner you know in tiling under side ability we have discussed the tiling. So, this is a function f from this square to d. That means in each position in this square you have to assign a tile d which satisfies the for this constraints of the system given to you. What is the what are the constraints on that this d naught should be in the left bottom corner and if you are if you are fixing two tiles I mean f m n is a tile and f m plus 1 n is a tile which they are coming side by side horizontally because you look at the position this is m n position this is m plus 1 n position. So, if they are coming side by side. So, this thing should be satisfying horizontal constraint similarly if you want to fix a tile above a tile then they have to satisfy this vertical constraints here. So, that is what is essentially the bounded tiling problem it is just a variant of the undecidable tiling problem. What we observe here this bounded tiling problem is NP complete. So, to observe this is NP complete of course, now you can ask me like how do you represent this problem. So, given a system tiling system d and a number s whether d has an s by s tiling that is our problem and one may write an appropriate coding for this because it is a finite system. So, bracket d I am writing whether you will be coding with 0 1s or whatever. So, I call this language t tiling bounded tiling problem. So, the encoded system the string bracket d at the rate on s. So, the time the number of steps that you are allowed to you know perform is say for example, s number of sorry here an s by s tiling whether it is possible that is what is the s is the parameter of the tiling size. So, the question is right. So, you collect all those strings if d has an s by s tiling. So, let us consider this language. Now, to observe that this t is NP complete of course, you have to observe that t is in NP. Now, what you will do is you have to give an appropriate polynomially balanced language t dash that means given a certificate that means if you are given a tiling you have to cross check whether that is an s by s tiling or not because s is a parameter given to you in the input. Now, you have to cross check all the tiles whether they are satisfying the given constraints or whatever or not and essentially as we are doing what you have to do you have to write the appropriate an appropriate language polynomially balanced language t dash and observe that t is in NP. You can take this portion as an exercise. Now, what I will demonstrate here is t is NP hard that means that means what I will do I will reduce a language which is already established as NP complete to this language t. So, that you know I can say this is NP hard of course, the I will reduce in polynomial time. In fact, I choose this language N 1 that we have discussed in the last lecture that N 1 can be reduced to t in polynomial time that is what my target here. So, that means what I have to do I give you as if you consider a string in N 1 whatever that affects that I give that has to go to t and vice versa such a reduction I have to give and that reduction should be possible in polynomial time. So, now you take an arbitrary string x in 0 1 at the rate star of course, as I had mentioned you can encode this tiling system as a sequence of 0's and 1's. And thus I am just writing here also 0 1 at the rate symbol, but of course if you have some other symbols that you are using to encode this tiling system then appropriate alphabet will come here. So, now you take a string x in 0 1 at the rates over this alphabet and if it is not of the form bracket m at the rate 1 t for some non deterministic machine m if it is not of this form then I simply give some string which cannot go in t. You see as I had mentioned in the previous thing when we are when I was giving hints for N 1 you see when I am taking 1 here is that cannot be in t at all because in t you see at least 1 at the rate symbol that we have so that this is this portion anyway is not in t at all. Now, if the string x is of a form bracket m 1 t at the rate 1 t for some non deterministic m what I would give you I would I would give a tiling system this d m because I am calling these subscript m because we are constructing with respect to the given non deterministic machine m d m and I give you say 1 t plus 2. So, how this tiling size is coming we will discuss now if it is a non deterministic machine you simply give like this. Now, what is the tiling system that is the question what do we suggest is this if non deterministic machine is q sigma delta q naught then the tiling system what do we do you remember we have created tiles when we are showing the tiling problem is undecidable. So, here also a similar manner we create tiles and see whenever you have an S by S tiling then the concerning the string is in language n 1 and vice versa that is how we have to we have to create to show this is a reduction. So, that means what I have to observe here x is in n 1 if and only if you know f x is in t that means whatever the tiling system we have created that should have you know if I say 1 t plus 2 that much tiling should be there for this system and vice versa. Now, the tiling system what we are creating I give you tiles because the let me first explain you the philosophy that how I will proceed it is exactly the similar manner that we have considered for undecidability of tiling problem. We will have the tiles as the tape cells of your non deterministic machine that is that is how we have insist in the in that problem and earlier what was the situation whatever is the tape content that you are showing and of course to start with the initial state because on the blank tape you will be starting and whatever is the non deterministic machine m pursues because earlier in that case you know there you are having a deterministic machine in case of tiling problem in this bounded tiling problem I am having a non deterministic machine whatever is the non deterministic machine that it pursues to halt you know within the given number of steps I will I will try to have here an S by S tiling an appropriate with an appropriate S. So, what are the tiles over there the tiles are essentially the cells tape cells in the tiling problem here also what do I do what are the cell content with respect to that each cell will be seen as a tile and I define tiles appropriately and each of these rows what is the information of the tape that will be propagated over the computation of m over the computation of m to fill an appropriate size you know of size S. So, the same philosophy will continue here. So, in that connection I will consider tiles of this form the first type for each symbol a in sigma and 0 I mean for each k up to t because t is given to us because we are given m and t right. So, these two parameters are with us. So, I consider is that I will have a tile for which you know which can be which can be fixed with the information a k and the same information will be there in the next level also next row also that is how that means these are the tiles which can be used to fix the current information in a particular cell if it is not changing for example, I have here say blank and this is the 0th row because this is 0 1 like this right. So, that means what I am trying to say this is the situation with this cell and if there is no change in the second what is called the configuration or the tape content then I will have the same this thing, but now the situation is the configuration this is a first second configuration. So, I am representing it this by this. So, that means this tile now you know the horizontal sorry vertical constraints will also be shown will be shown by this. So, for this tile when a k is the information at this and for this tile you can have a k plus 1 as the information when there is no change. So, what is the difference earlier you would have considered just tiles the information need to be continued may be I would have written this right. So, what I am saying is here. So, instead of writing inside I am just writing outside. So, when the information there is no change in the information from the previous configuration to this in a particular cell that can be you know this type of tiles can be used. And then regarding this transition concerning each transition you know the respective things need to be sort of considered. So, the transition will transition in a particular cell will be you know earlier say q naught blank. And now when you are applying a transition on this because the state component is here. So, the state component is an additional component to the particular concerning tile. So, look at if you have a transition p a q b right because this is a non deterministic transmission this is a delta transition set. So, for a state p and q that can be a halting state for symbols for input for symbols in sigma a b if I have this transition what do I say I will consider this kind of tiles. So, p a k you know which can be transformed to because b is getting printed. So, changing to the state q you are in the current cell only, but you know because of this transition you will be moving from one configuration to its next configuration. That means in the computation one step that you have progressed. So, this k the parameter as I had mentioned this gives the progression of your computation. So, if you are in the k th configuration the k plus 1 configuration you will have the current cell q and the current tape content is b. This kind of thing I will consider for all the possibilities up to the t number of steps. So, for all k 0 less than equal to k less than t concerning this transition. Now, if the transition is taking a right move as earlier in case of tiling problem we are considering look at here. So, p a k that means the tape content a from in the state p in the k th computation in the k th since it is changing to the state q and taking a right move the current cell tape content is a only in the next step. Of course, I will have a now a horizontal constraint here which is which this can be fixed you know next to because this q is going out and q is coming in. So, that you know the current cell can be updated by the state q. So, this kind of transition you know whenever there is a right transition right move then we consider this kind of symbol it is exactly what we have discussed in case of tiling problem. But what is the difference here the difference is the time parameter the step parameter that we are we are including in this. That means if you are in case step if a particular configuration is there in k plus 1 step in that particular cell what is getting updated there. So, this is the business that we are updating here and now I consider such tiles which can be fixed up to the you know t steps. So, for all k 0 less than or equal to k less than t because I am allowed to go for t number of steps with m. So, that is why up to t we are considering similarly for left transition a transition which takes left move p a q l if this is the transition like as earlier only parameter is only a parameter is this step parameter that we are putting it here. So, here since you are changing to the state q I will I am taking this can be this can be fixed to right of a cell which is of this form. So, if the current content of this cell is b k in kth step if it is b now the current cell content is still b in k plus 1 step whereas, the current state the state component will show up in this particular cell. So, in this cell the reading and writing head will be there. So, representing that I have we are constructing this kind of what is called a tile. Now, the thing is when I am trying to make an SBA styling I will go up to t steps. So, in between say for example, I come I get halting state since I am targeting to give an SBA styling for some S because this Turing machine you know when you are starting on the blank tape it will hal within t steps within t steps means you know the number of configuration that you get here or within that you know t plus 1 number. Now, the point is how many how many steps that can be you know if t is 10 this must be halting in 5 steps it may be in 6 steps it may be in 7 steps whatever it is. For example, you know if this is 10 so this is till this point now it is we are allowed you know the machine will hal within 10 steps. So, it may be after 3 steps it may be after 4 steps for example, if it is halting after 4 steps now we should still have a propagation of this configurations you know that computation should be shown up. So, that you will have an appropriate tiling in any case. So, what we give here because see the propagation is possible with respect to transition only because this is one configuration how do I get an extra configuration if there is a transition right. So, the application of some element in delta similarly if I have this configuration I can go to this if I have some what is called transition once I get halting state now no transition is applicable you know that now how do I then fill all this portion I cannot fill right. If I just rely on the transitions only now what do I do if it is a halting configuration I allow you to you know give the propagation of this tape cell I mean what is called tiling with halting configuration up to a certain mark what is that mark that we look at fine. So, we look at an example and then evaluate like how many such styles need to be given what this exactly indicates if you are having the tape content k in the case tape with the halting state h you are allowed to propagate this what is called computation of course you are not going to get any change the same configuration that I would be writing. So, many times a fixed number of times to propagate this tiling up to you know some s whatever that we are targeting to show intention of this tile is clear. And now you look at left bottom corner this is how this is a special tile that we should have because in the left bottom corner with the blank cell and the initial state q naught that is you know the 0th configuration I say that after first step I may get 1 and so on. So, this kind of initial tile you should have and then to fix in the first this thing if you have q naught like this the next cell blank and so on the respective number of blank cells because this will be seen as tiling to later on. So, that way these are all blank cells you would required. So, blank in the 0th this thing. So, blank 0 left to right this is the horizontal constraints left side is a blank cell right side also blank cell and so on of course since we are targeting to have this bounded tiling the last tile here the left to that you know I will have blank cell and what is right to that I am not giving any constraint here. So, this kind of tile with 0th position I will be fixing. So, this kind of tile we may consider fine. Now, let us just look at an example to talk about how much should be the as with respect to t. Now, if I consider a Turing machine just behaves like this that means how do I give. So, this non deterministic machine I will just give in a deterministic manner does not matter assume that when you start it in q naught it will go to you know state say q 1 and take a right move and in q 1 when it reads blank it takes a right move and come to q naught and assume this does let me just because I wanted to halt it find number of states say q 1 and it takes say another right move in q 2 and another move say in q 3 it is not changing any tape content. So, blank is that and in q 3 in blank cell it takes another right move and halt for example, takes a right move. Let me consider a Turing machine behaves like this that means it simply takes you know so many right moves and then halts finite number of right moves. So, what is my you know computation in q naught you start with a blank tape in the next step it will go to q 1 and takes a right move. So, that means that is the next configuration and in the next step it goes to q 2 and takes another right move so that you know this is the configuration then the next step it will go to q 3 and takes another right move. So, this is the next configuration and then so now it suppose it halts. So, it takes a right move and halts suppose it takes a right move and halts. So, how many steps it took step 1 this is step 2 step 3 step 4 step say for example, someone is telling me that this halts in say 6 steps. Now, what exactly I wanted to look at here is see this blank this state component q naught this is in the 0 th step. So, other cells are blank blank in the 0 th cell. So, let me put 0 like this and in the next configuration what I have here. So, the tape content is blank that is not getting changed so it is taking a right move. So, this q 1 goes here this is blank now this is you know the first after you know in the first step. So, I write 1 here now 1 here and then this propagates this is the situation and so on. Now, in the next step this is the tape cell content is this in the case step I have 1 here in the k plus 1 step that is 2 and then this is again this q this q 1 in the blank when you read it takes a right move goes to q 2. So, since it is taking a right move the tape content is this in the next step, but here you have q 2 this blank in the second step alright. So, and of course, here is a blank in 0 step and then this will be a blank in the first step and there is no change blank in the second step likewise we have and then you will have here say q 3 blank third step right. So, likewise you have the propagation of tiles that we wanted to fix and then in q 3 I will get say halting in the next stage. So, this is a halting the tape content blank in the fourth step since someone told me that this halts in 6 steps. So, the t for me is 6. So, and since it is halting in 4 steps I know this much tiling is possible, but since we are targeting with respect to t and it may be 3 steps it may be 4 steps it may be 5 steps what I should have I should have a mechanism of propagating this tiles up to you know some number with respect to the t alright. Thus what we suggest is you have tiles with the halting with the halting state that you can propagate up to so many. Now, you can ask me what is the minimum number that I should fix for this tiling what is that size now you look at here if it is halting in exactly 4 steps you look at this will be the first row that is 0 and this is coming in 1 this is coming in 2 this is coming in 3 this is coming in 4 alright this is coming in 4. Now, since it is halting may be this is the best that you can stop. So, this is halting in t equal to 4 steps. Now, what is the tiling that we have here look at this size of this this what is the size of this that is you know 0 1 2 3 4 alright. So, within 4 steps. So, this configuration is fixed here and then this configuration is coming here 2 3 4. So, at this point this will halt. So, within you know this we have 4 steps here. So, this much tiling can be done here. Now, what is the appropriate what is this tiling here. So, how many how many how many cells that we have filled here. So, 0 1 1 1 2 2 and till this is 4. So, if I say if it halts in 4 steps if it halts in 4 steps. So, we have thing like this the halting configuration has come here. Now, for example, if you take anything t little little more than any any as which is little more than this much because within this many steps this will halt within this many steps it this will halt. So, even if it halts if I take little more than this I can actually continue to propagate through halting state and make appropriate tiling that is what is the target. Now, what do I choose here is s is equal to t plus 2. So, now if you take s is equal to t t plus 2 this is an optimal number you can look at why this is you can look at why this is because after the halting configuration if you come if you get you can propagate at least one more one more time and there after you will be if you want if you required you can continue. So, this gives you at least one more time I can propagate with the halting this thing. Once I realize that I have I am started propagating with halting only that means this has come to halting state. For example, if I if I if I just fix at this boundary if this is not halting state suppose if I say I wanted to just have only say s is equal to 5 then this is what is 5 by 5 tiling because 0 1 2 3 4. Now, this entire thing is filled suppose this is not halting state then what will what will be the situation you have got already s by s tiling s is equal to 5. Now, I wanted to leave at least one more this thing blank if I do not get within this many steps halting state that means say for example, here instead of h if I have say for example, some q some state q if I just declare this much only if I just declare this much only that means s is equal to t plus 1 because this is 5 by 5 tiling correct 5 by 5 tiling is from 0 1 2 4 cross 0 1 2 4. If I just take s by s tiling with s is equal to 5 in this case even if it is not halting state then the you have got the tiling complete tiling. So, what I wanted to look at if I take one more that means t is equal to sorry s is equal to t plus 2 within t steps if it if it is you know within t steps if it is halting with this then what we are what we are going to have once I realize that the halting state is there then I am able to propagate it here and if it is not halting what you see if it is not halting with this then you will have the propagation always, but you see we are we have not defined such tiles here because we have defined tiles to take the transitions up to you know the steps which are less than t. So, I will not have tiles if it is not halting whenever it comes to the halting state whenever it comes to the halting state then I am I can propagate till whatever is the appropriate number that I have. So, we will give this kind of tiling for that. So, k we will fix so now if I take s is equal to k t plus 2 once I reach to halting state then I have a mechanism to propagate using halting state further and give the tiling. So, let me give a a note on it let us look at. So, in the first place the tile you know we are fixing with a blank and q naught and then you are fixing all these are blank cells. So, this is what is the first configuration and in the second configuration whatever is the state updated. So, second configuration will be given appropriate tiling like this and so on whenever it is halting with within t steps. So, that means when I get a halting state here because this transition will you will be giving with till less than t this kind of tiles and once I get a halting configuration then up to t plus 2 steps you know we will have you know we will be able to propagate. So, this is what one more step we are considering and we have already given tiles of this form. So, that you know in 0 you will be starting with all this information with all this blank and then you update the transition you will be able to update the transitions up to a certain mark. That means up to t plus 1 by t plus 1 tiling you will be able to with respect to the number of transition if it is not halting. After that these two particular things you will not be able to because. So, till this point you can go with if you have halting state here then you will be able to propagate to this. So, this you can go k less than or equal to t. Example if you go then you can recommend to have you know t plus 2 by t plus 2 tiling with this system. Now, you understand given it non-deterministic mission m and if it halts within t steps. That means if it is in n 1 now these tiles because the configurations are essentially shown as tiles. So, in this tiling system it will it will have as t plus 2 by t plus 2 it is s is equal to t plus 2 right s by s tiling you will have. So, that that will be in t now in this tiling system if you have an s by s tiling that is s is equal to t plus 2 what is the meaning of that. Because what are the tiles that we have created up to t by t plus 1 by t plus 2 t plus 1 tiling if the mission is not halting anyway you will get, but you will not be able to get the last row. That means the t plus 1 step that that particular row you are not going to get because we have not given tiles for that purpose. So, if the mission is not halting then you will not be able to and if the mission halts before that before that many steps I get a halting state and I will be able to propagate that and so that I will have s by s tiling. So, given m if it is not halting I mean when I do not have s by s tiling that means there will be at least one row free and thus the corresponding x is not in n 1. If I have a tiling that means the mission is halting within t steps so that the string x is in n 1 is this construction clear. So, I will just recap once again what we are trying to do here is we are trying to reduce n 1 to t in polynomial time. So, this reduction how are we doing take a string if it is of the form m this a non deterministic mission m and at the rate 1 t we are trying to give a we will give a tiling system this will have t plus 2 by t plus 2 tiling and vice versa that is how we are producing. So, whatever the configurations that you have that means the tape cells that you have each cell may be treated as a tile as in case of tiling problem and each of this configuration can be seen as the tape can be seen as each cell as tile and the configurations that you are propagating will be seen as a tiling. Now, if the string x is in n 1 that means the non deterministic mission m halts within t steps then you know I once I fix that this t plus 2 by t plus 2 within this t steps I will be reaching the halting configuration and with the state h and we are giving a tile which can propagate in the halting state up to 1 more or you know up to the steps up to the tiling t plus 2 by t plus 2 tiling alright and if the mission is not halting that means you will have infinite propagation. So, at the stage you know for t plus 1 by t plus 1 tiling you will get the you will get t plus 1 by t plus 1 tiling, but the last row you cannot get because you do not have a tile which can propagate up to t plus 2 by t plus 2 size because all these tiles this tile this tile these are all given with for the steps up to t. So, this is also given up to t and with all this what horizontal constraints, but whereas this I will give to fill up to 1 more because through the halting state. Thus we can have this kind of this what is called tiling if and only if x is in n 1 alright and now what you have to observe that this kind of construction is possible in polynomial time with respect to the input size because what are the tiles we are constructing here because m is encoded here that is part of the input and you see how many tiles that we are giving. So, with respect to each symbol and this we are giving this kind of tiles and with respect to the number of transitions we are giving this kind of tiles with for every a b in sigma and all this. So, again the number of transitions and the number of symbols of sigma and this k you know what are that we are choosing they are all finitely many. So, you will have finitely many tiles with respect to the input parameter and similarly this case these are all finitely many tiles. So, this tiling system is you know is in polynomial with respect to the given input size and you can argue now that the what is called the tiling system can be created in polynomial time with respect to the given input parameter. So, that you can observe that n 1 is less than equal to p t. So, that bounded tiling problem is n p complete. So, now what I will do I will give some more n p complete problems in this lineup and we can nicely cross check the and learn like how to show a given problem is n p complete. There are several variants as I had mentioned of this n naught may be we have talked about n 1 and many other and we have reduced n 1 to the tiling problem. Now, I will as a I had mentioned in this lectures I will also give you know the first n p complete problem which was established. So, called the satisfiability problem that that was the first n p complete problem which was established by Stephen Cook. So, the Cook's theorem says that satisfiability problem is n p complete. So, I will give a proof for Cook's theorem in this lectures. First I will talk about the problem I will introduce the problem and then I will say like how what is the approach that we would have to show that this is n p complete. So, the Boolean satisfiability you all know about this Boolean formulae, but let me just reiterate here that x x 1 x 2 x n be a finite set of Boolean variables, because you know Boolean formulae they are defined over a set of the finite set of variables. So, using the following rules recursively Boolean formulae over x is defined recursively as follows each x i from this set is a formula this is known as atomic formulae. And if f and g are formulae then so are this f bar this one may write negation f this is also a Boolean formula f r g this is what is called disjunction. And then conjunction of two formulae is also a formulae and of course, people might even say this is also a Boolean formulae if f then g that can be. So, this connective is also included in some of the definitions, but anyway we will consider just this much. So, you know all the Boolean formulae which can be defined recursively using these two rules. So, that means any formulae by finitely many applications of these two rules whatever that you get we call them as Boolean formulae. If you want to include these kind of connectives in all that that you can extend this definition and have a Boolean formulae. Now, a formula a Boolean formulae is said to be satisfiable if there is a truth assignment which gives the truth value true to the formulae. You know the truth assignment right. So, in the formulae f the variables from x 1 x 2 x n whatever they are available with respect to that you know how to give for the formula truth value. Because for x 1 x 2 x n the respective values when you are given the possibilities of truth values from 0 and 1 you can have you know 2 power n here 2 power n combinations. And with respect to that f what is the truth value that it will receive you know for all these things 0 say for example, for this 1 likewise. So, there are 2 power n possibilities of truth assignments and at each assignment what is the value that f is receiving. So, these are the values say for example, 1 0 whatever that which we are going to get. Because you know for atomic formulae whatever that you are assigning for negation of x x i if you are giving 0 here negation of x i you are giving 1. And similarly for f or g you know the truth tables like for f and g if you know the truth values you know for f or g this truth table you are aware of. And similarly for f and g for conjunction right. So, this truth tables are known to you. So, that you know for a given formula you know what are the truth what are the possibilities of truth values. Now, we say formulae is said to be satisfiable if there is a truth assignment at least 1 row against to which you should get you know value 1 for f. A formulae said to be satisfiable if there is a truth assignment which gives the truth value true to the formula. Now, what is satisfiable to problem we consider what is the variant of the satisfiable problem. That is I am not worried to give any arbitrary formula I take a formula in c n f conjective normal form what is conjective normal form. Conjective normal form of a formula is of the form it is conjunction of disjunction of literals. Now, what is a literal literal is an atomic formula, literal is an atomic formula or its negation. That means in this present context what I have x is equal to x 1 x 2 x n and now literal is either x i or negation x i. So, these are called literals. Now, a conjunction of disjunction of literals I mean you know formulae should be of the form say for example, x 1 r x 2 you know r x 3 bar and say x 1 bar r x 3 and. So, this is disjunction. So, conjunction of disjunction of literals. So, a formula which is in this form we call it as c n f. Now, satisfiability problem is given a Boolean formula in its conjective normal form whether or not the formulae is satisfiable. Now, I give you in a specific format. Now, we have to verify we have to cross check whether the given formulae satisfiable or not. That problem is called satisfiable problem satisfiability problem let me write it as sat. Now, Cook's theorem states that this problem satisfiability problem is NP complete. What do I suggest? Now, in the routine manner because we were doing how to establish a problem is NP in NP to prove sat is NP complete. Of course, you have to observe the sat is in NP and then we have to observe that sat is NP hard. What do I suggest? You establish sat is in NP because given a certificate which in a polynomial time you should have a polynomial time decision procedure to verify that the given formulae is satisfiable or not. So, that means essentially in our procedure you have to identify a polynomially balanced language which can which can be decided in polynomial time. So, you do that part as an exercise I will in the next lecture I will give a proof or you know I will give a reduction from already established NP complete languages to the satisfiability problem. So, that we can establish that sat is NP hard. So, in this classroom since we have already established few languages some of the variants of N naught also one can work out as classroom exercises. So, I will make use of these things only to establish that satisfiability is NP complete to prove this Cook's theorem in the next lecture.