Twierdzenie Myhilla-Nerode’a

Twierdzenie Myhilla-Nerode’a – twierdzenie w teorii języków formalnych podające konieczne i dostateczne warunki na to, by dany język był regularny. Zostało udowodnione w 1958 roku przez Johna Myhilla i Anila Nerode’a.

Twierdzenie

Niech L {\displaystyle L} będzie językiem nad alfabetem Σ . {\displaystyle \Sigma .} Zdefiniujmy relację sufiksowej nieodróżnialności R L Σ × Σ {\displaystyle R_{L}\subseteq \Sigma ^{*}\times \Sigma ^{*}} następująco: ( w , v ) R L {\displaystyle (w,v)\in R_{L}} wtedy i tylko wtedy, gdy dla każdego słowa u Σ , {\displaystyle u\in \Sigma ^{*},} w u L {\displaystyle wu\in L} wtedy i tylko wtedy, gdy v u L . {\displaystyle vu\in L.}

Twierdzenie Myhilla-Nerode’a orzeka, że język L jest regularny wtedy i tylko wtedy, gdy relacja R L {\displaystyle R_{L}} dzieli Σ {\displaystyle \Sigma ^{*}} na skończenie wiele klas abstrakcji. Dodatkowo, jeśli L jest regularny, to liczba stanów minimalnego deterministycznego automatu skończonego rozpoznającego L jest równa liczbie klas abstrakcji relacji R L . {\displaystyle R_{L}.}

Nieformalnie, jeśli język L jest regularny, to klasy abstrakcji relacji R L {\displaystyle R_{L}} odpowiadają stanom automatu skończonego rozpoznającego L. Innymi słowy R L {\displaystyle R_{L}} „skleja” ze sobą słowa, których „przyszłości” z punktu widzenia zachowania automatu są identyczne. Intuicyjnie, jeśli klas abstrakcji jest nieskończenie wiele, to automat rozpoznający L musiałby mieć nieskończenie wiele stanów, co jest niemożliwe.

Przykłady

  • język L = a n b n {\displaystyle L={a^{n}b^{n}}} nie jest regularny – rozpatrzmy bowiem dwa słowa: a k b k {\displaystyle a^{k}b^{k}} oraz a k + c b k + c {\displaystyle a^{k+c}b^{k+c}} dla c 1. {\displaystyle c\geqslant 1.} Jeśli teraz podstawimy w = a k b k {\displaystyle w=a^{k}b^{k}} oraz v = a k + c b k {\displaystyle v=a^{k+c}b^{k}} to sufiks (postfiks) u = b c {\displaystyle u=b^{c}} rozróżnia te dwa słowa, gdyż w u L {\displaystyle wu\notin L} oraz v u L . {\displaystyle vu\in L.} Zatem relacja R L {\displaystyle R_{L}} ma zatem nieskończenie wiele klas abstrakcji, czyli L nie jest regularny.