3.6

Леммы о накачке для контекстно-свободных языков

[26/50%]
Показать
LaTeX
Пример 3.44

Покажите, что {anbncn∣n≥0}\left\{ a^{n} b^{n} c^{n} \mid n \geq 0\right\} не является контекстно-свободным языком.

?
Пример 3.45

Покажите, что L={ww∣w∈{0,1}∗}L=\left\{ w w \mid w \in \left\{ 0,1\right\}^{*}\right\} не является контекстно-свободным языком.

?
Пример 3.46

Покажите, что L={0n1m∣m≤n2}L=\left\{ 0^{n} 1^{m} \mid m \leq n^{2}\right\} не является контекстно-свободным языком.

?
Пример 3.47

Покажите, что L={aibjck∣k=max⁡{i,j}}L=\left\{ a^{i} b^{j} c^{k} \mid k=\max \left\{ i, j\right\} \right\} не является контекстно-свободным языком.

?
Пример 3.49

Покажите, что L={w∈{a,b,c}∗∣#a(w)=#b(w)=#c(w)}L=\left\{ w \in \left\{ a, b, c\right\}^{*} \mid \#_{a}(w)=\#_{b}(w)=\#_{c}(w)\right\} не является контекстно-свободным.

?
Пример 3.50

Покажите, что если множество LL обладает тем свойством, что каждое его подмножество контекстно-свободно, то LL обязательно конечно.

?
Пример 3.52

Покажите, что L={anbnci∣i≠n}L=\left\{ a^{n} b^{n} c^{i} \mid i \neq n\right\} не является контекстно-свободным.

?
Пример 3.53

Покажите, что L={bi1#bi2#⋯#bik∣k≥2, каждое bij является двоичным представлением целого числа ij>0, и (i1,i2,…,ik) содержит целое число, встречающееся ровно дважды}L=\left\{ b_{i_{1}} \# b_{i_{2}} \# \cdots \# b_{i_{k}} \mid k \geq 2\text{, каждое }b_{i_{j}}\text{ является двоичным представлением целого числа }i_{j}>0\text{, и }\left(i_{1}, i_{2}, \ldots , i_{k}\right)\text{ содержит целое число, встречающееся ровно дважды}\right\} не является контекстно-свободным.

?
Пример 3.54

Покажите, что язык L={aibjck∣i=j или j=k}L=\left\{ a^{i} b^{j} c^{k} \mid i=j\text{ или }j=k\right\} является существенно неоднозначным.

?
Пример 3.56

Язык LL над одноэлементным алфавитом {0}\left\{ 0\right\} является контекстно-свободным тогда и только тогда, когда он регулярен.

?
Пример 3.57

Покажите, что {0n2∣n≥1}\left\{ 0^{n^{2}} \mid n \geq 1\right\} не является пересечением kk контекстно-свободных языков над алфавитом {0,1}\left\{ 0,1\right\} ни для какого kk.

?
Пример 3.58

Покажите, что язык L={ambn∣n≠m2}L=\left\{ a^{m} b^{n} \mid n \neq m^{2}\right\} не является контекстно-свободным.

?
Пример 3.59

Покажите, что L={apbq∣gcd⁡(p,q)=1}L=\left\{ a^{p} b^{q} \mid \operatorname {gcd}(p, q)=1\right\} не является контекстно-свободным.

?
Задача 3.6.1

Докажите следующие варианты леммы о накачке для контекстно-свободных языков:

?
(a)

Для любого контекстно-свободного языка LL существует константа K>0K>0, такая что любую строку ww из LL с ∣w∣>K\left|w\right|>K можно разложить в вид w=uv1v2xy2y1zw=u v_{1} v_{2} x y_{2} y_{1} z, удовлетворяющий следующим условиям:

(1) ∣v1v2xy2y1∣≤K\left|v_{1} v_{2} x y_{2} y_{1}\right| \leq K,

(2) ∣v1y1∣>0,∣v2y2∣>0\left|v_{1} y_{1}\right|>0,\left|v_{2} y_{2}\right|>0, и

(3) для любого n≥0n \geq 0, uv1nv2nxwy2ny1nz∈Lu v_{1}^{n} v_{2}^{n} x w y_{2}^{n} y_{1}^{n} z \in L.

(b)

Для любого контекстно-свободного языка LL существует константа K>0K>0, такая что любую строку ww из LL с ∣w∣>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) ∣vxy∣≤K\left|v x y\right| \leq K,

(2) ∣v∣>0,∣y∣>0\left|v\right|>0,\left|y\right|>0, и

(3) для любого n≥0n \geq 0, uvnxynz∈Lu v^{n} x y^{n} z \in L.

(c)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с ∣w∣>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) ∣vy∣≥k\left|v y\right| \geq k, и

