Регулярные языки: два определения и их эквивалентность — различия между версиями
Kirillova (обсуждение | вклад) (изменены определения) |
(изменено доказательство теоремы) |
||
Строка 7: | Строка 7: | ||
Определим <tex>R_{i+1}</tex> через <tex>R_i</tex>: <tex>R_{i+1} = R_i \cup \left\{L_1 \cup L_2, L_1L_2, L_1^*| L_1, L_2 \in R_i\right\}</tex>. | Определим <tex>R_{i+1}</tex> через <tex>R_i</tex>: <tex>R_{i+1} = R_i \cup \left\{L_1 \cup L_2, L_1L_2, L_1^*| L_1, L_2 \in R_i\right\}</tex>. | ||
− | + | Тогда: <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>. | |
− | Тогда: <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex> | ||
}} | }} | ||
Строка 18: | Строка 17: | ||
#<tex>R_0 \subset R</tex>, где <tex>R_0=\left\{\varnothing, \left\{\varepsilon \right\}, \left\{c_1 \right\}, \left\{c_2 \right\} ... \left\{c_k \right\} \right\}</tex> | #<tex>R_0 \subset R</tex>, где <tex>R_0=\left\{\varnothing, \left\{\varepsilon \right\}, \left\{c_1 \right\}, \left\{c_2 \right\} ... \left\{c_k \right\} \right\}</tex> | ||
#<tex> L_1, L_2 \in R \Rightarrow L_1 \cup L_2 \in R, L_1L_2 \in R, L_1^* \in R</tex> | #<tex> L_1, L_2 \in R \Rightarrow L_1 \cup L_2 \in R, L_1L_2 \in R, L_1^* \in R</tex> | ||
− | Тогда регулярным языком <tex>Reg'</tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, ... ,c_k \right\} </tex> называется пересечение всех надрезов: <tex>Reg'=\bigcap\limits_{R - nadrez}R</tex> | + | Тогда регулярным языком <tex>Reg'</tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, ... ,c_k \right\} </tex> называется пересечение всех надрезов: <tex>Reg'=\bigcap\limits_{R - nadrez}R</tex>. |
}} | }} | ||
Строка 29: | Строка 28: | ||
*'''<tex>Reg \subset Reg'</tex>''' | *'''<tex>Reg \subset Reg'</tex>''' | ||
− | + | По определению <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>. | |
− | + | Рассмотрим <tex> \forall i </tex> и <tex> \forall </tex> надрез <tex> R </tex>: <tex>R_i \subset R</tex> (следует из определения <tex>R_i</tex> и определения надреза). Это выполнимо для любого надрезa <tex> R \Rightarrow R_i \subset Reg'</tex>. Так как это выполнено для <tex> \forall i \Rightarrow \bigcup\limits_{i=0}^{\infty}R_i \subset Reg' </tex>. | |
− | |||
− | |||
− | |||
− | |||
− | Так как <tex> | ||
*'''<tex>Reg' \subset Reg</tex>''' | *'''<tex>Reg' \subset Reg</tex>''' | ||
− | + | Из определения <tex>Reg</tex> следует, что: | |
− | |||
− | |||
− | # <tex> L_1, L_2 \in Reg \Rightarrow L_1 \cup L_2 \in Reg, | + | # <tex> Reg_0 \subset Reg </tex>. |
+ | # <tex> L_1, L_2 \in Reg \Rightarrow \exists i </tex>, что <tex> L_1\in R_i </tex> и <tex> \exists j </tex> , что <tex> L_2 \in R_j \Rightarrow L_1L_2 \in R_{max(i, j)+1}, L_1 \cup L_2\in R_{max(i, j)+1}, L_1^* \in R_{i + 1}</tex> <tex> \Rightarrow L_1L_2 \in Reg, L_1 \cup L_2\in Reg, L_1^* \in Reg </tex>. | ||
− | Значит <tex>Reg - </tex> | + | Значит <tex>Reg - </tex> надрез. А так как <tex>Reg'=\bigcap\limits_{\text{R- nadrez}}R</tex>, то <tex>Reg' \subset Reg</tex>. |
Таким образом, теорема доказана. | Таким образом, теорема доказана. | ||
}} | }} |
Версия 11:11, 4 ноября 2011
Регулярные языки: два определения и их эквивалентность
Определение: |
Регулярный язык Обозначим Определим Тогда: через : . . | над алфавитом — язык, который может быть получен из букв алфавита при помощи последовательных применений операций объединения, конкатенации или итерации и никаких других, т.е.:
Определение: |
Пусть задан алфавит Множество будем называть надрезом, если:
| .
Теорема: |
Определения 1 и 2 эквивалентны. |
Доказательство: |
Докажем, что и .По определению . Рассмотрим и надрез : (следует из определения и определения надреза). Это выполнимо для любого надрезa . Так как это выполнено для .Из определения следует, что:
Значит Таким образом, теорема доказана. надрез. А так как , то . |