-1

I have to classify the language L={aˆjbˆkaˆl | l = j * k}.

I applied the pumping lemma for CFL and think that it is not context free. However, to prove that it is in fact recursive or recursively enumerable, would I have to be able to construct a Turing Machine for this language? I'm not certain on how to even begin constructing this. I also don't see a clear way to see if this is undecidable in order to decide it is recursive or RE.

-Is a functional Turing machine necessary to prove it is either of these two? or is just disproving it is context free enough? -how would I approach seeing whether this is REC or RE?

Thanks in advance.

nTn
  • 11
  • 1
  • 2
    Welcome to Stack Overflow. Please take the [tour] to learn how Stack Overflow works and read [ask] on how to improve the quality of your question. Then check the [help/on-topic] to see which questions are on-topic on this site. You might want to delete this question and ask it on https://cs.stackexchange.com/ instead, but check the help pages there first. – Progman Sep 04 '22 at 16:24

1 Answers1

1

We can show it's not context-free by taking the string a^p b^p c^(p^2) and arguing that the only possible placement of uxv must span the b's and c's (otherwise you'd be increasing just one of the numbers of the equation, or else you'd be changing the multiplicands but not the product)... next point out that by increasing the b's by at least one you must then increase the c's by at least p but cannot since |uxv| <= p (since |u| is at least 1, |v| is at most p - 1).

To show that the language is recursive, you can construct a TM that decides the language. Or, even easier, you can rely on the Church-Turing thesis in the abstract (or else on some more specific result if you're being picky) and show the problem is decidable in any computing system you can think of (C++, LISP, whatever) and argue that because these systems are no more capable than TMs, the problem must be similarly decidable by TMs.

(A TM to decide this is not too hard... just take any problem with exactly one a and see if the number of b's equals the number of c's; otherwise, if there are multiple a's, reduce the number of c's by the number of b's and cross off an a, and repeat).

Patrick87
  • 27,682
  • 3
  • 38
  • 73