Изменения
→Поиск ε-порождающих нетерминалов
''Выход''. Множество <tex>\varepsilon</tex>-порождающих нетерминалов.<br/>
''Схема алгоритма:''
{{Теорема
|statement = Нетерминал <tex>A</tex> является <tex>\varepsilon</tex>-порождающим тогда и только тогда, когда вышеприведенный алгоритм идентифицирует <tex>A</tex> как <tex>\varepsilon</tex>-порождающий.
|proof = Индукция по длине кратчайшего порождения <tex>A \overset{Rightarrow^*}{\Rightarrow} \varepsilon</tex>:''База.'' <tex>A \overset{Rightarrow^*}{\Rightarrow} \varepsilon</tex> за один шаг, то есть <tex>A \rightarrow\varepsilon</tex>. <tex>\varepsilon</tex>-порождающий нетерминал <tex>A</tex> обнаруживается алгоритмом согласно первому пункту алгоритма.
:''Индукция.'' Пусть <tex>A \overset{Rightarrow^*}{\Rightarrow} \varepsilon</tex> за <tex>n</tex> шагов. Тогда первых шаг порождения <tex>A \rightarrow C_1C_2...C_k</tex>, где <tex>C_i \overset{Rightarrow^*}{\Rightarrow} \varepsilon</tex> за менее, чем <tex>n</tex> шагов. По индукционному предположению каждый нетерминал <tex>C_i</tex> обнаруживается как <tex>\varepsilon</tex>-порождающий. Тогда нетерминал <tex>A</tex> обнаружиться вторым пунктом алгоритма как <tex>\varepsilon</tex>-порождающий.
}}