La langue impliquant un numéro irrationnel n'est pas une LFC

10

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:ijγ,i0,j1}γγ 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!

DW
la source
Avez-vous essayé d'appliquer le théorème de Parikh?
Yuval Filmus
Pourquoi ne pas montrer que ce n'est pas directement semi-linéaire? Utilisez la définition.
Yuval Filmus
4
Juste à temps pour mes devoirs! Merci. CS 462/662 Langages formels et analyse syntaxique Hiver 2019, Problème 9, exercice 3. Dû vendredi 22 mars 2019.
Hendrik Jan
@HendrikJan Je suis moi-même en train d'étudier le manuel "Un deuxième cours en langues formelles et théorie des automates" de Jeffrey Shallit. Il s'agit de l'exercice 25 du chapitre 4 fyi. Serait-il possible de masquer ce message jusqu'à la fin de la mission?
J'apprécie ce que vous essayez de faire et vos bonnes intentions, mais ne détruisez pas la question en la modifiant pour la cacher (même pendant quelques jours). Je vous remercie. PS Merci d'avoir crédité la source du problème!
DW

Réponses:

7

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 0Mu0M , et de plus u iMuiM pour chaque i > 0i>0 , car sinon u 0 + N u iMu0+NuiM 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/bg(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/bg<γ , 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):astb}=a=0s1(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 bastb(puisque s = st ts=stt). Inversement, supposons queastbastb. While asas and btbt, subtract (s,t)(s,t) from (a,b)(a,b). Eventually a<sa<s (since b<tb<t implies astb<sastb<s). Since astbastb, necessarily btsabtsa. Hence we can subtract (0,1)(0,1) from (a,b)(a,b) until we reach (a,tsa)(a,tsa).

Yuval Filmus
la source
Nice answer. Just a clarification, the logic behind "every (a,b)S(a,b)S satisfies a/bg(S)a/bg(S)" is that otherwise if there was an (a,b)>g(S)(a,b)>g(S), then we could build an (x,y)S(x,y)S such that x/yx/y is as large as wanted and therefore larger than γγ?
No, this follows directly from the definition of g(S)g(S). Your argument explains why g(S)<γg(S)<γ.
Yuval Filmus
6

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|>bpp|s|>bpp. Consider s=uvwxys=uvwxy, where |vx|>1|vx|>1 and sn=uvnwxnyLsn=uvnwxnyL for all n0n0.

Let tata and tbtb be the number of aas and bbs in vxvx respectively.

  • If tb=0tb=0 or tatb>γtatb>γ, for nn large enough, the ratio of the number of aas to that of bbs in snsn will be larger than γγ, i.e., snLsnL.
  • Otherwise, tatb<γtatb<γ. Since tb<bptb<bp, tatb<apbptatb<apbp. Hence, aptabptb>apbpaptabptb>apbp Since bptb<bpbptb<bp, aptabptb>γ,aptabptb>γ, which says that s0Ls0L.

The above contradiction shows that LL cannot be context-free.


Here are two related easier exercises.

Exercise 1. Show that Lγ={aiγ:iN}Lγ={aiγ:iN} is not context-free where γγ is an irrational number.

Exercise 2. Show that Lγ={aibj:ijγ,i0,j0}Lγ={aibj:ijγ,i0,j0} is context-free where γγ is a rational number.

John L.
la source
The property in the answer can be proved simply by selecting all rational numbers that is nearer to γγ than all previous numbers in the list of all rational numbers that are smaller than γγ in the order of increasing denominators and, for the same denominators, in increasing order.
John L.
The usual construction is to take convergents of the continued fraction.
Yuval Filmus
@YuvalFilmus Yes, I agree. On the other hand, that almost-one-line proof is much simpler and accessible. (the "increasing order" in my last message should be "decreasing order".)
John L.