Please help me understand this proof of the undecidability of "Do two halting Turing machines accept the same language?"
Let $\langle M, w\rangle$ be the input to the halting problem.
We will construct $M'$ that simulates $M$ as you described with $w$ as the predefined input.
As you have said, $L(M')\neq \emptyset\iff M \text{ halts}$. However, we simulated $M$ on $w$, hence $L(M')\neq \emptyset \iff M \text{ halts on } w \iff \langle M, w\rangle\in H_{TM}$ where $H_{TM}$ is the halting problem.
Define the function $f$ that given $\langle M, w\rangle$ will output $\langle M', M_{empty}\rangle$, where $M_{empty}$ is a TM that immediately rejects.
We will have: $\langle M, w\rangle \notin H_{TM} \iff L(M')= \emptyset \iff L(M')\neq L(M_{empty})\iff \langle M', M_{empty}\rangle\in EQ_{TM}$
$f$ is computable, and hence it is a reduction from $\overline H_{TM}$ to $EQ_{TM}$.
$\overline H_{TM}$ is not decidable, and thus also $EQ_{TM}$ isn't decidable