In Kapitel 4 von Jeffrey Shallits A Second Course in Automata Theory wird das folgende Problem als offen aufgeführt:
Sei ein Polynom mit rationalen Koeffizienten, so dass für alle . Beweisen oder zu widerlegen , dass die Sprache der basen k Darstellungen aller ganzen Zahlen in ist kontextfrei , wenn und nur wenn der Grad der ist .p(n)
Wie ist der aktuelle Stand (Stand Oktober 2018)? Ist es bewiesen? Was ist mit einigen Sonderfällen?
Antworten:
Natürlich ist hier k ≥ 2k≥2 .
Es gab einmal ein Manuskript von Horváth, das behauptete, das Problem zu lösen, aber es war an mehreren Stellen unklar und meines Wissens wurde es nie veröffentlicht.
Soweit ich weiß, ist das Problem noch offen. Eine Richtung der Implikation ist natürlich einfach.
quelle
Dies ist eine Skizze des Beweises für k = 2k=2 und L = { [ n 2 ] 2 ∣ n ≥ 1 }L={[n2]2∣n≥1} ; wobei [ n 2 ] 2[n2]2 die binäre Darstellung von n 2 istn2 . Zur besseren Übersicht platzieren wir das niedrigstwertige Bit der Binärzeichenfolgen links, z. B. [ 4 2 ] 2 = 00001[42]2=00001 .
Die Kernidee ist anzunehmen, dass LL kontextfrei ist, und dann zu "vereinfachen", es mit einer einfachen regulären Sprache R zuR schneiden ; die neue Sprache L ∩ RL∩R ist immer noch kontextfrei und sollte immer noch binäre Darstellungen von Quadraten enthalten. dann wenden wir das Pump-Lemma für CF-Sprachen an, um eine Binärzeichenfolge zu erhalten, die keine Darstellung eines Quadrats ist.
Eine Überschneidung von LL mit regulären Wörtern, die nur eine kleine endliche Zahl von 11 Ziffern enthalten, ist nicht vielversprechend. Es stellt sich heraus , dass bis zu vier 11 - stellig ( R = { 0 * 1 } , { 0 * 10 * 1 } , { 0 * 10 * 10 * 1 } , { 0 * 10 * 10 * 10 * 1 } )(R={0∗1},{0∗10∗1},{0∗10∗10∗1},{0∗10∗10∗10∗1}) erhalten wir eine CF-Sprache; und mit fünf 11 Ziffern erhalten wir ein scheinbar schwieriges Problem der Zahlentheorie.
Der vielversprechende Ansatz besteht darin, LL mit R = 1 zu schneiden0 +1 +0 +1R=10+1+0+1 ; das ist äquivalent, um LL auf die Quadratezu beschränken:
n 2 = 2 0 + 2 a ( ( 2 b - 1 ) + 2 b + c ) , 1 < a , b , cn2=20+2a((2b−1)+2b+c),1<a,b,c
(informell ungeradee Quadrate , deren binäre Darstellung enthält all 00 s mit Ausnahme einer Sequenz von 11 s in der Mitte).
Mit einigem Aufwand können wir folgendes beweisen:
Satz: die Zahl 2 0 + 2 a ( ( 2 b - 1 ) + 2 b + c ) ;0 < c , 3 < a < b20+2a((2b−1)+2b+c);0<c,3<a<b ist genau dann ein Quadrat, wenn
b = 2 a - 3 , c = a - 3b=2a−3,c=a−3
(Der Beweis ist ziemlich lang, ich werde ihn auf meinem Blog veröffentlichen.)
An diesem Punkt können wir leicht beweisen , dass L ∩ RL∩R frei nicht Kontext ist das Pumpen Lemma mit (wir können höchstens zwei „Segmente“ der Pumpe 100..0011 ... 1100,001100..0011...1100.001 string). Also ist auch LL nicht kontextfrei.
Wahrscheinlich kann dieselbe Technik auf jede Basis kk angewendet werden .
quelle
Ich glaube ich habe einen Beweis. Der Beweis folgt aus diesem Lemma.
Lemma. Für eine kontextfreie Sprache LL gibt es für unendlich viele n n n 6n6 Wörter gleicher Länge, deren erste n 2n2 Buchstaben gleich sind und deren letzte nn Buchstaben unterschiedlich sind (paarweise), dann gibt es ein B,B so dass es unendlich viele gibt Paare u , v ∈ Lu,v∈L gleicher Länge, die sich nur in ihren letzten B-B Buchstaben unterscheiden.
Wenn also uu und vv Binärzahlen darstellen, wird ihre Differenz höchstens unendlich oft 2 B2B betragen, was für Polynome unmöglich ist. Andererseits kann mit einer gewissen Zahlentheorie gezeigt werden, dass die Bedingung für jedes ganzzahlige Polynom pp erfüllt ist : Nehmen Sie x 1 , … , x n 6,x1,…,xn6 für das f ( x i ) ≠ f ( x j )f(xi)≠f(xj) und addieren Sie dann zu jedem von ihnen eine ausreichend große Zahl NN , um die gewünschten Wörter f ( xi + N )f(xi+N) .
Proof of the lemma. Take a large enough nn such that there are n6n6 words of equal length, w1,…,wn6w1,…,wn6 , that satisfy the conditions.
For each wiwi fix a way in which it can be generated from the context-free grammar.
(Warning! I'm not an expert of this field, so I might not use the proper terms.)
Say that the application of a rule A→BCA→BC splits two letters bb and cc of the final word, if the bb and cc are both derived from AA , but bb is derived from BB , while cc is derived from CC .
Each rule splits at most O(1)O(1) letters of wiwi from each other.
In any wiwi , there will be Ω(n)Ω(n) consecutive letters among the first n2n2 letters that are split from each other by some consecutive rules such that no two letters among the last nn letters are split from each other while applying these rules.
If we write these rules collectively for letter wiwi as Ai→B1iB2i…BniAi→B1iB2i…Bni , then no letter from the last nn letters is derived from BjiBji for j<nj<n , and B1iB2i…Bn−1iB1iB2i…Bn−1i are all converted into some part of the first n2n2 letters.
We can apply the pumping lemma to the rule Ai→B1iB2i…BniAi→B1iB2i…Bni if nn is large enough.
There are only (n22)(n22) choices for the interval of Ω(n)Ω(n) letters, O(n)O(n) options about what the pumping lemma gives (as it has O(1)O(1) length), so by the pigeonhole principle there will be two words for which these are all the same.
But then after pumping we can obtain an arbitrarily long common initial part for these two words, while we know that they'll differ only in their last nn bits.
quelle
Note. This is a much more detailed version of my other answer, as that didn't seem to be comprehensible enough. I've tried to convert it to resemble more standard pumping lemmas, but the full proof got way to complex. I recommend to read the statement of the first two lemmas to understand the main idea, then the statement of the Corollary, and finally the end, where I prove why the Corollary implies the answer to the question.
The proof is based on a generalization of the pumping lemma. The lemma that we need is quite elaborate, so instead of stating it right away, I start with some easier generalizations, eventually building up to more complicated ones. As I've later learned, this is very similar to the so-called interchange lemma.
Twin Pumping Lemma. For every context-free language LL there is a pp such that from any pp words s1,…,sp∈Ls1,…,sp∈L we can select two, ss and s′s′ , that can be written as s=uvwxys=uvwxy and s′=u′v′w′x′y′s′=u′v′w′x′y′ such that 1≤|vx|≤p1≤|vx|≤p , 1≤|v′x′|≤p1≤|v′x′|≤p and every word ˉuˉv1…ˉvnˉwˉxn…ˉx1ˉy∈Lu¯v¯1…v¯nw¯x¯n…x¯1y¯∈L , where ˉww¯ can be either ww or w′w′ , and similarly, ˉviv¯i can be either vv or v′v′ and ˉxix¯i can be either xx or x′x′ , but only such that ˉvi=vv¯i=v if and only if ˉxi=xx¯i=x (thus ˉvi=v′v¯i=v′ if and only if ˉxi=x′x¯i=x′ ), and ˉu=uu¯=u if and only if ˉy=yy¯=y and ˉu=u′u¯=u′ if and only if ˉy=y′y¯=y′ .
Moreover, if instead of pp , we are given p(n+44)p(n+44) words of length nn , we can additionally suppose for the selected two words that |u|=|u′||u|=|u′| , |v|=|v′||v|=|v′| , |w|=|w′||w|=|w′| , |x|=|x′||x|=|x′| and |y|=|y′||y|=|y′| .
This statement can be proved essentially the same way as the pumping lemma, we just need to pick some ss and s′s′ for which the same rule is pumped.
This can be done if p is large enough since there are only a constant number of rules. In fact, we don't even need that the same rule is pumped, but only that the non-terminal symbol is the same in the pumped rule.
For the moreover part, notice that for a word of length n there are only (n+44) options it can be broken into five subwords, thus the statement follows from the pigeonhole principle.
Next we give another way of generalizing the pumping lemma (and later we'll combine the two).
Nested Pumping Lemma. For every context-free language L there is a p such that for any k any word s∈L can be written as s=uv1…vkwxk…x1y such that ∀i 1≤|vixi|≤p and for every sequence (ij)mj=1 the word uvi1…vimwxim…xi1y∈L.
Note that the indices ij can be arbitrary from 1 to k, the same index can occur multiple times. The proof of the Nested Pumping Lemma is essentially the same as the original pumping lemma's, we just need to use that we obtain the same non-terminal symbol from itself k times - this is true if we do p(k−1)+1 steps (instead of the p from the original pumping lemma). We can also strengthen Ogden's lemma in a similar way.
Nested Ogden's Lemma. For every context-free language L there is a p such that for any k marking any at least pk positions in any word s∈L, it can be written as s=uv1…vkwxk…x1y such that ∀i 1≤ '# of marks in vixi'≤pk and for every sequence (ij)mj=1 the word uvi1…vimwxim…xi1y∈L.
Unfortunately, in our application pk would be too large, so we need to weaken the conclusion to allow non-nested vi-xi pairs. Luckily, using Dilworth, the structure stays simple.
Dilworth Ogden's Lemma. For every context-free language L there is a p such that for any k,ℓ marking any at least pkℓ positions in any word s∈L, it can be written either as
case (i): s=uv1…vkwxk…x1y, or as
case (ii): s=uv1w1x1…vℓwℓxℓy,
such that ∀i 1≤ '# of marks in vixi'≤pkℓ and for every sequence (ij)mj=1,
in case (i) the word uvi1…vimwxim…xi1y∈L, and
in case (ii) the word uvi11w1xi11…viℓℓwℓxiℓℓy∈L.
Proof: Take the derivation tree generating s. Call a non-terminal recurring if it appears again under itself in the derivation tree. By expanding the rule set, we can suppose that all non-terminal symbols are recurring in the derivation tree. (This is to be understood that we might have eliminated their recurrence; this doesn't matter, the point is that they can be pumped.) There are at least pkℓ leaves that correspond to a marked position. We look at the nodes where two marked letters split. There are at least Ω(pkℓ) such nodes. By the pigeonhole principle, at least Ω(pkℓ) correspond to the same non-terminal. Using Dilworth, Ω(√pk) of them are in a chain or Ω(√pℓ) are in an antichain, giving cases (i) and (ii), respectively, if p is large enough.
Now we are ready to state a big combination lemma.
Super Lemma. For every context-free language L there is a p such that for any k,ℓ marking the same at least pkℓ positions in N≥max(pn2k+2,pn3ℓ+1) words s1,…,sN∈L, each of length n, there are two words, s and s′, that can be written as s=uv1…vkwxk…x1y and s′=u′v′1…v′kw′x′k…x′1y′ OR as s=uv1w1x1…vℓwℓxℓy and s′=u′v′1w′1x′1…v′ℓw′ℓx′ℓy′ such that the respective lengths of the subwords are all the same, i.e., |u|=|u′|, |vi|=|v′i|, etc., and ∀i vixi contains a mark, and for every sequence (ij)mj=1 the word ˉuˉvi1…ˉvimˉwˉxim…ˉxi1ˉy∈L OR ˉuˉvi11ˉw1ˉxi11…ˉviℓℓˉwℓˉxiℓℓˉy∈L, respectively, where ˉz stands for z or z′, i.e., we can freely mix the intermediate subwords from s and s′, but only such that ˉu=u if and only if ˉy=y etc.
Proof sketch of Super Lemma: Apply the Dilworth Ogden's Lemma for each si. There are (n+2k+22k+2) and (n+3ℓ+13ℓ+1) possible options, respectively, where the boundaries between the subwords of si can be. There are a constant number of non-terminals in the language, thus by the pigeonhole principle, if p is large enough, the same non-terminal is pumped in the k/ℓ rules for at least two words, s and s′, that also have the same subword boundaries.
Unfortunately, the number N that comes from this lemma is too large for our application. We can, however, decrease it by demanding fewer coincidences among the subwords. Now we state the lemma that we'll use.
Special Lemma. For every context-free language L there is a p such that for any k marking the same at least pk positions in N=pkn2 words s1,…,sN∈L, each of length n, there are two words, s and s′, that can be written either as s=uv1…vkwxk…x1y and s′=u′v′1…v′kw′x′k…x′1y′ such that either
case (i): ∃i<k such that |xi|=|x′i|=0, |uv1…vi−1|=|u′v′1…v′i−1|, and |vi|=|v′i| (i.e., the two latter conditions mean that the position of vi is the same as the position of v′i), OR
case (ii): ∀i<k |xi|≥1, |x′i|≥1, |uv1…vk−1|=|u′v′1…v′k−1| and |vkwxk|=|v′kw′x′k| (i.e., these two conditions mean that the position of vkwxk is the same as the position of v′kw′x′k),
and (for both cases) ∀i vixi contains a mark, and for every sequence (ij)mj=1 the word ˉuˉvi1…ˉvimˉwˉxim…ˉxi1ˉy∈L, where ˉz stands for z or z′, i.e., we can freely mix the intermediate subwords from s and s′, but only such that ˉu=u if and only if ˉy=y etc., OR
case (iii): s and s′ can be written as s=uv1w1x1v2w2x2y and s′=u′v′1w′1x′1v′2w′2x′2y′ such that |u|=|u′| and |v1w1x1|=|v′1w′1x′1|, and ∀i vixi contains a mark, and uvh1w1xh1v2w2x2y∈L and u′vh1w1xh1v′2w′2x′2y′∈L.
The proof only differs from the Super Lemma's that there are k(n2) possible options for a word in case (i), which leaves (n2) options for case (ii), while in case (iii) there are (n2) options.
Corollary. If for every p there are t and n with n≥p(t+1)+t such that there are N=n3 words of length n in a context-free language L whose first p(t+1) letters are the same for each word, and their last t letters are different for each pair or words (i.e., the words look like si=sbegismidisendi such that |sbegi|=p(t+1), |smidi|=n−p(t+1)−t, |sendi|=t, and ∀i≠j sbegi=sbegj and sendi≠sendj), then there is a B such that there are infinitely many pairs of words ah≠bh∈L of equal length that differ only in their last B letters.
Proof: Take k=t+1 and apply the Special Lemma for our N words using N=n3≥p(t+1)n2, marking the first p(t+1) letters (that are the same in every word) to obtain s=uv1…vt+1wxt+1…x1y and s′=u′v′1…v′t+1w′x′t+1…x′1y′ OR s=uv1w1x1v2w2x2y and s′=u′v′1w′1x′1v′2w′2x′2y′.
If we are in case (i) of the Special Lemma, i.e., there is an i such that |xi|=|x′i|=0, |uv1…vi−1|=|u′v′1…v′i−1|, and |vi|=|v′i|, then uv1…vi−1=u′v′1…v′i−1 and vi=v′i also hold, as vi+1wxi+1 needs to contain a marked letter, thus the subwords preceding vi+1 consist of only marked letters, and these are the same in s and s′. We can take the words ah=uv1…vhi…vtwxt…x1y and bh=uv1…vhiv′i+1…v′tw′x′t…x′1y′ to obtain the desired pairs; since these words end the same way as s and s′, ah≠bh and they differ only in their last bounded many letters.
If we are in case (ii) of the Special Lemma, i.e., ∀i<k |xi|≥1, |x′i|≥1, |uv1…vt|=|u′v′1…v′t| and |vt+1wxt+1|=|v′t+1w′x′t+1|, then uv1…vt=u′v′1…v′t also holds, similarly as in the previous case. Now we can take ah=uv1…vtvht+1wxht+1xt…x1y and bh=uv1…vtvht+1wxht+1x′t…x′1y′; since |xt…x1y|=|x′t…x′1y′|≥t, these words certainly end differently and can differ only in their last bounded many letters. (Note that this is the only place where we really need that we can pump one word with a subword of the other one.)
If we are in case (iii) of the Special Lemma, i.e., s=uv1w1x1v2w2x2y and s′=u′v′1w′1x′1v′2w′2x′2y′ such that |u|=|u′| and |v1w1x1|=|v′1w′1x′1|, then u=u′ and v1w1x1=v′1w′1x′1 also hold, similarly as in the previous cases. Now we can take ah=uvh1w1xh1v2w2x2y∈L and bh=uvh1w1xh1v′2w′2x′2y′∈L; since v2 contains a marked letter, |v2w2x2y|≥t, thus these words certainly end differently and can differ only in their last bounded many letters.
This finishes the proof of the Corollary. Now let's see how to prove the original question from the Corollary.
Final proof. First we show that the condition of the Corollary is satisfied for every integer valued polynomial f. Set t=p−1 and n=Cp for some large enough C=C(f). The plan is to take some numbers x1,…,x2N (where N=2n3) for which f(xi)≠f(xj), and then add some sufficiently large number z to each of them to obtain the desired words si=f(xi+z). If the degree of f is d, then at most d numbers can take the same value, thus we can select x1,…,x2N from the first 2dN numbers, which means that they have log(dn) digits. In this case f(xi)=O((dN)d), thus each f(xi) will have at most dlogN+O(1)=O(logn) digits. If we pick z to be an n/d digit number, then f(z) will have n digits, and for each f(xi+z) only the last O(logn) digits can differ. The f(xi+z) will all have n or n+1 digits, thus at least half, i.e., N of them have the same length; these will be the si.
From the conclusion of the Corollary we obtain infinitely many pairs of numbers ah and bh, such that |ah−bh|≤2B, which is clearly impossible for polynomials.
quelle