(2) для любого n≥0n \geq 0, uvnxynz∈Lu v^{n} x y^{n} z \in L.

(d)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с ∣w∣>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) ∣v∣≥k,∣y∣≥k\left|v\right| \geq k,\left|y\right| \geq k, и

(2) для любого n≥0n \geq 0, uvnxynz∈Lu v^{n} x y^{n} z \in L.

(e)

Для любого контекстно-свободного языка LL и любого k>0k>0 существует константа K>0K>0, такая что любую строку ww из LL с ∣w∣>K\left|w\right|>K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) ∣vxy∣≤K\left|v x y\right| \leq K,

(2) ∣v∣≥k,∣y∣≥k\left|v\right| \geq k,\left|y\right| \geq k, и

(3) для любого n≥0n \geq 0, uvnxynz∈Lu v^{n} x y^{n} z \in L.

Задача 3.6.2

Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{aibjck∣i<j<k}\left\{ a^{i} b^{j} c^{k} \mid i<j<k\right\}.

(b)

{aibjck∣i≠j,j≠k,k≠i}\left\{ a^{i} b^{j} c^{k} \mid i \neq j, j \neq k, k \neq i\right\}.

(c)

{aibjck∣i<j или k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j\text{ или }k<j\right\}.

(d)

{aibjck∣i<j и k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j\text{ и }k<j\right\}.

(e)

{aibjck∣i<j⇒k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j \Rightarrow k<j\right\}.

(f)

{aibjck∣i<j⇔k<j}\left\{ a^{i} b^{j} c^{k} \mid i<j \Leftrightarrow k<j\right\}.

(g)

{aibicjdj∣i,j≥0}\left\{ a^{i} b^{i} c^{j} d^{j} \mid i, j \geq 0\right\}.

(h)

{aibjcidj∣i,j≥0}\left\{ a^{i} b^{j} c^{i} d^{j} \mid i, j \geq 0\right\}.

(i)

{aibjcjdi∣i,j≥0}\left\{ a^{i} b^{j} c^{j} d^{i} \mid i, j \geq 0\right\}.

Задача 3.6.3

Далее каждую двоичную строку из A=1(0+1)∗+0A=1(0+1)^{*}+0 будем рассматривать как двоичное представление натурального числа. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x#y∣x,y∈A,x=y+3}\left\{ x \# y \mid x, y \in A, x=y+3\right\}.

(b)

