Pumping lemma pro regulární jazyky

  • Užitečný nástroj, který umožňuje dokázat, že daný jazyk není regulární (neumožňuje dokázat, že jazyk regulární je)

Definice

  • Nechť je regulární jazyk, pak existuje číslo tak, že každý řetězec délky alespoň lze rozdělit na tři části , které splňují
    1. pro všechna
  • pokud je jazyk konečný (a tedy i regulární), pak lemma platí triviálně - zvolíme větší než je délka nejdelšího řetězce v

Postup při použití lemma v důkazu sporem

  1. Předpokládáme, že daný jazyk je regulární a tedy musí existovat z lemma
  • (nikdy nevolíme konkrétní , protože pokud není regulární, neexistuje)
  1. Zvolíme vhodný řetězec takový, že
  • ( je tedy nějak vyjádřeno pomocí ; opět nikdy nevolíme konkrétní řetězec!)
  1. Ukážeme, že pro každé rozdělení splňující podmínky a z lemma existuje tak, že nelze napumpovat dle bodu

Příklady

  1. Dříve jsme tvrdili, že není regulární jazyk.
  • Předpokládejme, že by byl
  • Pak by existovalo pro pumping lemma
  • Nechť .
  • Můžeme psát , kde a jsou v a
  • Pak by ale patřilo do , ale má víc než .

Pumping lemma pro bezkontextové jazyky

Definice

  • Nechť je bezkontextový jazyk, pak existuje číslo tak, že každý řetězec délky alespoň lze rozdělit na pět částí , které splňují
    1. pro všechna
  • Intuice: je bezkontextový, proto existuje PDA P, který jej rozpoznává; pokud máme dostatečně dlouhý řetězec , pak se v něm musí nějaký podřetězec opakovat, přičemž si na zásobník uloží výskyty tohoto podřetězce, a později je může srovnat s výskyty jiného podřetězce (proto mezu počtem opakování a může být závislost). Zásobník umožňuje pouze LIFO přístup, a proto nemůže zároveň srovnávat výskyty více jak jedné dvojice; navíc řetězce ze zásobníku čteme v opačném pořadí, než byly uloženy (proto )

Předchozí: Minimalizace konečného deterministického automatu Následující: Bezkontextové jazyky a jejich vlastnosti (uzávěrové vlastnosti, jednoznačnost) Celý okruh: 1. Teoretické základy informatiky