Reputation: 367
I know this question has been asked earlier, but I honestly don't understand it clearly.
I'm currently undergoing a study about the theory of computation and I'm coming to the terms "Prove that a language is decidable, recognizable or regular".
In simplest term what do they actually mean, and how do we prove such things?
Upvotes: 2
Views: 3963
Reputation: 927
We are talking about a language over an Alphabet
, which means that
(
consists of words that consist of letters from
).
being decidable
means that there exists a Turing machine , such that
will halt and accept for any input word
and halt and reject for any input word
.
being recognisable
means that there exists a Turing machine , such that
will halt and accept for any input word
and halt or not halt (but not halt and accept!) for any input
.
see also Recognizable vs Decidable on MathExchange for the difference.
being regular
means that can be created by regular expressions. It is important to note that these regular expressions in theoretical computer science are different from the RegEx features known in Programming Languages like PERL or Java. In fact, these RegExes are truly more powerful (don’t known if that’s the correct english term) than regular expressions.
A good definition of regular expressions is given here:
and nothing else is a regular expression.
To prove decidability or recognisability, it’s often easiest to provide a Turing machine with the desired attributes. Because of the Church-Turing thesis, any programming language is as powerful as a Turing machine. So in my courses, it was perfectly acceptable to provide an algorithm in a programming language or pseudo code.
Note that any language that is recognisable is also decidable (but not the other way around).
To prove regularity, it’s most of the time easiest to just provide a regular expression that constructs the language. Sometimes a prove is needed that the regular expression really constructs exactly , which is usually not too difficult (often it’s plain obvious).
In many lectures, there is a convention on regular expressions that allows a more intuitive and shorter (but not more powerful) syntax.
It may be interesting to know that regular languages are exactly the languages that can be recognised by finite automatons. Note that any regular language is also decidable (and thus recognisable).
To disprove regularity, I’m just going to mention the pumping lemma for regular languages.
Upvotes: 3