 We should be very clear about the notion of acceptance by a Turing machine because this is somewhat this notion is somewhat different from the notion of acceptance as we were familiar in case of finite state machine. Recall what we said about a string being accepted by a Turing machine. So, we said that the configuration initial configuration was the Turing machine was in the initial state q 0 and scanning the left most symbol of the input string let us say the input string is x. Then we said that in if 0 or more steps from this configuration the Turing machine goes to a configuration alpha p beta where p is an accepting halting state all accepting states will by definition will make them halting. So, when we say the machine enters an accepting state you know at that time the machine has decided that it is going to accept the string therefore, there is no reason for the Turing machine to operate any further. So, when from an from the initial configuration it reaches a configuration where the state is an accepting which is halting state then we say if such a thing is possible then we say that the input x is accepted by the Turing machine name said to be accepted by the Turing machine. And we also used the word rejected a string is rejected by a Turing machine. What does rejection of a string mean? Rejection is a word which is equivalent to the string is not accepted. String is not accepted means that this situation will not come about. Now, you can see that non acceptance or rejection can happen in two ways can happen in two ways. And what are these two ways? One the machine enters a state which is halting, but not accepting. TM enters a non accepting halting state that is after some time on the input the Turing machine enters a state from there no further computation will occur and that particular state is not an accepting or a final state. In that case of course, this situation has not happened and therefore, that input string is not accepted or rejected. However, there is yet another way a string can be not accepted or rejected and that is Turing machine invokes a non terminating computation. What do we mean by this? That the Turing machine keeps on working and it never comes to a halting state and therefore, it has not reached an accepting state which by definition is halting. And the work of the Turing machine goes on forever, but in that case this situation would not have occurred and what is that situation? In 0 or more steps which is always finite can be arbitrarily large in some number of steps the machine reaching a final accepting state. So, in this situation again this will not come about and therefore, the input is not accepted or another way of saying that is input is rejected. The point I am making is important that acceptance of a string is an event in the sense that the string invokes a computation which finally, reaches a state which is accepting and halting. Whereas, non acceptance need not be a definite event in the sense a definite one this corresponds to non acceptance by a definite event that it has reached a state which is a non accepting but halting state. So, at that time the Turing machine would know that the input string is not accepted, but on the other hand if that is this is the case that happens Turing machine goes on working goes on working. So, there is not a definite event by which one can say that the Turing machine would know or you would know if you are just looking at the process of the computation of the Turing machine that the string is rejected. So, the point is acceptance is a definite event what is that event and that event is the Turing machine reaching and accepting halting state. This reaching and accepting halting state is a definite event. So, therefore, acceptance is a definite event whereas, non acceptance need not be a definite event and that is the case when the machine invokes a non terminating computation. Just to illustrate this point let us take a very trivial example of let us say the language all blocks of one strings which have length even this is the language L. It is a very simple Turing machine to accept it or to recognize this language L in this case in this state if you see a blank then you fault you know and not accept. Remember what input would have been written like this that there is a block of one flanked by blanks on both directions and if you start the Turing machine here you just trace you know starting from here it sees the first one it does not change it, but moves to the right and so on it sees here this one in this state and it again does not change this one, but moves to the right and finally, it will be here in this state and here it is seeing a one. So, what is going to happen this one it was here it has come here and this one it is here and going there and so on and after some time it is going to see blank. Now in the beginning if there was if the string was 0 length 0 then of course, it sees blank and it should halt and accept because that means n is equal to 0. On the other hand if there is basically a string of length even length drives the machine here string of length odd will drive the machine finally, here and at this after moving to the right if it sees a blank then it knows the string that it has seen is odd and therefore, it will halt and not accept and in this case if it sees the end of the input which is a blank symbol it knows that it has seen what it has seen as an even length string and the input is over and therefore, it should halt and accept. In this trivial example both acceptance and non acceptance they are definite event right because when it accepts of course, acceptance we said is always a definite event it halt and accept, but here when it is not accepting a string it is halting, but not accepting. Now suppose what we do here is that here instead of halt and not accept we make the machine going to an infinite loop and that can be something like this. So, what happens after it has seen an even number of odd now sorry odd number of once it will be here we will see a blank and therefore, it will go to this state it will move to the right and again of course, it sees a blank because everything was blank here it keeps the blank symbol as such goes to the left and then it will again see a blank it again does not change that blank symbol goes to the right. So, it just goes on in this loop infinitely on and on and on and on. Now here what is happening on an string of length even the machine is will halt in an accepting state on an string of once which is of length odd the machine is going into an infinite loop. What is the language this particular Turing machine recognize or accept clearly the strings which take the machine to the halting and accepting situation here those are the strings which are in the language accepted by the Turing machine. So, that is same as the one before whereas, here it is doing some non-terminating computation on strings of length odd, but that does not change the situation. So, far as the strings of even length are concerned my point is even this machine which is invoking an infinite computation on strings which are not accepted this particular machine also accepts this same language. So, the two machines although you know this is slightly silly way of doing this, but it is perfectly all right to claim that this machine is also a machine which accept this particular language. So, therefore, as you can see that the non-acceptance or rejection of the string of length odd strings which are not in the language in this trivial example those are strings which are of length odd and they invoke finally, an non-terminating computation. So, that is fine, but even then those strings are not accepted because these strings these odd length strings do not come to this situation where the machine goes into a halting and accepting. So, we have clearly need to understand this particular point is one more point I would like to make here and then go over to generalizations and restrictions of our basic model and that is the point I am saying is this is of course, the convenient way of representing a Turing machine, but we have said formally a Turing machine is what formally a Turing machine is a number of things basically it is a tuple that is the way you say what something formally is that the Turing machine is a tuple consists of set of states and you know tape alphabet input alphabet then transition function then a special symbol blank this is the symbol which is initially there in most of the tape cells except the tape cells except the part which are occupied by except those cells which are occupied by the input and what else do you need to specify a Turing machine you must say where would the Turing machine start which state the Turing machine would start in. So, this is the initial state and we must say also which are the final accepting halting states. So, I will not say again and again accepting final halting states because we assume always that a final or an accepting state is a halting state. So, let me just simply say these are final states or also equivalently you call them accepting states. So, I would like to make sure that although informally we describe Turing machines simple Turing machines using diagrams like this transition diagrams like this formally will represent Turing machines through such a tuple by definitely specifying what the set of states are what is the tape alphabet and so on. Remember that this is a finite all these are finite entities because this is for a particular Turing machine the set of states is finite and so on. So, let us take this particular example and work out so that we are absolutely clear that the formal way of specifying a Turing machine by means of such tuples and then elaborating each one of them separately and a diagram like this they are not you know you can go from one to another. So, what would you say set of states of this machine if you say this machine is M we can clearly see that we have of course these four states, but also there was another state here which is the halt which really stood for the final halt or accepting state in which of course you halt. So, suppose I name this as q 0 this as q 1 this as this state which is the halt and accept as q 2 q 3 q 4. Now basically we are saying that or quick by the set of states q will be q 0 q 1 q 2 q 3 q 4 and the tape alphabet consists of in this example. Remember what we had initially was just a block of 1s flanked on both sides by blanks. So, and we are not writing anything other than 1 or blanks this even a blank you write blanks that is and this is it. So, the tape alphabet consists of 1s and blanks input alphabet input was a string of 1s only. So, input alphabet is just 1s and then consists of the symbol 1 and now delta. Delta you have to specify by given by giving the map which you tell me given a present state and given the symbol being scan what will be the next state etcetera. So, we can see delta I can specify by means of a table the table of quintuple and given something like this present state present symbol next state symbol written and move direction of move. So, just to be very clear for this if the present state at q 0 in q 0 if you see a 1 then you move to state q 1 and you write of course do not change that symbol to anything else we write it as 1 itself and you move to the right. So, this is the arrow which corresponds to this arrow corresponds to this row of this table in q 0 you can see a blank if you see a blank what do you do you go to this halt and accept state which we are calling it q 2 and the and move in which direction maybe you just move right it does not matter and so on you can fill up this table. So, only thing if q 2 since we are taking q 2 as our halt state that means from here nothing happens. So, there will be no quintuple with q 2 in this column that means once we reach q 2 then the Turing machine has nothing to do and therefore, another way of saying is that it halt. So, all I am trying to say in this that the way this was a finite object this diagram and this had all the information corresponds to giving a very formal way of specifying a Turing machine. So, like this arrow which coming from nowhere into this state q 0 it signifies that q 0 is the initial state which we have to mention here right. What is the special symbol that is not really written here I mean from this diagram you cannot really make out may be that what is the symbol which is there initially for most of the cells and that is one limitation of such a diagram but you can otherwise specify that the symbol blank is what will be there in the most of the cells in the beginning all the cells except where the input is present. We are kind of assuming that the input alphabet does not itself contain blank without any loss of generality. Now, from here now that we understand acceptance and non acceptance of a Turing machine clearly and also we understand informal definition and formal definition of a Turing machine by means of you know specifying all these tuples at this particular tuple and then specifying individually each one of these. These are all each one of this is a finite object like this delta which is the transition function is a finite table. We made the point why it will be a finite table simply because both set of states and the tape alphabet these are finite sets. Therefore, it cannot have more than cardinality of q multiplied by cardinality of gamma rows here it cannot have more than so many more rows than cardinality of q multiplied by cardinality of gamma and therefore, this table is also going to be finite. So, Turing machine is a finite object whether you can represent it by means of a diagram like this or by means of more formally a table and tuple in any case the point I am making and I am hope it is absolutely clear that one particular Turing machine is a finite object. So, now from here we will look at certain generalizations or restrictions of Turing machines or basic Turing machine model and argue that neither though the generalizations nor certain restrictions make any difference so far as the language recognition capability of our of Turing machines are concerned. So, just to get back to the motivation we defined a class of languages called recursively enumerable languages and we said a language is recursively enumerable or for short a language is R E if there is a Turing machine to recognize that language and our Turing machine is was module was you know that basic Turing machine model that it has a tape which is going on to infinity in both directions and there is a finite control with finite states it can the machine can move up and down changing states changing symbols and sales and so on and we would ultimately like to claim that by means of whatever algorithm that you may think of you cannot ever recognize a language which is not recursively enumerable and also will claim the other way that if you if a language is recursively enumerable then that language decision problem at least where given a string whether it is if it is accepted we can have an algorithm which will halt and say the string is accepted. So, basically we would like to as I said right in the beginning in our discussion of Turing machines that we would like to equate the informal notion of algorithm with notion of Turing machine computability. So, therefore, the question which becomes important is that you know we are working with we have this we have defined this this particular model which we may call the basic Turing machine model. So, the question which might arise very naturally is the look may be that if you change this model a little bit without intuitively losing the idea of effectively doing computation may be then the class of languages which are recognized by you know changing the basic model will be different from this class. So, in that case this class will not be robust in fact what should we do to convince ourselves that this is a good enough model we do not need to think of any restrictions or any generalization which are natural enough. So, you may say or the point we are trying to prove is the robustness of the basic Turing machine model. So, two things we can do to the basic Turing machine model either we can you know add some extra capabilities or restrict some capabilities. So, what I am saying is suppose we do this to our basic Turing machine model and then find suppose then find that whether we add some extra capabilities or whether we restrict some capabilities you know some natural things we do not want to do something very unnatural once on the basic Turing machine model then the new machine the class of machines that we get do not change the class of languages accepted in that case we can claim that this set of or this class of languages defined through our basic Turing machine model is a good class because you know changing small things here and there do not make any difference to the class of languages which are or which is recognized. So, first of all we will try to add a few capabilities to the basic Turing machine model this is model and let us see what we get you know we are talking about tape and in our basic Turing machine model the tape you may say has a single track in the sense the tape consist of you know an array or just arrangement of linear arrangement of cell and each cell can have exactly one symbol, but you might have known you might be knowing about you know real life tape devices and there people talk about talk of tracks that a tape has not just such tapes are not just a linear arrangement of cells which can contain exactly one symbol, but the kind of picture that we will have for a multi track tape will be something like this, this is four tracks and each track is like this thing this tape right. So, you may have a symbol a 1, a 2, a 3, a 4. So, basically on the four tracks this is a four track tape you can have different symbols occurring at different tracks and then what is your read write head would do suppose instead of a single track Turing machine we had a four track tape Turing machine. Now, you can see it is reasonable that if this is my read write head and that is what happens in real life tape with multiple tracks simultaneously the read write head will read all the four tracks. So, if the tape head is here it is going to read all these four symbols the machine is in some particular state and depending on the contents of these four cells it will make its move and that move will consist of changing into a new state, writing symbols here in this four cells and then moving the head either one step to the left or one step to the right. So, in other words what we are describing is a multi track Turing machine. We have added an extra capability to our basic Turing machine model the basic Turing machine model had only a single track in its tape, but in a multi track Turing machine we have several tracks in this particular example picture the tape has four tracks. We are now considering therefore, what we call multi track Turing machine how do we specify the transition function of a multi track Turing machine. Remember what such a multi track Turing machine would do in a single state that it will be in a certain state at a certain time. So, that is the present state it will be reading four symbols in this particular example on the four tracks because the read head is here. So, let us say it is reading sigma 1, sigma 2, sigma 3, sigma 4 these are the four symbols it is reading and supposing the machine is in state q. So, it is reading on the four tracks sigma 1, sigma 2, sigma 3 and sigma 4. Now, what would such a machine do its transition function must specify what will be the next state. If on track 1 you are reading sigma 1 on track 2 you are reading the symbol sigma 2 on track 3 you are reading the symbol sigma 3 and on track 4 you are reading the symbol sigma 4. So, in such a case may be the next state is p and symbols written it must specify may be just say that sigma 1 this is change to sigma prime sigma 2 prime sigma 3 prime sigma 4 prime. So, it will obviously have the it make sense to say that it can simultaneously change all these four symbols. So, those are the four symbols changed and then the move so, this entire this head which reads all the symbols in all four tracks simultaneously either will move one step to the left or one to the right. So, let us say it moves to the in this case for example, let us say it moves to the right. Now, this is of course, different from our basic model because our basic model there was only one track and. So, therefore, it could read only one symbol at a time. If you know it is kind of obvious if you think like this you just see this that suppose instead of thinking of all these four symbols being different I mean different symbols of course, they may be different, but what I mean is thinking of this as a four two instead of thinking of this thing as a four tuple suppose I think of it as a single entity coding this four tuple. So, let us see what I mean is that supposing I have a code which will code or which will have a single symbol for all possible I mean for every four tuple of symbols of the gamma that is the tape alphabet of the multi track machine imagine you are defining a gamma prime which is basically you have a single symbol single distinct symbol for every such four tuple. So, let us instead of four I can illustrate more simply the basic idea by just two tracks and the point is not lost because you can just whatever I will do for two you can do it for four. So, let us say you had and the your tape alphabet gamma was just let us say zero one and of course, we have blank always and that is the you know special symbol. So, supposing you had only two tracks then on this what all symbols which can occur which you can have zero zero zero one one zero one one and you can have zero blank then you can have blank zero then you can have blank blank and anything else obviously you would also see zero zero is taken care of. So, that is fine. So, two blanks and similarly you would have you know one and blank supposing one one which is there already. So, one blank blank one and blank blank taken care of. So, suppose you say you code this as a right this as a this as b this as c this as d this as e this as f this as g and this as h and this as i. So, now imagine if I had a tuple like for this two track machine q you know something like let us say zero blank p blank blank q conceptually you can think of to represent this tuple as this five tuple quintuple as q for zero blank we had symbol e it goes to state p for blank blank we had the symbol symbol g and of course, I should say what is the move here I should say this let us say move to the right. So, it we move to the right now this way therefore, just by changing the alphabet see here originally the two track machine had zero one and blank and here I have q e p g r etcetera. Now, this is the quintuple corresponding to that and so, I have changed the alphabet set input alphabet not input alphabet the tape alphabet from zero one blank to this. Now, what is the new blank symbol or what will be blank here you may say g is the blank because you know you would assume a blank means on blanks on both the tracks. So, g will act as the special symbol which will be there most of the places and initially may be the input is written on one track other tracks are blank which is fine I can take care of this way. So, what I am saying is that a single step of a multitrack touring machine like this can be taken care of by a basic touring machine model machine by extending the alphabet set. So, here originally you had zero one blank and here we have a b c d s g also we had something more right h and i. So, you are original alphabet for the multitrack machine and three symbols and you have here so many other symbols and that takes care of that. Therefore, it is now should be fairly simple to convince ourselves that if one could recognize a language by means of a multitrack touring machine by essentially changing the alphabet set the tape alphabet set I can do whatever the multitrack touring machine was do by a basic touring machine model. So, therefore, adding the capability of having multiple tracks on the tape does not really add to the recognition capability. In the sense what are the languages which can be recognized that class of languages that class of languages will not change just because from a single track you had multiple tracks. So, this is one possible generalization that one could think of and we have found that it need not or it will not change the definition of the class of languages recognized by touring machine. So, now, let us make a slightly more interesting generalization and that generalization is that instead of one tape by the single track or multitrack that does not matter because multitrack corresponds to I mean I can simulate by a single track that I know. However, if we had more than one then can we do something with a single tape we cannot do. So, what we are going to discuss now is multitaped touring machine multitaped touring machine. So, multitaped touring machine let me make the simplest case for multitaped touring machine that it has two tapes consider a touring machine which has two tapes there is of course, we will assume that each tape is as this for two infinite tape and there is of course, one you know as usual finite control of the touring machine which basically means the touring machine this black box or whatever you call it can stay in number of states is finite of course. Now, it is possible since there are two tapes this device must have the capability of reading from both the tapes and changing. So, therefore, we need to have in this case two read write heads one read write head for tape one the other read write head is for tape two. So, imagine at some point of time this one tape one the cell which the tape one read head is reading is a and let us see the tape to read write head is reading the symbol b. What happened what is the transition one step transition of such a touring machine. So, again let us see what is the current you know scenario this as we are seeing in this picture let us see the machine is in state q to present state is q and symbol in tape one is a symbol being read in is b. Now, you expect that the machine in state q depending on what symbols it sees in tape one and what is the symbol it sees in tape two it will make a decision about which is this next state it should go to. So, it is corresponding to move will be you know will be specified by saying what is the next state which is let us say next state is p. Now, you have to also say what are the symbols that the machine would write in tape one and in tape two. So, we say tape one symbol written in tape so let us say it writes a prime here and writes b prime here some other symbols to b is change to b prime in this tape a is change to a prime in this state and now the move. But you see there are two heads two read write heads and obviously a single move will restrict supposing we just say left then we would mean that both the heads must move to the left or if we just say write you know you may do you want to restrict that both head one and head to move in the same direction. No, since we are talking of generalizing the capability of Turing machine these moves can also be independent in the sense one can move to the left other can move to the right this can move to the right this can move to the left or both can move to the left both can move to the right. So, we will see tape one head move and tape two head move. So, this may be tape one will move head will move to the left and tape two head will move to the right you see a move of a two tape Turing machine to describe it we need such a tuple. The present state what are the symbols which the machine is reading on the two tapes depending on these three pieces of information the machine must say what is the next state it will go to what are the two symbols it would write on the two tapes and what are the directions in which the two heads will move. Now, it seems we have got an interesting generalization can we also like we did for multi track case can we also take care of such generalization by means of our single tape Turing machine. So, again please be very careful in what what is our objective we have defined another way in another way Turing machine the Turing machine which has two tapes our question is that can there be a language which is recognized by such a machine which cannot be recognized by a single tape basic Turing machine model. So, that is the question we would like to answer so the let me write the question clearly that can a multi tape Turing machine can recognize a language no single tape Turing machine can can a multi tape Turing machine recognize a Turing recognize a language which no single tape Turing machine can recognize. If the answer is positive if the answer is positive to this question then of course it means that we will have a bigger class of languages recognized by multi tape Turing machines than the class of languages recognized by single tape Turing machine. What will prove when again not to you know it is the proof is not to difficult the answer is no so again our single tape Turing machine is good enough if we focus our attention to single tape Turing machine that is good enough.