En la teoría de los lenguajes formales , el teorema de Myhill-Nerode proporciona una condición necesaria y suficiente para que un lenguaje sea regular . El teorema recibe su nombre de John Myhill y Anil Nerode , quienes lo demostraron en la Universidad de Chicago en 1957 (Nerode & Sauer 1957, p. ii).
Dado un lenguaje , y un par de cadenas y , defina una extensión distintiva como una cadena tal que exactamente una de las dos cadenas y 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 (AFD) mínimo que acepta . Además, todo AFD mínimo para el lenguaje 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 aceptor DFA mínimo para el lenguaje es isomorfo al siguiente:
En general, para cualquier lenguaje, el autómata construido es un autómata que acepta estados. 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 terminan en el mismo estado después de ejecutar 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 tanto el lenguaje es regular.
(2) Por la construcción en (1).
(3) Dado un aceptor DFA mínimo , construimos un isomorfismo al canónico.
Construya la siguiente relación de equivalencia: si y solo si terminan en el mismo estado al ejecutarse a través de .
Dado que es un aceptor, si entonces . Por lo tanto, cada clase de equivalencia es una unión de una o más clases de equivalencia de . Además, dado que es mínimo, el número de estados de es igual al número de clases de equivalencia de por la parte (2). Por lo tanto .
Ahora bien, esto nos da una biyección entre los estados de y los estados del aceptor canónico. Es 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 puede utilizarse para demostrar que un lenguaje es regular , demostrando que el número de clases de equivalencia de es finito. Esto puede hacerse mediante un análisis exhaustivo de casos en el que, a partir de 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 pueden dividirse por 3 es regular. Dada la cadena vacía, (o ), , y son extensiones distintivas que dan como resultado las tres clases (que corresponden a números que dan como residuo 0, 1 y 2 cuando se dividen por 3), pero después de este paso ya no hay más extensiones distintivas. El autómata mínimo que acepta nuestro lenguaje tendría tres estados correspondientes a estas tres clases de equivalencia.
Otro corolario inmediato del teorema es que si para un lenguaje la relación tiene infinitas clases de equivalencia, no es regular. Este es el corolario que se utiliza con frecuencia para demostrar que un lenguaje no es regular.
El teorema de Myhill-Nerode se puede generalizar a los autómatas de árbol . [3]