.
В этой работе мы рассмотрим исчисление высказываний как инструмент для определения истинности утверждений. Затем мы рассмотрим расширение исчисление высказываний до исчисления предикатов. Это расширение позволит нам строить рассуждения над целым рядом конструкций таких, как циклы. Мы также рассмотрим идеи эквивалентности, общезначимости или тавтологии для доказательства.
Начало исчисления высказываний было положено работами Джоржа Буля. Подметив сходство в свойствах логических операций ОR и AND со свойствами арифметических операций умножения и сложения, он создал исчисление для вычисления истиности утверждений подобно тому, как правила арифметических операций позволяют вычислять значения арифметических выражений. В созданном им исчислении Буль обозначил символами как отдельные утверждения, так и целые конструкции из утверждений.
Любое высказывание в этом исчислении может иметь одно из двух значений: истина (true) или ложь (false). Ниже приведены примеры утверждений:
Сумма двух сторон треугольника больше или равна третьей стороне этого треугольника.
2х2=4.
“Каждый охотник желает знать, где сидят фазаны” (первые буквы слов в этой фразе определяют порядок цветов в спектре слева направо).
Для того, чтобы строго определить способ записи подобных утверждений Буль предложил понятие высказывания.
В таблице 5.1. перечислены названия и обозначения всех логических операций, используемых в высказываниях.
Таблица 5.1.
Ø | NOT | отрицание |
Ú | OR | дизъюнкция |
Ù | AND | коньюнкция |
Þ | импликация | |
Û | тождественность |
Определение 5.1. Высказывание - выражение, построенное по следующим правилам:
true и false - высказывания;
Любая переменная типа {true, false} - высказывание (такой тип называют boolean);
Если р - высказывание, то (Øр) - высказывание;
Если p и q - высказывание, то (pÚq), (pÙq), (pÞq), (pÛq) - высказывания.
Обратите внимание на способ определения высказывания, а именно, на пункты 3 и 4 определения 5.1. Эти пункты определяют высказывание через уже существующие высказывания. С таким приемом, когда определяемое понятие определяют, используя само это понятие, мы встретимся еще не раз. Этот прием называется рекурсией.
Может возникнуть опасение “порочного круга” в таком определении. Однако, в силу пунктов 1 и 2, где понятие высказывания определяется через понятия логического значения и переменной логического типа, “зацикливания” не происходит.
Примеры 5.1.
Пусть p,q и r - переменные типа boolean.
Тогда приведенные ниже выражения - это высказывания:
1. | p | 6. | (pÚq) |
2. | q | 7. | (pÙq) |
3. | false | 8. | (pÞq) |
4. | (Øр) | 9. | (pÚ(rÙq)) |
5. | true | 10. | (pÞ(qÙ(rÛp)) |
То, что выражения 1,2,3,4,5 - высказывания, следует из пунктов 1,2,3 определения 5.1. Для выражений 9,10 - это следует из пунктов 2 и 4. Для выражений 9, 10 - это следует из пункта 2 и последовательного применения пункта 4 определения.
Например:
(pÞ(qÙ(rÛp))
rÞp - высказывание по пункту 4. Обозначим его s1.
(qÙs1) - высказывание опять по пункту 4. Обозначим его s2 .
(pÞs2) - высказывание по тому же самому пункту 4.
Пример 5.2. Ниже приведенные выражения не являются высказываниями.
(pq)
(pq) Øр
Выражение 1 не является таковым, потому что имена двух переменных стоят рядом и не разделены знаком логической операции.
Выражение 2 не является высказыванием, во-первых, потому, что (pq) - не высказывание; во-вторых, потому, что выражение sØр , - где s и p - высказывания, не удовлетворяет ни одному из 4-х пунктов определения 5.1.
Особое внимание следует обратить на скобки. Их можно опускать если это не вносит неоднозначности. Например, вместо (Øр) можно писать Øр, а вместо (pÚq) - pÚq. Однако, невнимательное обращение со скобками может привести к неоднозначности. Например, выражение pÚqÙr можно трактовать либо как ((pÚ)qÙr), либо (pÚ(qÙr)). Для того, чтобы избежать такой неоднозначности, пяти логическим операциям приписывается приоритет, который учитывается при вычислении значения выражения. Операция отрицания Ø - имеет наивысший приоритет, за ней следует Ù, потом следует Ú, Þ и Û в том порядке как они указаны. Поэтому, выражение pÚqÙr должно трактоваться только как (pÚ(qÙr)).
5.1.1. Утверждения на русском языке в форме высказываний.
Не любое предложение на русском языке может быть выражено в виде высказывания. Например, приглашения типа “Войдите”, команды типа “Стой”, “Сидеть”, вопросы типа “Ты был сегодня на лекции Смелянского?” нельзя представить в виде высказываний. Тем не менее, существует значительное множество предложений, называемых утверждениями, которые можно представить в виде либо высказываний, либо предикатов (о последних мы поговорим позднее).
На любом естественном языке, коим является русский язык, одну и ту же мысль можно выразить по-разному. Используя высказывание, мы будем терять многие смысловые оттенки фразы на русском языке, но основная мысль будет сохранена. Это высказывание будет одним и тем же для многих фраз на русском языке.
Например, если обозначить утверждение “Вася доволен” буквой р, то высказыванием Øр можно представить следующее утверждение:
“Вася не доволен”.
“Это не тот случай, когда Вася доволен”.
“Вася будет не доволен”.
“Вася был не доволен”.
Обратите внимание, исчисление высказываний не охватывает временной аспект фразы. Аналогично, нижеприведенные утверждения можно записать в виде высказывания pÙq, придав надлежащие значения переменным p и q :
10 £x£100
Петя племянник Васи.
Вася дядя Петра.
Хотя декабристы обличали рабовладельчество, многие из них имели крепостных.
Первое из этих предложений состоит из двух фраз: ”Число х больше либо равно 10” и “Число х меньше либо равно 100”. Однако, эти фразы “спрятаны” с помощью математических обозначений.
Вторая и третья фразы содержат в неявном виде два утверждения. Первое: У Васи есть или брат, или сестра. Вторая: У этого брата или у этой сестры есть сын Петя.
Слово “хотя” в четвертой фразе играет роль союза “и” и выполняет роль противопоставления.
При использовании логической операции Ú в высказываниях могут возникнуть трудности, связанные с неоднозначностью союза “или” в русском языке. Когда мать говорит сыну: “Я куплю тебе конфету или жвачку”, как правило, она имеет ввиду только одно из двух. Когда преподаватель говорит, что он допустит до экзамена только тех студентов кто сдаст реферат или зачет, то, конечно, он не прогонит студента, который сдаст и зачет и реферат.
Первый случай называется исключающим Ú, второй - включающим. В исчислении высказываний обычно используется включающее Ú.
В высказывании pÞq , р называется причиной, q - следствием, а само высказывание - импликацией или следованием. Примером импликации может служить фраза
“Если ты будешь читать по одной страничке в день, то ты научишься читать”.
Если обозначить слова “ты будешь читать хотя бы по одной страничке в день” как p, а “ты научишься читать”, как q, то эту фразу можно записать как
pÞq
Это же высказывание будет соответствовать и фразе
“Ты научишься читать, если ты будешь читать хотя бы по одной страничке в день”.
Однако, в использовании “если” в русском языке есть тонкости. Например, рассмотрим фразы:
“Я куплю билет, если в этом кинотеатре идет “Анаконда”.
“Я куплю билет, только если в этом кинотеатре идет “Анаконда”.
Если обозначить буквой p слова “Я куплю билет”, а буквой s - “в этом кинотеатре идет “Анаконда”, то первой фразе будет соответствовать выражение
sÞp,
поскольку не ясно, что будет делать говорящий, если в кинотеатре идет “Терминатор”.
Второй фразе соответствует выражение
pÞs
т.к. она утверждает, что я могу купить билет только при одном условии - в кинотеатре идет “Анаконда”.
Другим важным свойством импликации является то, что между p и q в действительности не предполагается никакой причинно-следственной связи.
Например, фразе
“Если 1+1=2 , то Солнце - центр Солнечной системы”
соответствует выражение
pÞq
Однако, ясно, что между двумя фактами “1+1=2” и “Солнце - центр Солнечной системы” нет связи. Таким образом, причинно-следственная связь - еще один пример, выразимый в естественном языке и не охватываемый в исчислении высказываний.
Выражение pÛq используется, когда одно высказывание имплицирует другое и наоборот. Например, если АВС - треугольник со сторонами а, b, c, то a2+b2=c2 тогда и только тогда, когда АВС - прямоугольный.
Если обозначить p - a2+b2=c2, q - АВС - прямоугольный, то вся фраза может быть записана как
pÛq,
т.е. pÞq и qÞp истинны одновременно.
Вычисление истиности высказываний.
В главе 1 мы уже сталкивались с понятием состояния набора переменных.
Определение 5.2. Пусть p1…….pn - набор всех переменных типа boolean, встречающихся в некотором высказывании. Тогда множество конкретных значений этих пременных называется их состоянием.
Рассмотрим выражение pÚq . Набор его переменных { p, q }. Поскольку каждая из переменных может принимать только одно из двух значений true, или false , то все множество возможных состояний для этого набора состоит из 4-х пар:
(T,T), (T,F), (F,T), (F,F).
(Везде далее мы будем использовать в этой главе сокращения Т вместо true, F вместо false). Теперь для каждого состояния достаточно указать значение этого выражения и функция pÚq будет определена. Это делается с помощью, так называемых, таблиц истиности. Ниже показана таблица истиности для pÚq (Таблица 5.2.).
Таблица 5.2.
Таблица истиности для pÚq