Własności języków regularnych

by Jerry Sky

2020-10-22



1. Lemat o pompowaniu

Niech LL będzie językiem regularnym. Wówczas istnieje stała nn taka, że jeśli zz jest dowolnym słowem z LL oraz zn|z| \ge n, to zz możemy przedstawić w postaci z=uvwz = uvw, gdzie uvn|uv| \le n oraz v1|v| \ge 1 oraz uviwuv^iw należy do LL dla każdego i0i \ge 0.

1.1. D-d


2. Dowodzenie, że LL nie jest regularny

  1. Załóżmy, że LL jest regularny i istnieje odpowiednie nn.
  2. Wybierzmy słowo zz zgodne z lematem (jego długość musi zależeć od nn).
  3. Pokażmy, że dla każdego podziału zz zgodnego z lematem istnieje ii takie, że uviwLuv^iw \notin L.

2.1. Przykład

Mamy L={0i2:iN}L = \left\{ 0^{i^2}: i \in \mathbb{N} \right\}.

Załóżmy, że LL jest regularny i weźmy nn z Lematu o pompowaniu.
Weźmy z=0n2z = 0^{n^2} oraz podzielmy z=uvwz = uvw w taki sposób, że:

Bierzemy i=2i = 2 (czyli patrzymy czy słowo należy do języka, jeśli zdwukrotnimy vv).

(szukamy słów o długości równej kwadratowi liczby naturalnej)

n2<uv2w=uvw+vn2+n<(n+1)2 n^2 < |uv^2w| = |uvw| + |v| \le n^2 + n < (n+1)^2

Nasze nowe słowo jest w przedziale otwartym (n2;(n+1)2)(n^2; (n+1)^2) co oznacza, że na pewno nie spełnia żądanego warunku długości słowa (miało być kwadratem liczby naturalnej).
Zatem LL nie jest regularny.

2.2. Przykład

Mamy L={x{a,b}:xa=xb}L = \left\{ x \in \left\{ a,b \right\}^*: |x|_a = |x|_b \right\} czyli takie słowa, które mają taką samą liczbę aa co liczbę liter bb.

2.3. Przykład

Mamy L={x{a,b}:xaxb}L = \left\{ x \in \left\{ a,b \right\}^*: |x|_a \neq |x|_b \right\} czyli takie słowa, które mają różne liczby literek aa oraz bb.


3. Lemat o zamknięciu na działania

Klasa języków regularnych jest zamknięta na operację sumy, dopełnienia, przecięcia, złożenia i domknięcia Kleene’ego.

3.1. D-d

  1. Suma, złożenie i domknięcie Kleene’ego (z definicji RE)

  2. Dopełnienie:

    jeśli LL jest akceptowany przez DFA M=(Q,Σ,δ,q0,F)M = (Q, \Sigma, \delta, q_0, F)
    wówczas L\overline{L} akceptowany przez M=(Q,Σ,δ,q0,QF)M' = (Q,\Sigma, \delta, q_0, Q \setminus F).

  3. Przecięcie:

    Jeśli L1L_1 oraz L2L_2 są akceptowane przez odpowiednie DFA M1=(Q1,Σ,δ1,q1,F1)M_1 = (Q_1, \Sigma, \delta_1, q_1, F_1) oraz M2=(Q2,Σ,δ2,q2,F2)M_2 = (Q_2, \Sigma, \delta_2, q_2, F_2)
    wówczas L1L2L_1 \cap L_2 jest akceptowany przez M=(Q1×Q2,Σ,δ,(q1,q2),F1×F2)M = (Q_1 \times Q_2, \Sigma, \delta, (q_1, q_2), F_1 \times F_2), gdzie δ((p,q),a)=(δ1(p,a),δ2(q,a))\delta((p,q),a) = (\delta_1(p,a), \delta_2(q,a)).

  4. Suma:

    M=(Q1×Q2,Σ,δ,(q1,q2),(Q1×Q2)((Q1F1)×(Q2F2)))M = \big(Q_1 \times Q_2, \Sigma, \delta, (q_1, q_2), (Q_1 \times Q_2) \setminus ((Q_1 \setminus F_1) \times (Q_2 \setminus F_2))\big).


4. Lemat o liczebności języków

Zbiór słów akceptowanych przez DFA MM o nn stanach jest:

  1. niepusty     M\iff M akceptuje słowo o długości mniejszej niż nn
  2. nieskończony, jeśli MM akceptuje słowo o długości ll, dla nl2nn \le l \le 2n.

5. Lemat o równoważności języków

Istnieje algorytm rozstrzygający czy dwa automaty skończone są równoważne (akceptują te same języki).

5.1. D-d