En la teoría de las lenguas formales , el teorema de Myhill-Nerode proporciona una condición necesaria y suficiente para que una lengua sea regular . El teorema lleva el nombre de John Myhill y Anil Nerode , quienes lo demostraron en la Universidad de Chicago en 1957 (Nerode y Sauer 1957, p. ii).
Dado un idioma y un par de cadenas y , defina una extensión distintiva como una cadena tal que exactamente una de las dos cadenas pertenece a . Defina una relación en cadenas como si no hubiera una extensión distintiva para y . Es fácil demostrar que es una relación de equivalencia en cadenas y, por lo tanto, divide el conjunto de todas las cadenas en clases de equivalencia .
El teorema de Myhill-Nerode establece que un lenguaje es regular si y solo si tiene un número finito de clases de equivalencia y, además, que este número es igual al número de estados en el autómata finito determinista mínimo (DFA) que acepta . Además, cada DFA mínimo para la lengua es isomorfo al canónico (Hopcroft y Ullman 1979).
Myhill, Nerode (1957) — (1) es regular si y sólo si tiene un número finito de clases de equivalencia.
(2) Este número es igual al número de estados en el autómata finito determinista mínimo (DFA) que acepta .
(3) Cualquier aceptador mínimo de DFA para el idioma es isomorfo al siguiente:
Generalmente, para cualquier idioma, el autómata construido es un aceptador de autómata de estado . Sin embargo, no necesariamente tiene un número finito de estados. El teorema de Myhill-Nerode muestra que la finitud es necesaria y suficiente para la regularidad del lenguaje.
Algunos autores se refieren a la relación como congruencia de Nerode , [1] [2] en honor a Anil Nerode .
(1) Si es regular. construya un DFA mínimo para aceptarlo. Claramente, si termina en el mismo estado después de pasar por el DFA, entonces , por lo tanto, el número de clases de equivalencia de es como máximo el número de estados del DFA, que debe ser finito.
Por el contrario, si tiene un número finito de clases de equivalencia, entonces el autómata de estado construido en el teorema es un aceptor de DFA, por lo que el lenguaje es regular.
(2) Por la construcción en (1).
(3) Dado un aceptor mínimo de DFA , construimos un isomorfismo al canónico.
Construya la siguiente relación de equivalencia: si y solo si terminan en el mismo estado cuando se ejecuta .
Puesto que es un aceptor, si entonces . Por tanto, cada clase de equivalencia es una unión de una o más clases de equivalencia de . Además, como es mínimo, el número de estados de es igual al número de clases de equivalencia de la parte (2). De este modo .
Ahora bien, esto nos da una biyección entre los estados de y los estados del aceptor canónico. Está claro que esta biyección también preserva las reglas de transición, por lo que es un isomorfismo de DFA.
El teorema de Myhill-Nerode se puede utilizar para demostrar que una lengua es regular demostrando que el número de clases de equivalencia es finito. Esto se puede hacer mediante un análisis de caso exhaustivo en el que, comenzando desde la cadena vacía , se utilizan extensiones distintivas para encontrar clases de equivalencia adicionales hasta que no se puedan encontrar más. Por ejemplo, el lenguaje que consiste en representaciones binarias de números que se pueden dividir por 3 es regular. Dada la cadena vacía, (o ), y son extensiones distintivas que dan como resultado las tres clases (correspondientes a números que dan restos 0, 1 y 2 cuando se dividen por 3), pero después de este paso ya no hay extensión distintiva. El autómata mínimo que aceptara nuestro lenguaje tendría tres estados correspondientes a estas tres clases de equivalencia.
Otro corolario inmediato del teorema es que si para un idioma la relación tiene infinitas clases de equivalencia, no es regular. Es este corolario el que se utiliza frecuentemente para demostrar que una lengua no es regular.
El teorema de Myhill-Nerode se puede generalizar a los autómatas de árboles . [3]