Consider the set $\{p:U(p,0)\text{ is defined}\}$ where $U$ is a universal function. I'm trying to understand the following sketch of proof of the fact that this set is not solvable.
The first claim is that from a program $q$ one cooks up a program $p$ so that $U(p,0)=U(q,q)$. I'm already lost at this point, what is $q$? Is it a variable? So is the author saying "define a function $G: N\to N, q\mapsto G(q)=p$ so that $U(p,0)=U(q,q)$? Or is something else going on?
The proof proceeds by clarifying how to do this. The program $p$ is defined as follows:
const. $q= ....;$
return $U(q,q)$
So this program, regarless of the input, just runs the program that computes $U$ on the pair $(q,q)$, resulting in $U(q,q)$ (if it's defined; if not, I guess it will work forever). But I don't understand how it follows that $U(p,0)=U(q,q)$. We only know that $U(q,q)$ is the result of the application of the program $p$ on any argument.
Further, it is said that passing from $q$ to $p$ is a computable operation. Assuming that we know what $q$ is (that was my first question above), why is it computable and why do we care about it?
Finally, it is said that we know that it's not decidable if $U(q,q)$ is defined, and therefore it is not decidable if $U(p,0)$ is defined. This looks too vague to me, maybe because I don't understand why we care about this correspondence $q\mapsto p$. Why not $p\mapsto q$?