dragonchild~
You are assuming that same calls the functions it is passed as arguments.
The theoretical same function cannot evaluate its arguments, as it cannot know that its arguments halt. After all,
should be considered the same...
Also, for the purposes of computability "deciding" a problem means that the program must halt with an answer of either "yes" or "no". (Well, classically accepting or rejecting, but that is just semantics).