Конспект лекций москва 2004 удк 519. 713(075)+519. 76(075) ббк 22. 18я7

Вид материалаКонспект

Содержание


2. Языки. Операции над языками
2.1. Теоретико-множественные операции
2.2.Специфические операции
V* (алфавит можно рассматривать как язык, состоящий из односимвольных слов) образует язык, состоящий из всех возможных цепочек,
3. Абстрактные формальные системы
Каноническая система
А существует каноническая система над А
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   21

2. Языки. Операции над языками


Произвольное множество цепочек над алфавитом V, иначе любое подмножество свободной полугруппы V*, называется фомальным языком над V. Поэтому язык может быть задан как любое множество:
  • перечислением элементов;
  • ограничивающим свойством;
  • через известные множества;
  • порождающей процедурой.

В основном будем использовать четвёртый способ, но рассмотрение языков начнем с третьего способа их представления.

Например, для любого V множество слов четной длины является языком. Множество слов нечетной длины также является языком, но в отличие от первого — не замкнутым относительно операции конкатенации. Будем обозначать языки буквой L (с индексами или без них). Рассмотрим операции над языками.

Так как язык является множеством, то применимы все соответствующие операции, для которых выполняются все законы теории множеств.

В частности,  L,  L.

2.1. Теоретико-множественные операции


Пусть L1 и L2 – два языка над алфавитом V. Язык L называется объединением этих языков ( обозначается L = L1  L2 ), если L ={x / x L1  x L2}.

Пересечением языков L1 и L2 называется язык L (обозначается L = L1 L2 ), такой, что L ={x / x L1 & x L2}.

Дополнением языка L1 до V* называется язык L (обозначается L=V*\L1), такой, что L={ x/ xV* & x L1}.

2.2.Специфические операции


Произведением (иначе конкатенацией) языков L1 и L2 называется язык L (обозначается L=L1L2), если L={x y/xL1 & yL2}.

Например, L1={ ac, a }, L2={ cb, b}, тогда L1L2 ={ acb, accb, ab}.

Свойства операции конкатенации:
  1. операция умножения языков ассоциативна:

L1 (L2 L3)= (L1 L2) L3;
  1. операция умножения языков дистрибутивна относительно объединения:

L (L1L2 ) = LL1  LL2 ,

(L1L2 ) L = L1L  L2L;
  1. операция умножения языков не коммутативна: L1 L2 L2 L1.
  2. L {}= {} L = L;
  3. L(L1L2 )  LL1  LL2 , в общем случае равенства нет, что легко показать, подобрав соответствующий пример.

В силу ассоциативности операции произведения, как и в случае конкатенации цепочек, записывается как L=L1n. По определению, L0={}. Отметим, что {}   . так как (пустой язык) вообще не содержит никаких цепочек.

Итерацией языка L1 называется язык L (обозначается L=L1*), если L=L10  L11  L12 … =. Как нетрудно видеть, итерация алфавита V* (алфавит можно рассматривать как язык, состоящий из односимвольных слов) образует язык, состоящий из всех возможных цепочек, составленных из символов V. Это обстоятельство и объясняет, почему V* используется для обозначения всех слов над алфавитом V.

Вводится также операция усеченной итерации. L называется усеченной итерацией языка L1 (обозначается L=L1+), если L=L10  L11  L12 … =.

3. Абстрактные формальные системы


Абстрактная формальная система – это
  1. Алфавит А ( множество слов в этом алфавите – А*).
  2. Разрешимое множество А1  А*, элементы множества А1 называют аксиомами.
  3. Конечное множество вычислимых отношений Ri (1, …, n, ) на множестве A*, называемых правилами вывода. В этом случае слово непосредственно выводимо из слов 1, …, n по правилу Ri.

Аксиомы тоже могут быть заданы как унарные отношения, но это не всегда удобно.

Выводимость. Вывод формулы В из формул A1, A2, … , An – последовательность формул F1, F2, … , Fm = B, такая, что Fi (i=1,…, m) – либо аксиома, либо одна из формул A1, A2, … , An, либо непосредственно выводима из некоторого подмножества множества {F1, F2, … , Fi-1}по одному из правил вывода. Если существует вывод формулы В из формул A1, A2, … , An, то В выводима из A1, A2, … , An . Множество формул, выводимых из аксиом, называется теоремами теории.

Теорема 1. Для любой формальной теории множество выводимых в ней слов перечислимо.

Доказательство.

Рассмотрим А** множество всех конечных последовательностей 1, …, n, где i – слова в алфавите А. А** – перечислимо. Из-за разрешимости множества аксиом и вычислимости правил вывода по любой последовательности можно эффективно узнать, является ли она выводом в данной формальной системе (FS).

Если в процессе перечисления А** отбрасывать все последовательности, не являющиеся выводами, то получаем перечисление множества выводов, а значит, последних слов выводов.

Следовательно, множество слов (формул), выводимых в произвольной формальной системе, перечислимо.

Примеры формальных систем: системы продукций Поста (канонические системы), системы подстановок, формальные грамматики, исчисления и т.д.

Каноническая система – это , где

A= {a1,a2,…, an} – алфавит констант,

X= {x1, x2,…,xm} – алфавит переменных,

M= {M1, M2, …, Mk} – множество аксиом, Mi(AX)*,

R = {R1, R2, …, Rl} – множество продукций, имеющих вид 1, 2,…, j, где i, (AX)*, 1, 2,…,j называются посылками, – следствием (заключением).

Слова в (AX)* называются термами, слова в А* – просто словами.

Слово называется применением аксиомы , если получается из подстановкой слов вместо переменных.

Слово непосредственно выводимо из 1, …, n применением продукции R , если существует подстановка слов вместо переменных в продукцию R, которая посылки превратит в 1, …, n, а заключение – в .

Например, из acab , cabb применением продукции a x1 b, x1 b x2  b x2 (подстановка x1=ca, x2=b) непосредственно выводимо bb.

Выводимость – транзитивное и рефлексивное замыкание непосредственной выводимости.

Доказуемое в формальной системе утверждение (теорема формальной системы) – утверждение, выводимое из множества аксиом.

Например, формальная система <{I}, {x}, {I}, {xx I I}> позволяет построить множество нечетных чисел в унарном представлении.

Теорема 2. Для любого перечислимого множества М слов в алфавите А существует каноническая система над А, множество теорем которой совпадает с М (доказательство с использованием машин Тьюринга приводится в [3]).