Question is as the title. There is a construction which I do not understand:
Let $\{A_i: i\in \mathbb{N} \}$ be a list of all polynomial time decidable sets in $\mathbb{N}\times\mathbb{N}$.
Then define $f(e,d)$ to be the element in $\{(e,0),(e,1),..., (e,e),(e,e+1)\}$, say $(e,i)$, such that $i$ is the least of {0,1,...,e+1} for which $(e,i)\in A_d$. If such $(e,i)$ does not exist, then set $f(e,d)=(e,e+1)$.
Then define $g(e)=(e,d)\in \{(e,0),(e,1),..., (e,e),(e,e+1)\}$ such that $d \leq e+1$ is the least one that makes $(e,d)$ different from $f(e,0), f(e,1),...,f(e,e)$.
Then $T=\{g(0),g(1),...\}$ is a recursive set which does not have a polynomial time computable subset.
The solution says the idea is that if a subset of $T$, say $T'$ is infinite and decidable in polynomial time, then it must be equal to some $A_i$. But $T'$ only has, for each number $e$, a unique member $(e,d)$ with first coordinate $e$. Then by construction $A_i$ will have for some $e$ two members $(e,d),(e,d')$ with $d\neq d'$. But I don't see why this is true.
Also, I have several basic doubts:
why is it that we are constructing sets of pairs of natural numbers, not sets of natural numbers?
how is the set $\{A_i:i\in \mathbb{N} \}$ recursively enumerable? Or more essentially, how is the set of polynomial time algorithms recursively enumerable?
I hope you can find a cogent argument from the above idea, even if you have to modify some definitions a little.