Це без контексту. Ось граматика:
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 | б Б аS→A|B|AB|BA
A→a|aAa|aAb|bAb|bAa
B→b|aBa|aBb|bBb|bBa
породжує слова непарної довжини з а в центрі. Те саме для B і b .AaBb
Я представлю доказ того, що ця граматика правильна. Нехай (мова у питанні).L={a,b}∗∖{ww∣w∈{a,b}∗}
Теорема. . Іншими словами, ця граматика породжує мову у питанні.L=L(S)
Доказ. Це , звичайно , має місце для всіх непарних слів довжини, так як ця граматика породжує все непарні довжини слів, як це робить . Тож давайте зосередимось на словах рівної довжини.L
Припустимо, має рівну довжину. Я покажу, що x ∈ L ( G ) . Зокрема, я стверджую, що x можна записати у вигляді x = u v , де і u, і v мають непарну довжину і мають різні центральні літери. Таким чином, x може бути похідний або від A B, або B A (відповідно до того , що центральна буква u є a або b ). Обґрунтування позову: Нехай i- й лист xx∈Lx∈L(G)xx=uvuvxABBAuabixпозначати , так що x = x 1 x 2 ⋯ x n . Тоді оскільки x не знаходиться в { w w ∣ w ∈ { a , b } n / 2 } , повинен існувати якийсь індекс i такий, що x i ≠ x i + n / 2 . Отже, ми можемо взяти u = x 1 ⋯ x 2 i -xix=x1x2⋯xnx{ww∣w∈{a,b}n/2}ixi≠xi+n/2 іv= x 2 i ⋯ x n ; центральною літероюuбуде x i , а центральною літероюvбуде x i + n / 2 , тому за побудовоюu,vмають різні центральні літери.u=x1⋯x2i−1v=x2i⋯xnuxivxi+n/2u,v
Далі припустимо, що має рівну довжину. Я покажу , що ми повинні мати х ∈ L . Якщо х має рівну довжину, вона має бути похідною або від A B, або B A ; без обмеження спільності, припущу , що виводиться з A B , і х = у v , де у виводимо з А і V виводимо з B . Якщо u , v мають однакові довжини, тоді ми повинні мати u ≠x∈L(G)x∈LxABBAABx=uvuAvBu,v (оскільки вони мають різні центральні букви), так x ∉ { w w ∣ w ∈ { a , b } ∗ } . Отже, припустимо, що u , v мають різну довжину, скажімо, довжина ℓ і n - ℓ відповідно. Тоді їх центральними літерами є u ( ℓ + 1 ) / 2 і v ( n - ℓ + 1 ) / 2 . Те, що уu≠vx∉{ww∣w∈{a,b}∗}u,vℓn−ℓu(ℓ+1)/2v(n−ℓ+1)/2 мають різні центральні літери, означає, що u ( ℓ + 1 ) / 2 ≠ v ( n - ℓ + 1 ) / 2 . Оскільки x = u v , це означає, що x ( ℓ + 1 ) / 2 ≠ x ( n + ℓ + 1 ) / 2 . Якщо ми спробуємо розкласти х як x = w wu,vu(ℓ+1)/2≠v(n−ℓ+1)/2x=uvx(ℓ+1)/2≠x(n+ℓ+1)/2x Де w , w ' мають однакову довжину, тоді ми виявимо, що w ( ℓ + 1 ) / 2 = x ( ℓ + 1 ) / 2 ≠ x ( n + ℓ + 1 ) / 2 = w ′ ( ℓ + 1 ) / 2 , тобто w ≠ w ′ , так x ∉ { w wx=ww′w,w′w(ℓ+1)/2=x(ℓ+1)/2≠x(n+ℓ+1)/2=w′(ℓ+1)/2w≠w′ . Зокрема, це означаєщо х ∈ L .x∉{ww∣w∈{a,b}∗}x∈L