How do you prove that this TM decides a language that is undecidable? In Sipser's Introduction to the Theory of Computation, there is an exercise that asks to prove $T$ decides $A_{TM}$, which is the language 

$$A_{TM} = \{ \langle M,w \rangle | M \text{ is a TM and $w \in L(M)$}\}.$$

$T$ is a TM defined as follows. On input $\langle M,w \rangle$,


Write the description of a TM $R$ that works as follows. On input $x$,

Run $T_A$ on $x$.
If $T_A$ accepts $x$ then accept.
If $T_A$ rejects $x$ then run $M$ on input $w$ and accept if $M$ does.

Run $P$ on input $\langle R \rangle$, accept if $P$ rejects and reject if $P$ accepts.


Here:


$T_A$ is a TM that decides the language $A$.
$P$ is a TM that can decide the language
$$  Z = \{\langle M\rangle | M\text{ is a TM and } L(M) = A\}. $$   
$ A = \{(0 \cup 1)^a(1 \cup 2)^b(2 \cup 3)^c | a \geq b\} $.


How can you prove that $T$ decides $A_{TM}$ ?
Hint: The exact definition of $A$ is not important; you just need $A \neq \Sigma^*$. When is $L(R) \neq A$? (look at the third line!)