Vækstlemmaet for kontekstfrie sprog er et lemma, der analogt med lemmaet af samme navn for regulære sprog gør det relativt nemt at bevise, at et givet sprog ikke er kontekstfrit .
Hvis L er et CS-sprog over alfabetet V, så .
Med andre ord kan enhver tilstrækkelig lang kæde i CS-sproget opdeles i fem dele, således at gentagelsen af anden og fjerde del et vilkårligt antal gange (måske 0) ikke fører til at gå ud over sproget.
Lad et CS-sprog (V, N, S, G) angives, og sprogets grammatik reduceres (det vil sige, at det ikke indeholder regler af formen A → ε eller A → B).
Da antallet af ikke-terminale symboler er begrænset, såvel som længden af hver inferensregel, er længden af kæden, hvor højden af afledningstræet ikke overstiger |N|, også begrænset ovenfra af en vis nummer n.
Lad os overveje en kæde . I kraft af ovenstående vil højden af dets afledningstræ overstige |N|, det vil sige, at der vil være en sti fra aksiomet til et af terminalsymbolerne, hvis længde vil være større end antallet af ikke-terminale grammatikkens symboler. Da et ikke-terminalt symbol udskiftes ved hvert trin, vil mindst ét ikke-terminalt Q-symbol blive erstattet to gange i denne vej. Det følger heraf, at der er en kæde xQy med ikke-tom x eller y, der stammer fra Q. Derfor kan afledningsprocessen Q →* xQy i afledningsprocessen S →* α gentages så mange gange som ønsket eller udelades.
En triviel konsekvens: i ethvert uendeligt CS-sprog er der en uendelig delmængde af strenge, hvis længder danner en stigende aritmetisk progression.
Formelle sprog og formelle grammatikker | |
---|---|
Generelle begreber | |
Type 0 | |
Type 1 |
|
Type 2 | |
Type 3 |
|
parsing |