Turing machines are capable of simulation, that is, they can run other models of computation (including other Turing Machines). This method is used often when finding proofs of decidability for certain abstract computational problems, like the equivalence problem for finite state automata.
By the Church-Turing thesis, it is guaranteed that any effectively calculable (finite, specific, step-by-step procedure) can be simulated on a Turing Machine. Now to actually do the simulation requires more work:
- Assume the algorithm/model to be simulated is called . Also assume that we have the TM Encoding of , given by $\langle O \rangl
- Construct a multi-tape TM, , that takes in
- First, ‘pre-process’ the input to ensure it is of the correct form.
- If is a computational model, this would ‘extract’ the transition function from other things, like the state register.
- Then, use a work tape to store that initial configuration of (which is the start state)
- Iteratively run ’s transition function on the work tape
- Assuming halts, this simulating Turing Machine will always halt.