Je travaille à travers un exercice difficile dans un manuel, et je n'arrive pas à comprendre comment procéder. Voici le problème. Supposons que nous ayons le langage L = { a i b j : i ≤ j γ , i ≥ 0 , j ≥ 1 }L={aibj:i≤jγ,i≥0,j≥1} où γγ est un certain nombre irrationnel. Comment pourrais-je prouver que LL n'est pas un langage sans contexte?
Dans le cas où γγ est rationnel, il est assez facile de construire une grammaire qui accepte le langage. Mais parce que γγ est irrationnel, je ne sais pas vraiment quoi faire. Il ne semble pas que les lemmes de pompage fonctionnent ici. Peut-être que le théorème de Parikh fonctionnerait ici, car il semblerait intuitivement que cette langue n'a pas d'image parikh semi-linéaire d'accompagnement.
Cet exercice est tiré de "Un deuxième cours en langues formelles et théorie des automates" de Jeffrey Shallit, exercice 25 du chapitre 4.
J'apprécierais vraiment toute aide ou coup de coude dans la bonne direction. Je vous remercie!
Réponses:
Selon le théorème de Parikh, si LL était hors contexte, alors l'ensemble M = { ( a , b ) : a ≤ γ b }M= { ( a , b ) : a ≤ γb } serait semi-linéaire, c'est-à-dire qu'il serait l'union d'un nombre fini d'ensembles de la forme S = u 0 + N u 1 + ⋯ + N u ℓS= u0+Nu1+⋯+Nuℓ , pour certains u i = ( a i , b i )ui=(ai,bi) .
Evidemment u 0 ∈ Mu0∈M , et de plus u i ∈ Mui∈M pour chaque i > 0i>0 , car sinon u 0 + N u i ∉ Mu0+Nui∉M pour NN assez grand . Donc g ( S ) : = max ( a 0 / b 0 , … , a ℓ / b ℓ ) < γg(S):=max(a0/b0,…,aℓ/bℓ)<γ (puisque g ( S )g(S) est rationnel). Cela signifie que chaque ( un , b ) ∈ S(a,b)∈S satisfait a / b ≤ g ( S )a/b≤g(S) .
Supposons maintenant que MM est l'union de S ( 1 ) , … , S ( m )S(1),…,S(m) , et définissons g = max ( g ( S ( 1 ) ) , … , g ( S ( m ) ) ) < γg=max(g(S(1)),…,g(S(m)))<γ . Ce qui précède montre que tout ( a , b )(a,b) dans l'union satisfait a / b ≤ g < γa/b≤g<γ , et nous obtenons une contradiction, puisque sup { a / b : ( a , b ) ∈ M } = γsup{a/b:(a,b)∈M}=γ .
Lorsque γγ est rationnel, la preuve échoue, et en effet MM est semi-linéaire:
{ ( 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).
En effet, par construction, toute paire(a,b)(a,b) du côté droit satisfait a ≤ st ba≤stb (puisque s = st ts=stt ). Inversement, supposons quea≤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⌉) .
la source
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.
la source