I'm reading theory of computation and I've a question which I don't know where to ask but here,
If DFA M recognizes language A and language B, can we conclude that A = B?
I'm following 2nd edition of Sipser's book, if that's important.
I'm reading theory of computation and I've a question which I don't know where to ask but here,
If DFA M recognizes language A and language B, can we conclude that A = B?
I'm following 2nd edition of Sipser's book, if that's important.
@redstarfish Yes. A DFA either accepts or rejects a given word, and the language it recognises is the set of accepted words.
Therefore, languages A and B are both "the set of words that are accepted by M".
I've found a argument to generate counter examples that show it's not necessary that A = B.
Let C be a language that's union of two languages A1 and A2. Now we construct a DFA M that recognizes the union language.
We'll see that M also recognizes A1 and A2 separately, yet clearly A1 is not necessarily equal to C (A1 is a subset of C).
Similarly, A1 is not equal to A2.
CC: @shakil_tcs
:blobcat_murakamisan_yes: @redstarfish, as both are L(M).
@redstarfish @cnx @shakil_tcs When we say a DFA M "recognizes" a language A, it means M accepts every word in A, and rejects every word not in A.
This means, in your example, M doesn't recognize A1, because it accepts words that aren't in A1 (those from A2 \ A1).
M only recognizes the language C and no other.
You are right. Hopcroft's book makes it clear that for M to recognize language A, it must be A = L(M). If some language B exist which is proper subset of A, then M will accept all the of the strings of B and some more that are not in B. In that case, we'll not say that M recognizes B.
Thanks for your time!
@redstarfish @cnx M doesn't recognise A1, if A1 =/= A2. It recognises A1 union A2. Unless, you define recognising a language to mean just accepting the words in the language.
However, the standard definition is accepting every word in the language and rejecting every word not in the language.
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.