2

$A=\{\langle M \rangle \mid M \text{ is a turing machine and }|L(M)|\geq3\}$

Since Recursive enumerable languages are turing enumerable, so listing of all strings of the language in finite time is possible. Then deciding whether cardinality is greater than 3 should be decidable. But the material that i have been studying says it is partially decidable. Which one is right?

Luke Mathieson
  • 18,125
  • 4
  • 55
  • 86

2 Answers2

3

The language is clearly not decidable; use Rice's theorem. See e.g. our reference question.

We can certainly simulate $M$ on every input by dovetailing and count accepted inputs; if $|L(M)| \geq 3$ our counter hits three after finite time and we accept, otherwise we loop. Therefore, $A$ is semi-decidable.

Raphael
  • 72,336
  • 29
  • 179
  • 389
0

You can make a reduction from the HALTING problem({,w| is a turing machine that halts on w}), using pseudocode:

def R(<M>,w):
    def F(x):
        M(w) //run M on w, if it loops we are rejecting everything
        return x in ('1','2','3')
    return F

For every x in HALTING problem, there is some y in A, such that f(x) = y.

marcove3
  • 81
  • 1
  • 1
  • 5