{x#yR∣x,y∈A,x=y+3}\left\{ x \# y^{R} \mid x, y \in A, x=y+3\right\}.

(c)

{x#y∣x,y∈A,x=3y}\left\{ x \# y \mid x, y \in A, x=3 y\right\}. [Указание: рассмотрите строку y=1K0Ky=1^{K} 0^{K}, где KK — константа из леммы о накачке.]

(d)

{x#yR∣x,y∈A,x=3y}\left\{ x \# y^{R} \mid x, y \in A, x=3 y\right\}.

(e)

{x#y#z∣x,y,z∈A,x=y+z}\left\{ x \# y \# z \mid x, y, z \in A, x=y+z\right\}. [Указание: используя свойство замкнутости, сведите эту задачу к пункту (a) выше.]

(f)

{x#yR#zR∣x,y,z∈A,x=y+z}\left\{ x \# y^{R} \# z^{R} \mid x, y, z \in A, x=y+z\right\}.

(g)

{x#y#z∣x,y,z∈A,x=y⋅z}\left\{ x \# y \# z \mid x, y, z \in A, x=y \cdot z\right\}.

(h)

{x#yR#zR∣x,y,z∈A,x=y⋅z}\left\{ x \# y^{R} \# z^{R} \mid x, y, z \in A, x=y \cdot z\right\}.

Задача 3.6.4

Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{xyz∣xz=y для некоторых x,y,z∈{0,1}∗}\left\{ x y z \mid x z=y\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}. [Указание: рассмотрите пересечение этого языка с регулярным языком 10100+11+10100+11+10100^{+} 11^{+} 10100^{+} 11^{+}. Заметьте, что тогда yy обязано начинаться с 101.]

(b)

{xyz∣xz=yR для некоторых x,y,z∈{0,1}∗}\left\{ x y z \mid x z=y^{R}\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}.

(c)

{xyz∣xz=yx для некоторых x,y,z∈{0,1}∗}\left\{ x y z \mid x z=y x\text{ для некоторых }x, y, z \in \left\{ 0,1\right\}^{*}\right\}.

(d)

{xxRwwR∣x,w∈{0,1}∗}\left\{ x x^{R} w w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

(e)

{xwxRwR∣x,w∈{0,1}∗}\left\{ x w x^{R} w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

(f)

{xwwRxR∣x,w∈{0,1}∗}\left\{ x w w^{R} x^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.

Задача 3.6.5

Напомним, что #a(x)\#_{a}(x) обозначает число вхождений буквы aa в строку xx. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x∈{a,b}∗∣#a(x)<#b(x)<2#a(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x)<\#_{b}(x)<2 \#_{a}(x)\right\}.

(b)

{x∈{a,b}∗∣#a(x)≠#b(x),#a(x)≠2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \neq \#_{b}(x), \#_{a}(x) \neq 2 \#_{b}(x)\right\}.

(c)

{x∈{a,b}∗∣#a(x)≤#b(x) или #a(x)≥2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \leq \#_{b}(x)\text{ или }\#_{a}(x) \geq 2 \#_{b}(x)\right\}.

(d)

{x∈{a,b}∗∣#a(x)=2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x)=2^{\#_{b}(x)}\right\}.

(e)

{x∈{a,b}∗∣#a(x)≥2#b(x)}\left\{ x \in \left\{ a, b\right\}^{*} \mid \#_{a}(x) \geq 2^{\#_{b}(x)}\right\}.

(f)

{x∈{a,b,c}∗∣#a(x)⋅#b(x)=#c(x)}\left\{ x \in \left\{ a, b, c\right\}^{*} \mid \#_{a}(x) \cdot \#_{b}(x)=\#_{c}(x)\right\}.

Задача 3.6.6

Покажите, что язык {aibjckdℓ∣[i=j,k=ℓ] или [i=ℓ,j=k]}\left\{ a^{i} b^{j} c^{k} d^{\ell } \mid [i=j, k=\ell ]\text{ или }[i=\ell , j=k]\right\} является существенно неоднозначным.

?
Задача 3.6.7

Используя лемму Парикха, покажите, что следующие языки не являются контекстно-свободными:

?
(a)

{ambn∣n≠2m}\left\{ a^{m} b^{n} \mid n \neq 2^{m}\right\}.

(b)

{ambncq∣q≠mn}\left\{ a^{m} b^{n} c^{q} \mid q \neq m n\right\}. [Указание: используйте подход примера 3.58. Сначала докажите, что в одном из порождающих множеств Γi\Gamma_{i} обязательно найдётся тройка (0,0,r)(0,0, r).]

(c)

{ambncq∣q2≠m3 или q2≠n3}\left\{ a^{m} b^{n} c^{q} \mid q^{2} \neq m^{3}\text{ или }q^{2} \neq n^{3}\right\}.

Задача 3.6.8

Пусть (x)r(x)_{r} обозначает строку, полученную из двоичной строки xx заменой 0 на 1 и 1 на 0. Для каждого из следующих языков определите, является ли он контекстно-свободным, и обоснуйте свой ответ.

?
(a)

{x(x)r∣x∈{0,1}∗}\left\{ x(x)_{r} \mid x \in \left\{ 0,1\right\}^{*}\right\}.

(b)

{w∈{0,1}∗∣w≠x(x)r ни для какого x∈{0,1}∗}\left\{ w \in \left\{ 0,1\right\}^{*} \mid w \neq x(x)_{r}\text{ ни для какого }x \in \left\{ 0,1\right\}^{*}\right\}.

(c)

{x(x)rR∣x∈{0,1}∗}\left\{ x(x)_{r}^{R} \mid x \in \left\{ 0,1\right\}^{*}\right\}.

(d)

{w∈{0,1}∗∣w≠x(x)rR ни для какого x∈{0,1}∗}\left\{ w \in \left\{ 0,1\right\}^{*} \mid w \neq x(x)_{r}^{R}\text{ ни для какого }x \in \left\{ 0,1\right\}^{*}\right\}.

Задача 3.6.9
?
(a)

Вспомните операцию над языками ⊕\oplus, определённую в упражнении 2 раздела 2.6. Покажите, что контекстно-свободные языки не замкнуты относительно операции ⊕\oplus.

(b)

Покажите, что контекстно-свободные языки не замкнуты относительно операции MIN (L)={x∈L∣x не имеет собственного префикса в L}(L)=\left\{ x \in L \mid x\text{ не имеет собственного префикса в }L\right\}.

(c)
  • Рассмотрите операцию REV⁡(L)={xyRz∣xyz∈L}\operatorname {REV}(L)=\left\{ x y^{R} z \mid x y z \in L\right\} и язык L={0m1n0n1m∣m,n≥0}L=\left\{ 0^{m} 1^{n} 0^{n} 1^{m} \mid m, n \geq 0\right\}. Покажите, что LL — контекстно-свободный язык, а REV⁡(L)\operatorname {REV}(L) — нет.
(d)
  • Найдите контекстно-свободный язык LL, такой что L12={x∣(∃y)∣x∣=∣y∣ и xy∈L}L_{\frac{1}{2}}=\left\{ x\left|(\exists y)\right| x \mid = \left|y\right|\text{ и }x y \in L\right\} не является контекстно-свободным.
Задача 3.6.10

Пусть LL — контекстно-свободный язык. Докажите или опровергните следующие утверждения:

?
(a)

Если L1L_{1} регулярен, то L1\LL_{1} \backslash L контекстно-свободен.

(b)

{x∣xxR∈L}\left\{ x \mid x x^{R} \in L\right\} контекстно-свободен.

(c)

{xxR∣x∈L или xR∈L}\left\{ x x^{R} \mid x \in L\text{ или }x^{R} \in L\right\} контекстно-свободен.

(d)

{xxR∣x∈L и xR∈L}\left\{ x x^{R} \mid x \in L\text{ и }x^{R} \in L\right\} контекстно-свободен.

(e)

{xxR∣x∈L или xR∉L}\left\{ x x^{R} \mid x \in L\text{ или }x^{R} \notin L\right\} контекстно-свободен.

(f)

{xxR∣x∈L и xR∉L}\left\{ x x^{R} \mid x \in L\text{ и }x^{R} \notin L\right\} контекстно-свободен.

Задача 3.6.11

Покажите, что множество всех строк над алфавитом

{[000],[100],[010],[001],[110],[101],[011],[111]} \left\{ \left[\begin{smallmatrix} 0 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right]\right\}

представляющих корректное умножение, не является контекстно-свободным (ср. пример 2.65).

?
Задача 3.6.12

Контекстно-свободная грамматика GG называется линейной грамматикой, если правая часть каждого правила GG содержит не более одного нетерминального символа. Язык LL называется линейным языком, если L=L(G)L=L(G) для некоторой линейной грамматики GG. Покажите, что для любого линейного языка LL существует константа K>0K>0, такая что любую строку ww из LL длины ∣w∣≥K\left|w\right| \geq K можно разложить в вид w=uvxyzw=u v x y z, удовлетворяющий следующим условиям:

(1) vy≠εv y \neq \varepsilon.

(2) ∣uvyz∣≤K\left|u v y z\right| \leq K.

(3) uvnxynz∈Lu v^{n} x y^{n} z \in L для всех n≥0n \geq 0.

?
Задача 3.6.13

Покажите, что следующие языки не являются линейными.

?
(a)

{w∈{0,1}∗∣#0(w)=#1(w)}\left\{ w \in \left\{ 0,1\right\}^{*} \mid \#_{0}(w)=\#_{1}(w)\right\}.

(b)
  • {xy∈{0,1}∗∣x∣=∣y∣,x≠y}\left\{ x y \in \left\{ 0,1\right\}^{*} \left| x\right|=\left|y\right|, x \neq y\right\}. [Указание: примените лемму о накачке для линейных языков (упражнение 12 выше) к строке w=ambakbamw= a^{m} b a^{k} b a^{m} с k>m≥Kk>m \geq K. Заметьте, что строка aibajbaℓa^{i} b a^{j} b a^{\ell } не принадлежит языку, если j=i+ℓj=i+\ell.]
(c)
  • {xxRwwR∣x,w∈{0,1}∗}\left\{ x x^{R} w w^{R} \mid x, w \in \left\{ 0,1\right\}^{*}\right\}.