To urządzenie, które ma udowodnić, że dany język nie może należeć do określonej klasy.
Rozważmy język zrównoważonych nawiasów (oznaczających symbole „(„ i ”)”, z uwzględnieniem wszystkich łańcuchów, które są zbalansowane w zwykłym znaczeniu, i żadnego, które nie jest). Możemy użyć lematu o pompowaniu, aby pokazać, że to nie jest normalne.
(Język jest zbiorem możliwych ciągów. Parser jest rodzajem mechanizmu, którego możemy użyć, aby sprawdzić, czy ciąg jest w języku, więc musi być w stanie odróżnić ciąg w języku lub ciąg na zewnątrz język. Język jest „zwykły” (lub „bezkontekstowy”, „kontekstowy” lub jakikolwiek inny), jeśli istnieje regularny (lub jakikolwiek) parser, który może go rozpoznać, rozróżniając ciągi w języku i ciągi nie w język.)
LFSR Consulting dostarczyło dobry opis. Możemy narysować parser dla języka regularnego jako skończony zbiór ramek i strzałek, ze strzałkami reprezentującymi znaki i łączącymi je prostokątami (działającymi jako „stany”). (Jeśli jest to bardziej skomplikowane, nie jest to zwykły język). Jeśli możemy uzyskać ciąg dłuższy niż liczba pól, oznacza to, że przeszliśmy przez jedno pole więcej niż raz. Oznacza to, że mieliśmy pętlę i możemy ją przeglądać tyle razy, ile chcemy.
Dlatego w przypadku zwykłego języka, jeśli możemy utworzyć dowolnie długi ciąg, możemy podzielić go na xyz, gdzie x to znaki, których potrzebujemy, aby dostać się na początek pętli, y to rzeczywista pętla, a z to cokolwiek trzeba sprawić, aby ciąg był ważny po pętli. Ważne jest to, że całkowite długości x i y są ograniczone. W końcu, jeśli długość jest większa niż liczba pudełek, oczywiście przeszliśmy przez inne pudełko, robiąc to, i tak jest pętla.
Tak więc w naszym zrównoważonym języku możemy zacząć od napisania dowolnej liczby lewych nawiasów. W szczególności dla danego parsera możemy napisać więcej lewych parenów niż jest pól, więc parser nie może powiedzieć, ile jest pozostałych parenów. Dlatego x to pewna ilość lewych parenów i to jest naprawione. y to także pewna liczba lewych parenów, która może rosnąć w nieskończoność. Można powiedzieć, że z to pewna liczba prawidłowych parenów.
Oznacza to, że możemy mieć ciąg 43 lewych i 43 prawych znaków rozpoznanych przez nasz parser, ale parser nie może tego stwierdzić z ciągu 44 lewych i 43 prawych, co nie jest w naszym języku, więc parser nie może przeanalizować naszego języka.
Ponieważ każdy możliwy regularny parser ma stałą liczbę pól, zawsze możemy napisać więcej lewych parenów niż to, a dzięki lematowi o pompowaniu możemy dodać więcej lewych parenów w sposób, którego parser nie może stwierdzić. Dlatego wyważony język nawiasów nie może być analizowany przez zwykły parser i dlatego nie jest wyrażeniem regularnym.