Це пристрій, призначений для доведення того, що дана мова не може належати до певного класу.
Давайте розглянемо мову збалансованих дужок (що означає символи '(' та ')', включаючи всі рядки, які збалансовані у звичайному значенні, і жоден, який не є). Ми можемо використовувати лему про накачування, щоб показати, що це не є регулярним.
(Мова - це набір можливих рядків. Синтаксичний аналізатор - це якийсь механізм, який ми можемо використати, щоб перевірити, чи є рядок у мові, тому він повинен мати змогу визначити різницю між рядком у мові чи рядком поза ним. Мова є "звичайною" (або "безконтекстною", "контекстно-залежною" або якою-небудь іншою), якщо існує звичайний (або що завгодно) парсер, який може її розпізнати, розрізняючи рядки в мові та рядки, не в мову.)
LFSR Consulting надала хороший опис. Ми можемо намалювати синтаксичний аналізатор для звичайної мови як кінцеву сукупність вікон та стрілок, причому стрілки представляють символи та поля, що їх з’єднують (виконуючи роль «стану»). (Якщо це складніше цього, це не звичайна мова.) Якщо ми можемо отримати рядок, довший за кількість вікон, це означає, що ми проходили через одне поле більше одного разу. Це означає, що у нас був цикл, і ми можемо пройти через нього стільки разів, скільки хочемо.
Отже, для звичайної мови, якщо ми можемо створити довільно довгий рядок, ми можемо розділити його на xyz, де x - символи, які нам потрібні, щоб дістатись до початку циклу, y - фактичний цикл, а z - все, що ми потрібно зробити рядок дійсним після циклу. Важливим є те, що загальна довжина x та y обмежена. Зрештою, якщо довжина більша за кількість ящиків, ми, очевидно, пройшли інший ящик, роблячи це, і тому є цикл.
Отже, нашою збалансованою мовою ми можемо почати з написання будь-якої кількості лівих дужок. Зокрема, для будь-якого даного синтаксичного аналізатора ми можемо записати більше лівих парен, ніж є полів, тому аналізатор не може визначити, скільки лівих парен є. Отже, x - це деяка кількість залишених парен, і це виправлено. y - це також деяка кількість лівих парен, і це може збільшуватися необмежено довго. Можна сказати, що z - це деяка кількість правильних парен.
Це означає, що у нас може бути рядок з 43 лівих та 43 правих панелей, розпізнаних нашим синтаксичним аналізатором, але синтаксичний аналізатор не може визначити це із рядка з 44 лівих та 43 правих панелей, який не є нашою мовою, тому синтаксичний аналізатор не може проаналізувати нашу мову.
Оскільки будь-який можливий звичайний синтаксичний аналізатор має фіксовану кількість вікон, ми завжди можемо написати більше лівих парен, ніж це, і за допомогою лемми про накачування ми можемо додати більше лівих парен так, щоб парсер не міг визначити. Отже, мова збалансованих дужок не може бути проаналізована регулярним синтаксичним аналізатором, а отже, не є регулярним виразом.