Lemat o pompowaniu dla języków bezkontekstowych
Z Wikipedii
Lemat o pompowaniu dla języków bezkontekstowych to twierdzenie służące do udowadniania, że dany język nie jest bezkontekstowy. Jego uogólnieniem jest lemat Ogdena.
Spis treści |
[edytuj] Treść lematu
Dla każdego języka bezkontekstowego istnieje taka stała , że dla każdego słowa należącego do tego języka o długości co najmniej , możemy podzielić to słowo na w taki sposób, że:
- przynajmniej jedno z , jest niepuste
- długość wynosi co najwyżej
- dla każdego , słowo postaci , w szczególności , należy do tego języka
[edytuj] Dowód lematu
Przypomnijmy, że dla każdego języka bezkontekstowego istnieje gramatyka bezkontekstowa, która go generuje. Dla rozpatrywanego języka oznaczmy tę gramatykę przez G. Oznaczmy przez p najmniejszą taką liczbę, że dla każdej produkcji z gramatyki G zachodzi . Przez m oznaczmy ilość symboli nieterminalnych w gramatyce G. Pokażemy teraz, że dla n = pm + 1 zachodzi teza twierdzenia.
Przyjrzyjmy się minimalnemu drzewu wyprowadzenia słowa z w gramatyce G (o najmniejszej liczbie wierzchołków). Ponieważ rozgałęzienie wynosi maksymalnie p, to wysokość drzewa wynosi przynajmniej n + 1. Zauważmy więc, że na ścieżce prowadzącej od korzenia do dowolnego węzła o głębokości większej niż n co najmniej jeden symbol nieterminalny powtarza się (i to na wśród ostatnich n + 1 wierzchołków), oznaczmy go przez γ. Zauważmy, że wywód słowa z możemy przedstawić jako złożenie przekształceń , następnie , a na końcu .
Zauważmy więc, że iterując drugie przekształcenie k razy możemy wygenerować używając gramatyki G słowo uvkwxky. Niepustość słowa vx wynika z tego, że w przeciwnym wypadku można by pominąć drugi duży krok (z trzech) i uzyskać niższe drzewo wyprowadzenia, a przecież rozpatrywane tu jest minimalne. Nierówność wynika z tego, że wysokość poddrzewa zaczepionego w drugim od dołu nieterminalu jest nie większa od m + 1 - taki wybraliśmy, a rozgałęzienie drzewa co najwyżej p, zatem długość słowa vxy nie może być dłuższa niż n = pm + 1. [1]
[edytuj] Technika dowodzenia
Lemat o pompowaniu wykorzystuje się, podobnie jak w przypadku języków regularnych, do dowodzenia nie wprost, że jakiś język nie jest bezkontekstowy. Plan dowodu jest następujący:
- Zakładamy nie wprost, że język jest bezkontekstowy.
- Z lematu o pompowaniu bierzemy stałą .
- Budujemy słowo , być może zależne od .
- Pokazujemy, że niezależnie od podziału słowa na dla pewnego słowo nie należy do badanego języka. W ten sposób otrzymujemy sprzeczność i kończymy dowód nie wprost.
[edytuj] Literatura
- ↑ ftp.mimuw.edu.pl/People/urzy/Jaio/jaio0203.pdf
Zobacz też: Lemat o pompowaniu dla języków regularnych