Tillväxtlemma för sammanhangsfria språk

Tillväxtlemmat för kontextfria språk  är ett lemma som, i analogi med lemma med samma namn för reguljära språk, gör det relativt enkelt att bevisa att ett givet språk inte är kontextfritt .

Formulering

Om L är ett CS-språk över alfabetet V, då . Med andra ord kan vilken tillräckligt lång kedja som helst i CS-språket delas upp i fem delar så att upprepningen av den andra och fjärde delen ett godtyckligt antal gånger (kanske 0) inte leder till att man går utanför språket.


Bevis

Låt ett CS-språk (V, N, S, G) ges, och språkets grammatik reduceras (det vill säga att det inte innehåller regler av formen A → ε eller A → B).

Eftersom antalet icke-terminala symboler är ändligt, liksom längden på varje slutledningsregel, begränsas längden på kedjan, vars höjd av härledningsträdet inte överstiger |N|, också uppifrån av en viss nummer n.

Låt oss överväga en kedja . På grund av ovanstående kommer höjden på dess härledningsträd att överstiga |N|, det vill säga det kommer att finnas en väg från axiomet till en av terminalsymbolerna, vars längd kommer att vara större än antalet icke-terminala grammatikens symboler. Eftersom en icke-terminal symbol ersätts vid varje steg, kommer åtminstone en icke-terminal Q-symbol att ersättas två gånger i denna väg. Det följer av detta att det finns en kedja xQy med icke-tom x eller y som härrör från Q. Därför, i härledningsprocessen S →* α, kan härledningsprocessen Q →* xQy upprepas så många gånger som önskas eller utelämnas.

En trivial följd: i vilket oändligt CS-språk som helst finns det en oändlig delmängd av strängar vars längder bildar en ökande aritmetisk progression.

Användningsexempel

Se även

Litteratur