Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Классическое исчисление высказываний.docx
Скачиваний:
8
Добавлен:
30.07.2019
Размер:
63.86 Кб
Скачать

Классическое исчисление высказываний:

  • Алфавит КИВ

  • Аксиомы КИВ

  • Правила вывода КИВ

  • Рефлексивность

  • Теорема дедукции

  • Эквивалентные системы аксиом

  • Транзитивность

  • Проверка аксиом

  • Проверка правил вывода

  • Свойства отрицания

  • Свойства конъюнкции

  • Свойства дизъюнкции

  • Свойства равноистинности

  • Свойства исключающего "ИЛИ"

  • Непротиворечивость КИВ

  • Полнота КИВ

  • Заключение

Алфавит КИВ

Есть много разных вариантов КИВ. Все они ведут к практически одинаковым результатам просто потому, что их изначально строят так, чтобы получить одни и те же результаты, используя чуть-чуть другой порядок изложения. Мы немного поговорим о различных вариантах, и в конечном счете остановимся на одном из них, с которым продолжим работу.

Алфавит КИВ включает в себя следующие символы: (, ), , переменные (в том числе с индексами). В зависимости от варианта КИВ в алфавите могут также присутствовать символы: , , &, , true, false. Из-за того, что переменных бесконечно много (с учетом индексов), символов алфавите КИВ также бесконечно много.

Обратите внимание на то, что true считается одним символом алфавита КИВ, как и переменная a1234. Это важно для замен: при замене a на b нельзя превратить a1234 в b1234 поскольку a1234 представляет собой единый символ алфавита - элементарный и неделимый фрагмент текста. В другом языке (английском) другой алфавит и текст "true" представляет собой 4 отдельных символа, а не один. Вас это не должно смущать, это нормально даже для обычных языков. Так в русском языке есть буква "Ы", которая считается единой буквой, но может быть изображена с помощью двух букв латинского алфавита: "Ь" и "I".

Прежде всего, рассмотрим правила построения формул. В любом варианте КИВ есть правила:

Одна отдельная переменная - формула.

Если X - формула, то из нее можно построить формулу (X).

Если X и Y - формулы, то из них можно построить формулу (X Y).

Обратите внимание на то, что в первом правиле область значений для переменной не задается. Это потому, что в КИВ не предусмотрено подстановки значений на место переменных, оно лишь позволяет переходить от одних формул с переменными к другим формулам с переменными.

Нам понадобится два вида переменных. Одни будут применяться в алфавите и формулах КИВ (см. правило 1), обозначая нечто неопределенное. Для таких переменных будем применять только малые латинские буквы a, b,..., z, возможно, с индексами. Другие переменные - такие, как X и Y в правилах 2 и 3 будут обозначать различные формулы КИВ. Выше X - это не отдельная переменная КИВ, а целая формула, которая может состоять из множества переменных КИВ, скобок и знаков операций (но может состоять и всего из одной переменной КИВ). Для обозначения формул мы будем применять только большие латинские буквы A, B,..., Z, возможно, с индексами. Таким образом, переменные a,... z - это переменные языка КИВ, а переменные A,... Z - это переменные метаязыка, на котором можно говорить о КИВ. Для обозначения числовых переменных (для индексов) будем применять малые буквы греческого алфавита α, β,..., ω.

Далее, здесь вы видите знакомый по булевой алгебре символ материальной импликации "". Никакой таблицы истинности для него не строится. Вместо этого он упоминается в аксиомах и правилах вывода. Булева алгебра и КИВ - это как бы два отдельных языка. Один и тот же символ может означать одно в языке булевой алгебры и совсем другое - в языке КИВ. То, что между этими двумя логическими системами есть много общего, еще только предстоит доказать. Попробуйте воспринимать КИВ как новый язык, который использует те же самые символы, но эти символы могут означать разные вещи (подобно английскому и латыни). Правила перевода с одного языка на другой нам еще только предстоит выяснить, булевско-кивский и кивско-булевский словари еще только предстоит составить.

Символы true и false могут присутствовать в КИВ, а могут и не присутствовать - зависит от варианта. У А.Черча символ false есть полноправная формула, подобная переменной. Символ true есть всего лишь сокращение для формулы false false. И символ ~ также служит всего лишь для сокращения: если X - формула, то формула (X false) сокращенно записывается как ~X. Если следовать Черчу, то надо добавить к правилам построения формул такое:

4'. false - формула.

Соответственно, у Черча появляются аксиомы, которые позволяют доказывать теоремы, содержащие символ false. А символы true и ~ Черч использует исключительно как средство более компактной записи формул, содержащих false (примерно как я использую запись "X" вместо того, чтобы писать "а здесь, дорогой читатель, извольте мысленно вписать формулу, которая прячется под переменной X").

В изложении С.Клини в КИВ совсем нет символов true и false, зато символ ~ служит полноправной составляющей формул, а не просто сокращением.

4". Если X - формула, то из нее можно построить формулу ~X.

Соответственно, у Клини появляются аксиомы, которые позволяют доказывать теоремы, содержащие символ ~.

Что касается символов , , , &, то для них ситуация такова. Каждый из символов можно рассматривать исключительно как сокращение для какой-то формулы с участием значков , ~, true, false, но можно рассматривать и как полноправный символ алфавита. Если считать эти символы всего лишь сокращением, то изложение упрощается. Однако тогда мы не будем иметь права доказывать для них полезные теоремы и не сможем провести параллели между применением этих символов в КИВ и в булевой алгебре.

Если же мы добавим эти символы в алфавит:

5. Если X и Y - формулы, то из них можно построить формулу (X & Y).

6. Если X и Y - формулы, то из них можно построить формулу (X Y).

