Сечение на регулярни езици
Нека имаме два регулярни езика L1, L2. Ще докажем, че тяхното сечение L = L1 ∩ L2 също е регулярен език.
Идея на доказателството
Имаме два регулярни езика L1 и L2 и искаме да докажем, че тяхното сечение L1 ∩ L2 е отново регулярен език. Тъй като L1 и L2 са регулярни езици, съществуват крайни автомати A1 и A2, които приемат езиците L1 и L2, т.е. L(A1) = L1 и L(A2) = L2. Ние ще построим краен автомат A, който ще приема езика L1 ∩ L2, с което ще докажем, че езикът L1 ∩ L2 е регулярен.
Една дума принадлежи на сечението на езиците, ако принадлежи и на езика L1, и на L2. Т.е. думата трябва да се приема и от автомата A1, и от автомата A2. Ще използваме точно същата идея, каквато използвахме при обединението на регулярни езици, само ще променим множеството на крайните състояния.
Формализация на метода
Имаме два автомата,
Построяваме автомата A = ⟨Q, Σ, δ, q, F⟩, който приема езика L(A1) ∩ L(A2), като
- Q = Q1 × Q2
- Σ= Σ1 ∩ Σ2
- q = ⟨q0, p0⟩
- F = F1 × F2
За преходната функция δ е в сила следното равенство:
Пример
Нека имаме този автомат A1, който приема всички думи, които съдържат четен брой единици:
и автомата A2, който приема думите, съдържащи нечетен брой нули:
Ще построим автомат, който ще приема сечението на тези езици. Множеството на състоянията на този автомат има вида Q = Q1 × Q2, началното състояние е състоянието ⟨q0, p0⟩ и крайните състояния са F1 × F2:
След това довършваме преходите така, че δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩:
В този автомат например от състоянието ⟨q0, p0⟩ има преход за символа 0 към състоянието ⟨q0,p1⟩. Това означава, че автоматът A1 има от състоянието q0 преход за символа 0 обратно към състоянието q0. Автоматът A2 пък има за символа 0 преход от състоянието p0 към състоянието p1.
Автомата можем да изпробваме. Той трябва да приема думи като 110 или 00000 (съдържат четен брой единици и нечетен брой нули), но не трябва да приема думи като 11, 111, 1010.
Източници
Глави: Затвореност на регулярните езици, Обединение на регулярни езици, Сечение на регулярни езици, Разлика на регулярни езици, Допълнение на регулярен език, Конкатенация на регулярни езици, Затваряне на регулярен език