Регулярные языки: два определения и их эквивалентность — различия между версиями
м (→Регулярные языки: два определения и их эквивалентность) |
|||
Строка 13: | Строка 13: | ||
|definition = | |definition = | ||
Пусть задан алфавит <tex> \Sigma = \left\{c_1, c_2, \ldots ,c_k \right\} </tex>. | Пусть задан алфавит <tex> \Sigma = \left\{c_1, c_2, \ldots ,c_k \right\} </tex>. | ||
− | Множество <tex>R</tex> будем называть | + | Множество <tex>R</tex> будем называть надрегулярным, если: |
#<tex>R_0 \subset R</tex>, где <tex>R_0=\left\{\varnothing, \left\{\varepsilon \right\}, \left\{c_1 \right\}, \left\{c_2 \right\}, \ldots, \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\}, \ldots, \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'</tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, ... ,c_k \right\} </tex> называется пересечение всех надрегулярных множеств: <tex>Reg'=\bigcap\limits_{R - nadreg}R</tex>. |
}} | }} | ||
Строка 29: | Строка 29: | ||
По определению <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>. | По определению <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>. | ||
− | Рассмотрим любое множество <tex> R_i </tex> и | + | Рассмотрим любое множество <tex> R_i </tex> и любое надрегулярное множество<tex> R </tex>: <tex>R_i \subset R</tex> (следует из определения <tex>R_i</tex> и определения надрегулярного множества). |
− | Это верно для любого | + | Это верно для любого надрегулярного множества <tex>R</tex>, следовательно <tex> R_i \subset Reg'</tex>. Это выполнено для любого <tex> R_i </tex>, значит <tex> \bigcup\limits_{i=0}^{\infty}R_i \subset Reg' </tex>. |
*'''<tex>Reg' \subset Reg</tex>''' | *'''<tex>Reg' \subset Reg</tex>''' | ||
− | Докажем, что <tex> Reg </tex> является | + | Докажем, что <tex> Reg </tex> является надрегулярным множеством. Для этого проверим, выполняются ли свойства надрегулярного множества на нём: |
# <tex> R_0 \subset Reg </tex> {{---}} выполнено (по определению <tex>Reg</tex>). | # <tex> R_0 \subset Reg </tex> {{---}} выполнено (по определению <tex>Reg</tex>). | ||
# Рассмотрим <tex>L_1, L_2 \in Reg</tex>. Так как <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>, то <tex> \exists i : L_1\in R_i </tex> и <tex> \exists j : L_2 \in R_j </tex>. Тогда из определения <tex> Reg </tex> следует, что <tex> 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>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>, то получаем, что <tex> L_1L_2 \in Reg, L_1 \cup L_2\in Reg, L_1^* \in Reg </tex>. Следовательно, второе свойство также выполнено. | # Рассмотрим <tex>L_1, L_2 \in Reg</tex>. Так как <tex>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>, то <tex> \exists i : L_1\in R_i </tex> и <tex> \exists j : L_2 \in R_j </tex>. Тогда из определения <tex> Reg </tex> следует, что <tex> 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>Reg = \bigcup\limits_{i=0}^{\infty}R_i</tex>, то получаем, что <tex> 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- nadreg}}R</tex>, то <tex>Reg' \subset Reg</tex>. |
}} | }} | ||
= Литература = | = Литература = | ||
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.) | * ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.) |
Версия 02:38, 13 декабря 2011
Регулярные языки: два определения и их эквивалентность
Определение: |
Регулярный язык обозначим ;определим тогда: через : , . | над алфавитом — язык, который может быть получен из букв алфавита при помощи последовательных применений операций объединения, конкатенации или итерации и никаких других, т.е.:
Определение: |
Пусть задан алфавит Множество будем называть надрегулярным, если:
| .
Теорема: |
Определения 1 и 2 эквивалентны. |
Доказательство: |
Докажем, что и .По определению . Рассмотрим любое множество и любое надрегулярное множество : (следует из определения и определения надрегулярного множества).Это верно для любого надрегулярного множества , следовательно . Это выполнено для любого , значит .Докажем, что является надрегулярным множеством. Для этого проверим, выполняются ли свойства надрегулярного множества на нём:
|
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)