Как и обещал, сейчас будет много постов о простых и давно известных вещах. Прошу меня поправлять, если вдруг начну писать бред.
0. Рекурсивно-перечислимые множества. Формальные системы.Алфавитом называется конечный набор
символов. Конечные цепочки символов алфавита -
слова в этом алфавите. Множество всех слов в алфавите
обозначается
. Пустое слово обозначается буквой
.
Языком в алфавите
называется произвольное множество слов
.
Не для всякого языка найдется алгоритм, который позволяет перечислять все слова языка (потому что алгоритмов счетное число, а языков - континуум). Языки, для которых такой алгоритм существует, называются
рекурсивно-перечислимыми.
Удобно задавать перечисляющий алгоритм в виде
формальной грамматики. Формальная грамматика над алфавитом
задается следующими тремя компонентами:
1. Алфавитом нетерминалов
, не пересекающимся с
.
2. Начальным нетерминалом
.
3. Множеством продукций вида
, где
, причем
содержит хотя бы один нетерминал.
Слово
называется непосредственно выводимым из слова
(обозначение
), если существует продукция
такая, что
,
, т.е.
получается из
заменой подстроки, являющейся левой частью продукции, на соотв. правую часть. Слово
называется выводимым из слова
(
), если существует цепочка непосредственных выводимостей
Грамматика задает язык
.
Примеры.
1. Алфавит
, нетерминалы
. Продукции:
.
Языком соответствующем этой грамматике, является язык
, так как выводимыми из
строками являются только строки вида
и
.
2. Язык Дика.
,
. Продукции:
.
Словами этого языка являются сбалансированные скобочные последовательности, например
,
и т.п.
3.
,
. Продукции:
.
Словами этого языка являются слова вида
, где
и
не содержат знаков равенства и имеют одинаковое количество букв
и
в своем составе.
4.
,
. Продукции
. Язык - все строки вида
, где
.
Теперь определим
формальную систему, или теорию. Теория задается следующими четырьмя компонентами:
1. Алфавит
.
2. Множество
формул - некоторый язык над алфавитом
.
3. Множество
аксиом - подмножество множества формул.
4. Множество
правил вывода, по которым можно получать из формул формулы.
Формула называется
теоремой формальной теории, если она является аксиомой или может быть получена из аксиом последовательным применением правил вывода.
Мы будем рассматривать
эффективно аксиоматизируемые теории. Это значит:
а. Множество формул рекурсивно перечислимо.
б. Множество аксиом разрешимо, т.е. существует алгоритм, по формуле определяющий, является она аксиомой или нет.
в. Правила вывода эффективны, т.е. существует алгоритм, по множеству формул позволяющий определить, выводится ли данная формула из данного множества формул по правилам вывода.
Алгоритмы пунктов б и в удобно представлять в виде
схем аксиом и
схем правил вывода:
Схемой аксиом называется формула, в которой помимо символов языка могут встречаться
метапеременные. Формула является аксиомой, если она получается из какой-то схемы аксиом подстановкой допустимых слов (часто допустимые слова - это произвольные формулы, но также это могут быть другие конструкты, например, термы или нумералы).
Схемой правил вывода называется фигура вида
, где
,
- это формулы, содержащие метапеременные. Формула
выводится из множества формул
, если они являются результатами подстановки допустимых подслов вместо метапеременных в
и
соответственно.
Примеры1. Схема правил вывода Modus ponens:
содержит металингвистические переменные
и
- формулы. Пример частного случая этой схемы в логике предикатов:
.
2. Схема аксиом
.
3. Пример формальной системы:
Алфавит
, формулы - любые строки вида
, где
-слова из палочек (пример 4 формальной грамматики).
Аксиомы:
, где
-слово из палочек.
Правила вывода:
.
Выыводимыми в этой теории будут формулы вида
.
4. Еще один пример теории.
Алфавит
, формулы вида
, где
- слова из палочек.
Аксиомы:
,
,
Правила вывода:
,
.
Какие формулы будут выводимы?
Важное замечание. Ни одна формула наших теорий (пока) не обладает смыслом. Это просто символы и правила символьных преобразований - они могут быть произвольными!
В следующий раз мы рассмотрим формальную систему исчисления высказываний - пропозициональную логику.