This is something that has bugged me for a while, so I hope you can help me.Suppose:$A'$ is the set of all programs,$halt?$ is the halting problem solver,$D$ is the program that is constructed in the proof to show HP is undecidableObviously $halt? \in A'$ and $D \in A'$.$A' - halt? = A$ is the set of all programs except $halt?$ and all programs that uses $halt?$ e.g $D \notin A$.So it seems to me that what Turing's proof shows is that HP is undecidable for the set $A'$. It does not show that it's undecidable for the set $A$. It also seems that every valid program that ever written is in $A$Did I misunderstand something? If not is there any $halt?$ program to decide $A$ or $A$ is also undecidable?EditI think, I didn't say correctly what I meant. and I know that I misused the $X - y$ notation but I hoped you get what I mean.Suppose:$A'$ is the set of all programs,$halt?$ is the halting problem solver that may produce the wrong answer$D$ is the program that is constructed in the proof of HP and instead use my version of $halt?$$A = A' - \text{{D}}$$The\ Halt?$ is the original halt? program in the proof of HP by the same arguments of proof of HP we can prove that $halt?$ give the wrong answer for $D$. so we proved that $halt?$ surely not working correctly for at least one program $D$we now know that $The\ Halt?$ program doesn't exist so $D$ program doesn't compile. so let's exclude it from the set of all possible programnow the question is this: Is the set $A$ is decidable?My understanding is that The HP proof does not say anything about A. 
What Turing's proof of Halting Problem really proves?
computability;turing machines;undecidability;halting problem