Я работаю над тяжелым упражнением в учебнике и просто не могу понять, как поступить. Здесь проблема. Предположим, что у нас есть язык L = { a i b j : i ≤ j γ , i ≥ 0 , j ≥ 1 },L={aibj:i≤jγ,i≥0,j≥1} где γγ - некоторое иррациональное число. Как бы я доказать это LL не является контекстно-свободным языком?
В случае, когда γγ рационально, довольно легко построить грамматику, которая принимает язык. Но поскольку γγ иррациональна, я не знаю, что делать. Не похоже, чтобы какая-то из лемм прокачки работала здесь. Возможно, здесь сработает теорема Париха, поскольку интуитивно кажется, что у этого языка нет сопровождающего полулинейного изображения Париха.
Это упражнение из «Второго курса формальных языков и теории автоматов» Джеффри Шаллита, упражнение 25 главы 4.
Я был бы очень признателен за любую помощь или подтолкнуть в правильном направлении. Спасибо!
Ответы:
Согласно теореме Париха, если бы LL не зависело от контекста, то множество M = { ( a , b ) : a ≤ γ b }M={(a,b):a≤γb} было бы полулинейным, то есть было бы объединением конечного числа множеств вида S = u 0 + N u 1 + ⋯ + N u ℓS=u0+Nu1+⋯+Nuℓ , для некоторых u i = ( a i , b i )ui=(ai,bi) .
Очевидно , что у 0 ∈ Мu0∈M , и , кроме того у я ∈ Mui∈M для каждого I > 0i>0 , поскольку в противном случае у 0 + Н у я ∉ Мu0+Nui∉M при достаточно большом NN . Следовательно, g ( S ) : = max ( a 0 / b 0 , … , a ℓ / b ℓ ) < γg(S):=max(a0/b0,…,aℓ/bℓ)<γ (поскольку g ( S )g(S) рационально). Это означает, что каждый ( a , b ) ∈ S(a,b)∈S удовлетворяет a / b ≤ g ( S )a/b≤g(S) .
Теперь предположим, что MM является объединением S ( 1 ) , … , S ( m )S(1),…,S(m) , и определим g = max ( g ( S ( 1 ) ) , … , g ( S ( m ) ) ) < γg=max(g(S(1)),…,g(S(m)))<γ . Вышеизложенное показывает, что каждый ( a , b )(a,b) в объединении удовлетворяет a / b ≤ g < γa/b≤g<γ , и мы получаем противоречие, так как sup { a / b : ( a , b ) ∈ M } = γsup{a/b:(a,b)∈M}=γ .
Когда γγ рационально, доказательство не выполняется, и действительно, MM полулинейно:
{ ( a , b ) : a ≤ st b}= s - 1 ⋃ a=0(a,⌈ts a⌉)+N(s,t)+N(0,1). {(a,b):a≤stb}=⋃a=0s−1(a,⌈tsa⌉)+N(s,t)+N(0,1).
Действительно, по построению любая пара(a,b)(a,b) в правой части удовлетворяетa≤st ba≤stb (так какs=sт тs=stt ). И наоборот, предположим, чтоa≤stba≤stb . While a≥sa≥s and b≥tb≥t , subtract (s,t)(s,t) from (a,b)(a,b) . Eventually a<sa<s (since b<tb<t implies a≤stb<sa≤stb<s ). Since a≤stba≤stb , necessarily b≥⌈tsa⌉b≥⌈tsa⌉ . Hence we can subtract (0,1)(0,1) from (a,b)(a,b) until we reach (a,⌈tsa⌉)(a,⌈tsa⌉) .
источник
Every variable except γγ in this answer stands for a positive integer. It is well-known that given an irrational γ>0γ>0 , there is a sequence of rational numbers a1b1<a2b2<a3b3<⋯<γa1b1<a2b2<a3b3<⋯<γ such that aibiaibi is nearer to γγ than any other rational number smaller than γγ whose denominator is less than bibi .
It turns out that the pumping lemma does work!
For the sake of contradiction, let pp be the pumping length of LL as a context-free language. Let s=aapbbps=aapbbp , a word that is LL but "barely". Note that |s|>bp≥p|s|>bp≥p . Consider
s=uvwxys=uvwxy , where |vx|>1|vx|>1 and sn=uvnwxny∈Lsn=uvnwxny∈L for all n≥0n≥0 .
Let tata and tbtb be the number of aa s and bb s in vxvx respectively.
The above contradiction shows that LL cannot be context-free.
Here are two related easier exercises.
Exercise 1. Show that Lγ={a⌊iγ⌋:i∈N}Lγ={a⌊iγ⌋:i∈N} is not context-free where γγ is an irrational number.
Exercise 2. Show that Lγ={aibj:i≤jγ,i≥0,j≥0}Lγ={aibj:i≤jγ,i≥0,j≥0} is context-free where γγ is a rational number.
источник