I am trying to understand how the reduction proof for non r.e. languages works by following the examples from this website. In most cases to prove that a language is not r.e., you can reduce the language to the non halting problem which is not r.e. For example, if I have $$L_2 = \{\langle M\rangle\mid M \text{ is a TM and }|L(M)|\leq 3\}\,.$$I construct $\tau(\langle M, x\rangle) = \langle M'\rangle$ such that $M'$ on input $w$: iterases its input, copies $M$ and $x$ to its tape, and runs $M$ on $x$; it accepts if $M$ halts on $x$. Then I prove the reduction is valid (see website)But then if I have the language $$L_4 = \{\langle M\rangle\mid M\text{ is a TM that accepts all even numbers}\}\,,$$I construct $\tau (\langle M, x\rangle) = \langle M'\rangle$ such that$M'$ on input $w$: itruns $M$ on $x$ for $|w|$ steps; it rejects if $M$ halts on $x$ within $|w|$ steps, and accepts otherwise.I know this may sound like a stupid question but beginnings are always hard until you understand the main logic behind it but why does $M'$ need to reject when $M$ halts? Why not accept when $M$ halts like in the first case? 
Non recursively enumerable language proof by reduction to non-HP
turing machines;reductions;halting problem