Růstové lemma

Pumpovací lemma ( růstové lemma , pumping lemma ; anglicky  pumping lemma ) je důležitým tvrzením teorie automatů , které v mnoha případech umožňuje ověřit, zda je daný jazyk automat . Protože všechny konečné jazyky jsou automaty, má smysl provádět tuto kontrolu pouze pro nekonečné jazyky. Výraz „pumpování“ v názvu lemmatu odráží možnost opakovaného opakování nějakého podřetězce v libovolném řetězci vhodné délky v libovolném jazyce nekonečného automatu.

Existuje také růstové lemma pro bezkontextové jazyky , ještě obecnější tvrzení je růstové lemma pro indexové jazyky .

Formulace

Pro jazyk nekonečného automatu  nad abecedou existuje přirozené číslo , takže pro každé slovo délky alespoň existují slova taková, že , a pro každé nezáporné celé číslo je řetězec slovem jazyka .

Zápis v kvantifikátorech:

.

Důkaz

Nechť jazyk automatu obsahuje nekonečný počet řetězců a předpokládejme, že je rozpoznán deterministickým konečným automatem se stavy . Pro kontrolu závěru lemmatu zvolíme libovolný řetězec tohoto jazyka, který má délku .

Pokud konečný automat rozpozná , pak je řetězec tímto automatem povolen, to znamená, že v automatu existuje cesta délky od počátečního do jednoho z koncových stavů, označená symboly řetězce . Tato cesta nemůže být jednoduchá, musí procházet přesně stavem, kdežto automat stavy má . To znamená, že tato cesta prochází alespoň dvakrát stejným stavem automatu , to znamená, že na této cestě je cyklus s opakujícím se stavem. Nechť je to opakující se stav .

Rozdělme řetězec na tři části, takže , kde  je podřetězec, který přechází ze stavu zpět do stavu , a  je podřetězec, který přechází ze stavu do konečného stavu. Všimněte si, že obojí a může být prázdné, ale podřetězec nemůže být prázdný. Pak je ale zřejmé, že automat musí povolit i řetězec , protože opakovaný podřetězec opět sleduje cyklickou cestu od do , stejně jako řetězec a jakýkoli tvar .

Tato úvaha představuje důkaz čerpacího lemmatu.

Opačná formulace

Další forma tohoto lemmatu, kterou je někdy vhodnější použít k prokázání, že určitý jazyk je neautomatický, pro jazyk nad abecedou je následující – pokud platí:

pak je jazyk  neautomatický.

K prokázání, že jazyk je neautomatický, lze také použít skutečnost, že průnik regulárních jazyků je pravidelný. Je tedy problematické přímo aplikovat pumpovací lemma na jazyk pravidelných závorkových struktur v abecedě , ale jeho průnik s jazykem dává jazyk , jehož neautomatickost triviálně vyplývá z pumpovacího lemmatu.

Literatura

Odkazy