Упражнение 2.1.25 |
Дополнительные свойства контекстно-свободных языков
В этой лекции излагаются те свойства контекстно-свободных языков, которые удобно доказывать с привлечением автоматов с магазинной памятью. В первых двух разделах приводятся некоторые свойства замкнутости класса контекстно-свободных языков (замкнутость относительно деления, взятия гомоморфного образа и полного гомоморфного прообраза). В конце лекции формулируются два критерия контекстной свободности, интересных в основном с теоретической точки зрения.
11.1*. Деление контекстно-свободных языков
Теорема 11.1.1. Пусть L1 - контекстно-свободный язык
над алфавитом и L2 - автоматный язык над алфавитом
. Тогда язык
является контекстно-свободным.
Доказательство.
Пусть -
МП-автомат,
распознающий язык L1.
Без ограничения общности можно считать, что
для каждого перехода
выполняется неравенство
.
Пусть -
конечный автомат,
распознающий язык L2.
Без ограничения общности можно считать, что
![Q_1 \cap ( Q_1 \times Q_2 ) = \varnothing](/sites/default/files/tex_cache/8dee8e97914cf96b34289450e01819f2.png)
![\lp p , x , q \rp \in \Delta_2](/sites/default/files/tex_cache/f4f15d52358a6484c99b468116772262.png)
Тогда язык
распознается МП-автоматом
,
где
, I = I1,
и
![\begin{align*}
\Delta &= \Delta_1 \cup {} \\
&\myqquad \cup
\{ \lp \lp p_1 , \varepsilon , \varepsilon \rp ,
\lp \lp p_1 , p_2 \rp , \varepsilon \rp \rp
\mid p_1 \in Q_1 \commaand p_2 \in I_2 \} \cup {} \\
&\myqquad \cup
\{ \lp \lp \lp p_1 , p_2 \rp , \varepsilon , \beta \rp ,
\lp \lp q_1 , q_2 \rp , \gamma \rp \rp
\mid
\lp \lp p_1 , a , \beta \rp ,
\lp q_1 , \gamma \rp \rp \in \Delta_1 \commaand \\
&\myqquad \hphantom{ {} \cup{} \{ } %\}
\lp p_2 , a , q_2 \rp \in \Delta_2
\mathspace\text{для некоторого}\mathspace a \in \Sigma \} \cup {} \\
&\myqquad \cup
\{ \lp \lp \lp p_1 , p_2 \rp , \varepsilon , \beta \rp ,\!
\lp \lp q_1 , p_2 \rp ,\! \gamma \rp \rp
\squeeze{\mid}
\lp \lp p_1 , \varepsilon , \beta \rp ,\!
\lp q_1 ,\! \gamma \rp \rp \squeeze{\in} \Delta_1 \commaand
p_2 \squeeze{\in} Q_2 \} .
\end{align*}](/sites/default/files/tex_cache/bc4305ce425e31714a3be4d032941d3b.png)
Пример 11.1.2.
Пусть ,
язык L1
распознается МП-автоматом
![\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
*=[o][F-]{1}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,1} ^{a,\varepsilon:C}
\ar "2,1" ^{\varepsilon,\varepsilon:C}
\\
*=[o][F=]{2}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,-1} ^{b,C:\varepsilon}
}](/sites/default/files/tex_cache/52923040a8c408d393477d98d48445cf.png)
![\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
*=[o][F-]{3}
\ar @`{+/l16mm/} [] ^{}
\ar "1,2" <0.6mm> ^{b}
& *=[o][F=]{4}
\ar "1,1" <0.6mm> ^{b}
}
\ .](/sites/default/files/tex_cache/6714c02c5ab25a6ae602f82ba88c7c1b.png)
![\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \}](/sites/default/files/tex_cache/7f30dabf2861a37b94e7bcf5e77d5fa1.png)
![\objectwidth={7.5mm} \objectheight={7.5mm} \let\objectstyle=\scriptstyle
\xymatrix {
*=[o][F-]{1}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,1} ^{a,\varepsilon:C}
\ar "2,1" ^{\varepsilon,\varepsilon:C}
\ar "1,2" ^{\varepsilon,\varepsilon:\varepsilon}
& *=[o][F-]{1,3}
\ar "2,2" ^{\varepsilon,\varepsilon:C}
& *=[o][F-]{1,4}
\ar "2,3" ^{\varepsilon,\varepsilon:C}
\\
*=[o][F-]{2}
\ar @`{+/l16mm/} [] ^{}
\rloop{0,-1} ^{b,C:\varepsilon}
\ar "2,2" ^{\varepsilon,\varepsilon:\varepsilon}
& *=[o][F-]{2,3}
\ar "2,3" <0.6mm> ^{\varepsilon,C:\varepsilon}
& *=[o][F=]{2,4}
\ar "2,2" <0.6mm> ^{\varepsilon,C:\varepsilon}
}](/sites/default/files/tex_cache/1ac37bee282d400b169df34101c56866.png)
Пример 11.1.3.
Пусть ,
и
.
Тогда
![\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \} =
\{ w \in \Sigma ^* \mid | w |_a + 2 \leq | w |_b \} .](/sites/default/files/tex_cache/4e746ae16e3e2be0c7712af4d6ff8082.png)
Пример 11.1.4.
Пусть ,
и
.
Тогда
![\{ x \in \Sigma ^* \mid ( \exists y \in L_2 ) \, x y \in L_1 \} =
\Sigma ^* .](/sites/default/files/tex_cache/b4e2e92b632cb85438f47bb5711ecff1.png)
Замечание 11.1.5.
Пусть
и
.
Язык
является контекстно-свободным
тогда и только тогда, когда
язык L
является контекстно-свободным.
Упражнение 11.1.6.
Существует ли такой контекстно-свободный язык ,
что язык Subw
не является контекстно-свободным?
Упражнение 11.1.7. Существует ли такой
контекстно-свободный язык L
над алфавитом {a,b},
что язык
не является контекстно-свободным?
Упражнение 11.1.8. Существует ли такой контекстно-свободный язык L над алфавитом {a,b}, что язык
![\{ w \in \{a,b\}^* \mid
( \exists m \geq 0 )\, ( \exists n \geq 0 )\, (ab)^m w b^{3n} \in L \}](/sites/default/files/tex_cache/d522d0da39c3662bddc782ac839f7204.png)