7. Если X и Y - формулы, то из них можно построить формулу (X Y).

8. Если X и Y - формулы, то из них можно построить формулу (X Y).

- тогда придется добавить для них и аксиомы, чтобы можно было выводить теоремы с участием этих символов.

Мы поступим следующим образом. В качестве правил построения формул возьмем 1, 2, 3, 4" (вариант Клини), 5, 6, 7, 8. Однако мы до поры до времени будем доказывать только теоремы с участием формул, построенных по правилам 1, 2 и 3, чтобы посмотреть, на что способна эта часть КИВ.

Символы ~, &, , , , называют "логическими операциями" или "пропозициональными связками". Приоритет у них один и тот же, независимо от того, где они применяются: в булевой алгебре, в КИВ или где-то еще. Некоторые скобки можно убирать, если это не помешает потом восстановить порядок операций.

Аксиомы кив

Разнообразие вариантов КИВ относится и к аксиомам.

Среди аксиом обычно присутствует две аксиомы, описывающие свойства символа . Первая аксиома, как правило, формулируется так:

Imp1:

a => (b => a)

А для второй можно привести как минимум пару вариантов:

Imp2:

(a => b) => ((a => (b=> c)) => (a => c))

Imp2':

(a => (b => c)) => ((a => b) => (a=> c))

На примере аксиом Imp2 и Imp2' было видно, что в скобках и стрелках КИВ легко заблудиться. Поэтому, ради краткости, условимся опускать хотя бы стрелки между именами переменных:

Imp1:

a(ba)

Imp2:

ab (a(bc)(ac))

Imp2':

a(bс) (ab(ac))

Другие аксиомы я разделю на группы, каждая из которых предназначена для доказательства свойств одной из логических операций.

Свойства ~:

Not1:

~~a => a

Not2:

(a => b) => ((a => ~b) => ~a)

Свойства &:

And1:

(a & b) => a

And2:

(a & b) => b

And3:

a => (b => (a & b))

Свойства V:

Or1:

a => (a V b)

Or2:

b => (a V b)

Or3:

(a => c) => ((b=> c) => ((a V b) => c))

Or3, сокращенно:

ac (bc (aVb c))

Свойства :

Eq1:

(a  b) => (a => b)

Eq2:

(a  b) => (b => a)

Eq3:

(a => b) => ((b => a) => (a  b))

С войства :

Xor1:

( a b) => (~a => b)

Xor2:

( a b) => (b => ~a)

Xor3:

( a => ~b) => ((~b => a) => (a b))

Если нас не интересуют свойства какой-то из логических операций, мы просто убираем из списка аксиом соответствующую группу, и рассматриваем только эту часть КИВ. Понятно, что свойства операции => убрать нельзя, поскольку через эту связку определяются свойства всех других операций. Также для операции понадобится операция ~ (или надо будет придумать какие-то другие аксиомы для ).

Правила вывода кив

Самое знаменитое из всех правил вывода имеет собственное звучное латинское название: modus ponens. Далее обозначается как MP.

DEF[modus ponens]: Правило вывода modus ponens:

X, X => Y |-> Y // MP,

где X и Y - формулы КИВ (а следовательно и X => Y - тоже формула КИВ, согласно одному из правил построения формул). В комментарии к дедуктивному шагу будем писать аббревиатуру правила вывода "MP".

Формула X, участвующая в MP, немудрено называется "малой посылкой", а формула X => Y - "большой посылкой". Формула Y в результате будет доказана, если малая и большая посылка доказаны.

Пример:

a => (b => a), (a => (b => a)) => (a => a) |-> a => a // MP,

Или сокращенно:

a(ba), (a(ba)) (aa) |-> aa // MP,

С точки зрения оформления слева от значка |-> лучше писать не сами формулы, а номера шагов, на которых они были получены. Так получится и короче, и понятнее: для проверки доказательства не придется просматривать все предшествующие шаги дедукции в поисках места, где формула была доказана. Если одна из формул является аксиомой, то вместо номера шага будет ее краткое обозначение (Imp1, Imp2,...).

Второе правило вывода КИВ - это правило подстановки:

X(a, b, c) |-> X(A, B, C) // a ~> A, b ~> B, c ~> C,

где X(a, b, c) - некоторая аксиома; a, b, c - переменные, которые встречаются в этой аксиоме КИВ; A, B, C - любые формулы КИВ. X(A, B, C) - формула КИВ, которая получается при замене в аксиоме переменных a, b, c на соответствующие формулы A, B, C. В комментарии будем писать, что на что заменяется через значок "~>". В общем случае могут быть заменены все переменные, в некоторых случаях может хватить замены только некоторых их них. Например:

a => (b => a) |-> a => ((b => z) => a) // b ~> (b => z),

Или коротко:

a(ba) |-> a(bza) // b ~> bz,

С точки зрения оформления слева от значка |-> можно писать не саму аксиому, а ее краткое обозначение: Imp1, Imp2,...

Скажем несколько слов о других вариантах.

Во-первых, можно расширить круг применения правила подстановки до любых формул КИВ, а не только аксиом. Это усложнение необязательно (по крайней мере при таким выборе аксиом, как в нашем случае).

Во-вторых, часто правило подстановки относят не к правилам вывода, а к правилам построения аксиом (как у фон Неймана). Понятно, что тогда число аксиом становится бесконечным, зато количество правил вывода сокращается до одного. Когда дело доходит до проверки применимости данной дедуктивной системы, то оказывается, что проверить применимость одного правила вывода к бесконечному числу формул - это задача, сопоставимая по сложности с проверкой бесконечного количества дополнительных аксиом. В результате получается, что в лоб, что по лбу.