Является ли дополнение {ww | …} Без контекста?


14

Определим язык LL как L = { a , b } - { w w w { a , b } }L={a,b}{www{a,b}} . Другими словами, LL содержит слова, которые не могут быть выражены как какое-то слово, повторенное дважды. Является ли LL контекстно-свободный или нет?

Я пытался пересечь LL с a b a b abab , но до сих пор ничего не могу доказать. Я также посмотрел на теорему Париха, но это не помогает.


Обратите внимание на этот тесно связанный вопрос .
Рафаэль

Ответы:


28

Это без контекста. Вот грамматика:

S A | Б | A B | B A A a | a A a | a A b | b A b | b A a B b | a B a | a B b | b B b | b B aSA|B|AB|BA
Aa|aAa|aAb|bAb|bAa
Bb|aBa|aBb|bBb|bBa

A генерирует слова нечетной длины с a в центре. То же самое для B и б .AaBb

Я представлю доказательство того, что эта грамматика верна. Пусть L = { a , b } { w w w { a , b } } (язык в вопросе).L={a,b}{www{a,b}}

Теорема. L = L ( S ) . Другими словами, эта грамматика порождает язык в вопросе.L=L(S)

Доказательство. Это , конечно , имеет место для всех нечетных слов длины, так как эта грамматика порождает все нечетные длины слов, как это делает L . Итак, давайте сосредоточимся на четных словах.L

Предположим, что x L имеет четную длину. Я покажу, что x L ( G ) . В частности, я утверждаю, что x можно записать в форме x = u v , где и u, и v имеют нечетную длину и разные центральные буквы. Таким образом, x может быть получен из A B или B A (в зависимости от того, является ли центральная буква u буквой a или b ). Обоснование претензии: пусть я буква хxLxL(G)xx=uvuvxABBAuabixобозначим x i , так что x = x 1 x 2x n . Тогда, поскольку x отсутствует в { w w w { a , b } n / 2 } , должен существовать некоторый индекс i, такой что x ix i + n / 2 . Следовательно, мы можем взять u = x 1x 2 i -xix=x1x2xnx{www{a,b}n/2}ixixi+n/21 иv= x 2 i x n ; центральная букваuбудет x i , а центральная букваvбудет x i + n / 2 , поэтому по построениюu,vимеют разные центральные буквы.u=x1x2i1v=x2ixnuxivxi+n/2u,v

Далее предположим, что x L ( G ) имеет четную длину. Я покажу , что мы должны иметь х L . Если x имеет четную длину, он должен быть получен из A B или B A ; без ограничения общности, предположу , что выводимо из A B , и х = у v , где у выводим из А и V выводим из B . Если u , v имеют одинаковую длину, то мы должны иметь u xL(G)xLxABBAABx=uvuAvBu,vv (поскольку они имеют разные центральные буквы), поэтому x { w w w { a , b } } . Итак, предположим , что u , v имеют разную длину, скажем, длину и n - соответственно. Тогда их центральные буквы - это u ( + 1 ) / 2 и v ( n - + 1 ) / 2 . Тот факт, что тыuvx{www{a,b}}u,vnu(+1)/2v(n+1)/2,vu,v have different central letters means that u(+1)/2v(n+1)/2u(+1)/2v(n+1)/2. Since x=uvx=uv, this means that x(+1)/2x(n++1)/2x(+1)/2x(n++1)/2. If we attempt to decompose xx as x=wwx=ww where w,ww,w have the same length, then we'll discover that w(+1)/2=x(+1)/2x(n++1)/2=w(+1)/2w(+1)/2=x(+1)/2x(n++1)/2=w(+1)/2, i.e., wwww, so x{www{a,b}}x{www{a,b}}. In particular, it follows that xLxL.


2
I've edited the answer to provide a proof of correctness for this grammar, based upon the hint/sketch given by Evgeny Eltishev. Hopefully it should be clearer now why this works.
D.W.

Can it generate "aabb" ?
manasij7479

1
@manasij7479 Yes: SABaBa(aBb)aabb.
J.-E. Pin

3

This language is context free it was proved in the following paper:

Tomaszewski, Zach. "A Context-Free Grammar for a Repeated String." Journal of Information and Computer Science, 2012 (PDF).

The grammar is as follows: SEUϵEABBAAZAZaBZBZbUZUZZZab


8
Welcome! The following is not a criticism of this answer. The Journal of Information and Computer Science is published by "World Academic Union", which is on Beall's list of predatory open access publishers. It's sad that there are companies in the world who will take relatively large amounts of people's money to publish papers that do nothing more than solve undergraduate-level exercises.
David Richerby

I don't have enough reputation to comment on the above answer. But that grammar seems wrong to me. It cannot generate "aaab" which is in the language.
A. Mashreghi

1
After performing CFGCNFCYK (you should try it), SABaAaBaaaBaaab, so it seems it can generate aaab.
Evil

You right it does
A. Mashreghi
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.