In: Computer Science
Show that the following language is decidable APDA = { | M is a push down automata that accepts string w} Explain your steps.
APDA = { M | M is a push down automata that accepts string w }
APDA is a language which contains encoding of Mi and Wi where each Mi is a Push Down Automata (PDA) . The encoding of Mi and Wi means the representation of PDA and the string in binary values 0 (or) 1. This concept is same as the one used in Universal Turing Machine (UTM). So APDA can be understood as :
APDA = { <M1,W1>, <M2,W2> , <M3,W3> , <M4,W4> , <M5,W5> , .............................. }
Here <M, W> represents that PDA M accepts the string W. To determine whether a string is acceptable by a language or not the following steps should be done
For steps 1,2 and 3 algorithms are already mentioned. All these algorithms take finite time. Either it is DPDA (or) NPDA, same three steps will have algorithms.
For a language to be decidable, it should be acceptable by a Halting Turing Machine (HTM), which is a type of TM that says whether the given string is acceptable by the TM or not . If the string is acceptable it says 'Yes' else it says 'No' unlike normal TM. Here also, the HTM will be programmed with three algorithms each corresponding to the steps above and each encoding will be given as an input. Then HTM determines whether M accepts W or not in finite amount of time. It can be visualized as :
For each and every string of APDA , algorithms are present to perform required action. So every string of APDA when given to HTM will give a valid result (yes or no). So APDA is decidable .