Я бы решил это без леммы:
- Рассмотрим h (a), где h (1) = 1 h (2) = 0 h (0) = 0. Применение h ^ -1 на вашем языке, а затем пересечение с 0 ^ * 1 ^ 2 ^ дает вам язык 0 ^ n1 ^ m2 ^ n.
- Теперь используйте h '(a), где h' (0) = a, h '(1) = эпсилон, h' (2) = b. Вы получаете ^ nb ^ n, который не является регулярным.
Почему это проще? Потому что, изучив эти основные приемы, вы легко сможете решить эти проблемы.
Что касается леммы:
- Вам понадобится, чтобы любая подстрока слова в A при использовании в качестве подстроки испортила ваш язык. Я вижу 6 случаев (только 0 с начала, 0 с начала и 1 и т. Д.)
Как уже добавили другие, вам не нужна CF-лемма. CF-лемма используется, чтобы показать, что язык обычно не является CF.