Регулярные языки: два определения и их эквивалентность — различия между версиями
Строка 2: | Строка 2: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Регулярный язык''' <tex> Reg </tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, \ldots ,c_k \right\} </tex> {{---}} язык, который может быть получен из букв алфавита при помощи последовательных применений операций объединения, конкатенации или итерации и никаких других, | + | '''Регулярный язык''' <tex> Reg </tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, \ldots ,c_k \right\} </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=\left\{\varnothing, \left\{\varepsilon \right\}, \left\{c_1 \right\}, \left\{c_2 \right\} , \ldots, \left\{c_k \right\} \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>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>, | ||
Строка 15: | Строка 15: | ||
Множество <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'=\bigcap\limits_{R - nadreg}R</tex>. | Тогда '''регулярным языком''' <tex>Reg'</tex> над алфавитом <tex> \Sigma = \left\{c_1, c_2, ... ,c_k \right\} </tex> называется пересечение всех надрегулярных множеств: <tex>Reg'=\bigcap\limits_{R - nadreg}R</tex>. | ||
}} | }} |
Версия 05:49, 17 января 2012
Регулярные языки: два определения и их эквивалентность
Определение: |
Регулярный язык обозначим ,определим тогда: через : , . | над алфавитом — язык, который может быть получен из букв алфавита при помощи последовательных применений операций объединения, конкатенации или итерации и никаких других, то есть:
Определение: |
Пусть задан алфавит Множество будем называть надрегулярным, если:
| .
Теорема: |
Определения 1 и 2 эквивалентны. |
Доказательство: |
Докажем, что и .По определению . Рассмотрим любое множество и любое надрегулярное множество : (следует из определения и определения надрегулярного множества).Это верно для любого надрегулярного множества , следовательно . Это выполнено для любого , значит .Докажем, что является надрегулярным множеством. Для этого проверим, выполняются ли свойства надрегулярного множества на нём:
|
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)