== Операции над языками ==
Пусть <tex>L</tex> и <tex>M</tex> {{---}} [[Основные определения: алфавит, слово, язык, конкатенация, свободный моноид слов#deflanguage|языки]]. Тогда над ними можно определить следующие операции.
#Теоретико-множественные операции:
#* <tex>L \cup M</tex> {{---}} объединение,
#* <tex>L \setminus M</tex> {{---}} разность,
#* <tex>\overline{L}=\Sigma^* \setminus L</tex> {{---}} дополнение.
#Конкатенация : <tex>LM=\left\{\alpha\beta|\alpha \in L, \beta \in M\right\}</tex>.#Конкатенация с обратным языком: <tex>LR^{-1} = \{ w \mid \exists y \in R : wy \in L\}</tex>; конкатенация с обратным словом: <tex>Ly^{-1} = L\{y\}^{-1}, y \in \Sigma^*</tex>.#Степень языка : <tex>L^k=\begin{cases}
\{\varepsilon\}, k = 0\\
LL^{k-1}, k > 0.
\end{cases}
</tex>
#Замыкание Клини : <tex>L^*=\bigcup\limits_{i=0}^{\infty}L^i</tex>.
=== Примеры ===
* <tex>(\{0\}\{0\}^*) \cup (\{1\}\{1\}^*)</tex> — аналогично предыдущему, но не содержит пустое слово.
* <tex>(\{0\} \cup \{1\})^* = \{0, 1\}^*</tex> — содержит все двоичные векторы и пустую строку.
* Если <tex>L_p</tex> — язык строковых — язык десятичных представлений всех простых чисел, то язык <tex>(L_p \setminus (\{3\}\{1,2,3,4,5,6,7,8,9,0\}^*))</tex> будет содержать строковые десятичные представления простых чисел, не начинающихся с тройки.* <tex>\{\mathrm{ab, ba, bba, abab, aa}\}a^{-1} = \{\mathrm{b, bb, a}\}</tex>.