Let A and B be DFAs. Let M be a Turing Machine that decides EQdfa. The algorithm for M would be as follows. Count the number of nodes in A Count the number of nodes in B Compare the number of nodes in A and compare it to the number of nodes in B. Take the maximum node count and square it. We will call the squared node count n. simulate A and B in turn giving them all the strings up to length n and compare the results. if the results are the same accept if the results are different, reject. The length of n being the square of the largest number of nodes works because this ensures that each of the DFAs use loops they more than likely have. If the accepted strings are the same when the loops are used, giving the machines a longer string will just send the DFAs into the loops for a longer period of time before accepting or rejecting.