$ L = \langle M \rangle \mid M$ is a turing machine and $ L(M)$ is decidable $ \}$ . How could I show this language is undecidable using the HALTing method?

A language L is undecidable if its not corecognizable and recognizable.

So I wish to show $ $ HALT \leq_m \overline{L}$ $ for not recognizable and

$ $ HALT \leq_m L$ $

Not corecognizable

SHOWING Not recognizable attempt:

`R = "On input <M, w> Construct M1 M1 = "On input x run M on w accept return <M1> `

If $ \langle M, w \rangle \in HALT$ , then M1 accepts all input $ L(M_1) = \Sigma^*$ which is undecidable $ \langle M_1 \rangle \notin L$ as we would want

If $ \langle M, w \rangle \notin HALT$ , then M1 loops on all input $ L(M_1) = \emptyset$ , which is decidable $ \langle M_1 \rangle \in L$ as we would want

After further look into this $ L(M_1) = \Sigma^*$ is actually decidable? How would I do this then. What can I do to M1 to make it return an undecidable TM if M halts on w?