I have these three languages I don't know how to decide whether the language is in R or RE or coRE
L1={<M>| epsilon belongs to L(M)}
L2={<M><w>|M doesn't accept any prefix of w}
L3={<M>|there exists w where M accepts all the prefixes of w}
I have these three languages I don't know how to decide whether the language is in R or RE or coRE
L1={<M>| epsilon belongs to L(M)}
L2={<M><w>|M doesn't accept any prefix of w}
L3={<M>|there exists w where M accepts all the prefixes of w}
For the first two, a technque called dovetailing can help you show that the languages are enumerable. For L_1: given a gödel-numbering of all Turing Machines, compute step 1 of M1(eps), then step 1 of M2(eps), then step 2 of M1(eps), 1 of M3(eps), 2 of M2(eps), 3 of M1(eps) ... in other words an lower left triangle of the coordinate system with "number of steps" and "Turing Machine number x" as axes.
If epsilon is in L(Mx), then it is accepted in a number n of steps. With your method you will detect this, when you reach coordinate [x,n]. This is true for every [x,n], so you can enumerate all of the machines in this way.
Since a word only has a finite number of prefixes, you can also apply this method for L2 by going through a coordinate system like above for each prefix (not sequentially, but also interweaved). So L2 is enumerable, too.
For L3, there exists w where M accepts all the prefixes of w, then this is also true for the string consisting only the first letter of w. So you only need to check it for the finitely many symbols of the alphabet, just like for L2.
As to the recursiveness of the three languages, read for example this answer which treats your L1.