Вы можете просто использовать насосную лемму для обычных языков. В основном это говорит о том, что если вы можете найти строку для любого заданного целого числа n и любого разбиения этой строки на xyz так, чтобы | xy | <= n и | y | > 0, то вы можете накачать часть y строки, и она должна остаться на языке, это означает, что если xy ^ iz это не на языке для некоторых i, то язык не является регулярным.
Доказательство выглядит следующим образом, своего рода доказательство противника. Предположим, кто-то говорит вам, что этот язык регулярный. Затем спросите у него число n> 0. Вы строите удобную строку длиной больше n и даете противнику. Он разбивает строку по x, y z любым удобным для него способом, если | xy | <= п. Затем вам нужно прокачать y (повторить это i раз), пока не найдете строку, которая не на том же языке. </p>
В этом случае я говорю вам: дайте мне n. Вы исправляете. Я говорю вам: возьмите строку «a ^ n b ^ {n + 2}» и скажите, чтобы вы ее разбили. Любым способом, которым вы можете разбить эту строку, вы всегда должны будете сделать y = a ^ k с k> 0, так как вы вынуждены сделать | xy | <= n, и моя строка начинается с ^ n. Вот хитрость, вы даете противнику строку, чтобы любым способом, которым он может разбить ее, он дал вам часть, которую вы можете прокачать. Так что теперь мы качаем y, скажем, 0 раз, и вы получаете «a ^ m b ^ {n + 2}» с m <n, чего нет на вашем языке. Готово. Мы также можем прокачать 1 раз, n раз, n! Факторное время, все, что вам нужно, чтобы оно покинуло язык. </p>
Доказательство этой теоремы повторяется, говоря, что если у вас есть регулярный язык, то у вас есть автомат с n состояниями для некоторого фиксированного n. Если строка содержит более n символов, она должна пройти некоторый цикл в вашем автомате. Если мы назовем x часть строки перед входом в цикл, а y часть цикла, ясно, что мы можем качать y столько раз, сколько хотим, потому что мы можем продолжать работать в цикле столько раз, сколько мы хотим и результирующая строка должна быть на языке, потому что она будет распознаваться этим автоматом. Чтобы использовать теорему для доказательства нерегулярности, поскольку мы не знаем, каким будет предполагаемый автомат, мы должны оставить противнику возможность выбора для n и для положения цикла внутри автомата (не будет автомат, но вы говорите противнику что-то вроде: осмелитесь дать мне автомат, и я покажу вам, что он не может существовать.)