Регулярные языки: два определения и их эквивалентность — различия между версиями
Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | Будем обозначать через < | + | Будем обозначать через <tex>Reg_t - </tex> языки <tex>t</tex>-го поколения. |
+ | |||
+ | Рассмотрим языки нулевого поколения: <tex>Reg_0=\left\{\varnothing, \left\{\varepsilon \right\}, \left\{c_1 \right\}, \left\{c_2 \right\} ... \left\{c_k \right\} \right\}</tex>, (<tex>k - </tex>размер алфавита). | ||
+ | |||
+ | Пусть имеем <tex>Reg_i</tex>. Построим <tex>Reg_{i+1} = Reg_i \cup \left\{L \cup M, LM, L^*| L, M \in Reg_i\right\}</tex>. | ||
+ | |||
+ | Тогда по определению <em>множество регулярных языков</em>: <tex>Reg = \bigcup_{i=0}^{\infty}Reg_i</tex>. | ||
}} | }} | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | Пусть < | + | Пусть <tex>A - </tex> множество языков. Будем говорить, что <tex>A - </tex> хорошее, если выполнены следующие свойства: языки нулевого поколения являются подмножеством <tex>A</tex> и множество <tex>A</tex> замкнуто относительно операций объединения, конкатенации и замыкания Клини, т.е.: |
− | < | + | #<tex>Reg_0 \subset A</tex> |
+ | #<tex> L_1, L_2 \in A \Rightarrow L_1 \cup L_2 \in A, L_1L_2 \in A, L_1^* \in A</tex> | ||
− | + | Тогда <em>множеством регулярных языков</em> будем называть <tex>Reg'=\bigcap_{\text{A- xop.}}A</tex>. | |
− | Тогда <em> | ||
}} | }} | ||
Строка 19: | Строка 25: | ||
Определения 1 и 2 эквивалентны. | Определения 1 и 2 эквивалентны. | ||
|proof= | |proof= | ||
− | Докажем, что < | + | Докажем, что <tex>Reg \subset Reg'</tex> и <tex>Reg' \subset Reg</tex>. |
+ | |||
+ | *'''<tex>Reg \subset Reg'</tex>''' | ||
+ | |||
+ | Будем доказывать по индукции. | ||
+ | |||
+ | База индукции: из первого свойства хорошего языка получаем, что <tex>\forall A: Reg_0 \subset A</tex>. Поэтому из того, что <tex>Reg'</tex> есть пересечение всех хороших языков получаем: <tex>Reg'=\bigcap_{\text{A- xop.}}A \Rightarrow Reg_0 \subset Reg'</tex>. | ||
+ | |||
+ | Индукционный переход. | ||
+ | |||
+ | Пусть <tex>Reg_i \subset Reg'</tex>. Докажем, что <tex>Reg_{i+1} \subset Reg'</tex>. Действительно, так как <tex>Reg_i \subset Reg'</tex>, то <tex>\forall A: Reg_i \subset A</tex>. Рассмотрим способ построения <tex>Reg_{i+1}</tex>: | ||
+ | |||
+ | <tex>Reg_{i+1} = Reg_i \cup \left\{L \cup M, LM, L^*| L, M \in Reg_i\right\}</tex>. Тогда, принимая во внимание вышесказанное, получаем, что <tex>\forall A: L, M \in A</tex>. | ||
+ | |||
+ | Тогда, принимая во внимание второе свойство хорошего множества, получаем, что операция образования <tex>Reg_{i+1}</tex> не вывела нас за рамки хорошего множества, так как полученное множество осталось замкнутым относительно операций объединения, конкатенации и замыкания Клини. | ||
+ | |||
+ | Таким образом получили, что если <tex>Reg_i \subset Reg' \Rightarrow Reg_{i+1} \subset Reg'</tex>. Значит <tex>Reg \subset Reg'</tex>. | ||
+ | |||
+ | *'''<tex>Reg' \subset Reg</tex>''' | ||
+ | |||
+ | По определению <tex>Reg</tex> получаем, что | ||
+ | |||
+ | # <tex> Reg_0 \subset Reg </tex> | ||
− | + | # <tex> L_1, L_2 \in Reg \Rightarrow L_1 \cup L_2 \in Reg, L_1L_2 \in Reg, L_1^* \in Reg </tex> | |
− | + | Значит <tex>Reg - </tex>хорошее множество. А так как <tex>Reg'=\bigcap_{\text{A- xop.}}A</tex>, то <tex>Reg' \subset Reg</tex>. | |
− | + | Таким образом, теорема доказана. | |
− | |||
}} | }} |
Версия 00:19, 8 октября 2010
Регулярные языки: два определения и их эквивалентность
Определение: |
Будем обозначать через Рассмотрим языки нулевого поколения: , ( размер алфавита).Пусть имеем Тогда по определению множество регулярных языков: . Построим . . | языки -го поколения.
Определение: |
Пусть | множество языков. Будем говорить, что хорошее, если выполнены следующие свойства: языки нулевого поколения являются подмножеством и множество замкнуто относительно операций объединения, конкатенации и замыкания Клини, т.е.:
Теорема: |
Определения 1 и 2 эквивалентны. |
Доказательство: |
Докажем, что и .Будем доказывать по индукции. База индукции: из первого свойства хорошего языка получаем, что . Поэтому из того, что есть пересечение всех хороших языков получаем: .Индукционный переход. Пусть . Докажем, что . Действительно, так как , то . Рассмотрим способ построения :. Тогда, принимая во внимание вышесказанное, получаем, что . Тогда, принимая во внимание второе свойство хорошего множества, получаем, что операция образования не вывела нас за рамки хорошего множества, так как полученное множество осталось замкнутым относительно операций объединения, конкатенации и замыкания Клини.Таким образом получили, что если . Значит .По определению получаем, чтоЗначит Таким образом, теорема доказана. хорошее множество. А так как , то . |