Where are you forcing the cycle to continue? That would be a valid and possibly novel example of the paradox if you forced that.

Recall the definition of DTM:

DTM(e): if HTM(e) is 1

UTM(e, e) + 1

else

0

and recall that UTM(e, x) is a universal Turing machine that takes the Turing machine description e and interprets it, using x as the contents of the input tape. It basically says that we should create a new "interpreter instance" as it were and simulate the Turing machine described by e with x as its input tape. So UTM(d(DTM), d(DTM)) is the same as starting up a new DTM(d(DTM)) all over again.

So when we get d(DTM) and pass it to DTM itself, i.e. attempt to evaluate DTM(d(DTM)), either of these two things is true:

1. DTM terminates for all possible inputs, i.e. HTM(d(DTM)) is 1, or

2. There exists some input to DTM that will cause it to run forever, i.e. HTM(d(DTM)) is 0.

Assuming HTM(d(DTM)) is 1, then we take the 'if' branch, and which then contains UTM(d(DTM), d(DTM)), which is the same as saying DTM(d(DTM)), leading us back to where we started, It then does not terminate, so HTM(d(DTM)) is not 1. But assuming the opposite, that HTM(d(DTM)) is 0, means we take the 'else' branch, and we terminate printing 0. The DTM essentially behaves just like that smartass Nasrudin in the story.

So then, what are our options, and what does this mean for the theory of computation? We can say that either HTM(d(DTM)) is 0 or 1, meaning that we are saying something obviously false, or we can say that HTM(e) is

*not* a Turing machine and cannot be simulated by one, thus it has no Turing machine description, and any composite machine incorporating it cannot have one either.