- •Предисловие
- •Глава1. Логика классическая
- •1.1. Логика высказываний
- •1.1.1. Алгебра высказываний
- •1.1.1.2. Правила записи сложных формул
- •1.1.1.3. Законы алгебры высказываний
- •1.1.1.4. Эквивалентные преобразования формул
- •1.1.1.5. Нормальные формы формул
- •1.1.2. Исчисление высказываний
- •1.1.2.1. Интерпретация формул
- •1.1.2.2. Аксиомы исчисления высказываний
- •1.1.2.3. Метод дедуктивного вывода
- •1.1.2.4. Метод резолюции
- •Вопросы и задачи
- •Расчетно-графическая работа
- •1. 2. Логика предикатов
- •1.2.1. Алгебра предикатов
- •1.2.1.1. Логические операции
- •1.2.1.2. Правила записи сложных формул
- •1.2.1.3. Законы алгебры предикатов
- •1.2.1.4. Эквивалентные преобразования формул
- •1.2.1.2. Предварённая нормальная форма
- •1.2.1.3. Сколемовская стандартная форма
- •1.2.2. Исчисление предикатов
- •1.2.2.1. Интерпретация формул
- •1.2.2.2. Аксиомы исчисления предикатов
- •1.2.2.3. Правила унификации предикатов
- •1.2.2.4. Метод дедуктивного вывода
- •1.2.2.5. Метод резолюции
- •1.2.3. Логическое программирование
- •1.2.3.1. Основы логического программирования*
- •1.2.3.2. Подготовка среды Visual Prolog для работы
- •1.2.3.3. Описание логических задач на языке Prolog
- •Вопросы и задачи
- •Расчетно-графическая работа
- •Формула
- •1.3. Логика реляционная
- •1.3.1. Реляционная алгебра*
- •1.3.1.1. Унарные операции
- •1.3.1.2. Бинарные операции
- •1.3.2. Реляционное исчисление*
- •1.3.3. Языки реляционной логики
- •Вопросы и задачи
- •Расчетно-графическая работа
- •Глава 2. Неклассическая логика
- •2.1. Нечёткая логика
- •2.1.1. Нечёткие множества
- •2.1.2. Нечёткая алгебра
- •2.1.2.1. Операции над нечёткими множествами
- •2.1.2.2. Законы нечёткой алгебры
- •2.1.2.3. Свойства нечётких отношений
- •4.4.2. Экспертные системы
- •Вопросы и задачи
- •Расчетно-графическая работа
- •2.2. Модальная логика
- •2.2.1. Темпоральная (или временнáя) логика*.
- •Ответы и решения
- •Литература
- •Предметный указатель
12 |
Математическая логика |
то B1=л или B1 = и,
•если высказывание «число 6 делится на 1, 2, 3 и представляет сумму делителей 1, 2, 3», то (E1&Е2)= и,
•если высказывание «если 3 - целое число, то оно вещественное», то (A3→ A2)=и,
•если высказывание «если 3 – простое число, то оно целое», то (A1→ A3)=и,
•если высказывание «3 - простое число, тогда и только тогда, когда оно целое», то (А1↔А2)=и.
Логические связки обозначают исполнение логических операций над высказываниями. Поэтому правила исполнения таких операций формируют алгебру высказываний. Правила построения сложных высказываний в виде последовательности пропозициональных переменных, логических связок и вспомогательных символов определяют возможность формального описания многих высказываний и суждений естественного языка. Но при формальном описания сложного высказывания всегда нужно внимательно следить за смыслом и содержанием высказывания.
Правила вывода новых высказываний, основанные на известных высказываниях и отношениях между ними, представляют исчисление высказываний. В этом случае высказывания, из которых делают вывод новых высказываний, называют посылками, а получаемое новое выска-
зывание – заключением.
1.1.1. Алгебра высказываний
Множество пропозициональных переменных Τ={A, B, C,…} и множество логических операторов и отношений Σ={¬, &, , →, ↔, ≡} представляют алгебру высказыва-
1.1. Логика высказываний |
13 |
ний:
Αвыск.=<Τ, Σ, и, л>,
где и, л –значения «истина» или «ложь» для пропозициональных переменных и правильно построенных алгебраических выражений. Символы логических операций: «¬» - отрицание, «&» - конъюнкция, « » - дизъюнкция, «→» - импликация, «↔» - эквивалентность служат для формального описания сложных высказываний, а символ «≡» - равносильности формирует отношение сравнения двух правильно построенных выражений.
Любая пропозициональная переменная есть элемен-
тарная формула, т. е. Ai =Fi.
Высказывание, которое может быть получено из элементарных высказываний посредством логических операций, называют формулой алгебры логики, т.е. если F1 и F2
– формулы, то ¬F1, ¬F2, (F1&F2), (F1 F2), (F1→F2) и (F1↔F2), (F1≡F2) - также формулы.
Никаких других формул в логике высказываний нет. Значение формулы полностью определяется значе-
ниями входящих в нее пропозициональных переменных. 1.1.1.1. Логические операции
Логические операции бывают унарными (или одноместными) и бинарными (или двухместными). Если значения операндов принадлежат множеству {и, л}, то и результаты логических операций также принадлежат множеству {и, л}. Исполнение логических операций удобно опи-
сывать таблицами истинности.
Отрицание (¬F) есть одноместная операция, посред-
14 Математическая логика
ством которой ее значение есть отрицание значения операнда.
В программировании для этого используют оператор NOT, т.е. (NOT F). Если F - высказывание, то F также высказывание. Если ¬F есть высказывание, то ¬(¬F) также есть высказывание.
F |
|
|
Пример 1.3. Верно ли, что А:=«4 - про- |
|
|
F |
стое число» или А=и? |
и |
|
л |
|
л |
|
и |
«Нет, неверно, что 4 – простое число», |
|
|
|
т.е. ¬А = и . |
|
Конъюнкция (F1&F2) есть двухместная операция, по- |
средством которой из двух формул F1 и F2 получают новую формулу F, описывающую сложное высказывание. Формула F=(F1&F2) истинна тогда и только тогда, когда истинны значения двух операндов F1 и F2.
F1 |
F2 F1&F |
В программировании для этого исполь- |
|
|
|
2 |
зуют оператор AND, т.е. (F1_AND_F2). |
л |
л |
л |
На естественном языке эта операция опи- |
л |
и |
л |
сывается соединительными словами: «... и |
и |
л |
л |
…», «... также …», «как ..., так...», «... не- |
и |
и |
и |
смотря на …» и др. |
Из определения операций конъюнкции и отрицания очевидно, что (F&¬F)=л.
Если даны F1, F2, …, Fn, то формула F=(F1&F2&…&Fn)=и тогда и только тогда, когда истинны все формулы F1, F2,…, Fn.
Пример 1.4. Даны высказывания A:=«компьютер содержит основной микропроцессор», B:=«компьютер содержит оперативную память», C:=«компьютер содержит контроллеры», D:=«компьютер содержит порты ввода –
1.1. Логика высказываний |
15 |
вывода».
Тогда формула F=(A&B&C&D) отражает высказывание «компьютер содержит основной микропроцессор, оперативную память, контроллеры и порты ввода-вывода»
[17].
Дизъюнкция (F1 F2) есть двухместная операция, посредством которой из двух формул F1 и F2 получают новую формулу F, описывающую сложное высказывание. Формула F=(F1 F2) ложно тогда и только тогда, когда ложны значения двух операндов F1 или F2.
F |
F |
F1 F |
В программировании для этого исполь- |
1 |
2 |
2 |
зуют оператор OR, т.е. (F1_OR_F2). |
л |
л |
л |
Из определения операций дизъюнкции и |
л |
и |
и |
отрицания, очевидно, что (F¬F)=и. |
и |
л |
и |
Если даны F1, F2,…, Fn, то формула |
и |
и |
и |
F=(F1 F2 … Fn)=л тогда и только тогда |
когда ложны все формулы F1, F2, …, Fn. Следует обратить внимание, что в повседневной речи союз «или» употребляется в двух смыслах: «исключающее или», когда истинность сложного высказывания определяется истинностью только одного высказываний (второе должно быть ложным), и «не исключающее или», когда истинность сложного высказывания определяется истинностью хотя бы одного из них. В математической ло-
гике используют только «не исключающее или». Пример 1.5. Даны высказывания A:= «в компьютере
применяют матричный принтер», B:= «в компьютере применяют струйный принтер», C:= «в компьютере применяют лазерный принтер», D:= «в компьютере применяют литерный принтер».
16 |
Математическая логика |
Тогда формула F=(A B C D) отражает высказывание «в компьютере применяют матричный, струйный, лазерный или литерный принтеры» [17].
Пример 1.6. Даны высказывания A:= «монитор есть машинная программа, которая наблюдает, регулирует, контролирует или проверяет операции в системе обработки данных», B:= «монитор в языках программирования - это высокоуровневый механизм взаимодействия и синхронизации процессов, обеспечивающих доступ к неразделяемым ресурсам», C:= «монитор - это дисплей, используемый для контроля процессов и управления системой».
Тогда формула F=(A B C) отражает высказывание «монитор есть машинная программа, которая наблюдает, регулирует, контролирует или проверяет операции в системе обработки данных или в языках программирования – это высокоуровневый механизм взаимодействия и синхронизации процессов, обеспечивающих доступ к неразделяемым ресурсам или дисплей, используемый для контроля процессов и управления системой» [17].
Импликация (F1→F2) есть двуместная операция, посредством которой из двух формул F1 и F2 получают формулу F, описывающую сложное высказывание. Формула F=(F1→F2) ложно тогда и только тогда, когда истинно F1 и ложно F2. При этом F1 называют посылкой, а F2 –
заключением.
В программировании используют оператор
IMPLIES,
т. е. (F1_IMPLIES_F2).
|
|
|
1.1. Логика высказываний |
17 |
|
|
|
На естественном языке эта операция |
|
F |
F2 |
F1→F |
||
1 |
|
2 |
выражается словами «если ..., то ...», |
|
л |
л |
и |
«тогда ..., когда ...», «постольку ..., по- |
|
л |
и |
и |
скольку ...», «при наличии ..., следует |
|
и |
л |
л |
...», « из … следует …», «… влечет …» |
|
и |
и |
и |
и т. п. Высказывание, |
находящееся |
слева от логической связки →, назы-
вают условием или посылкой, а справа – заключением
или следствием выражениями.
Импликация играет важную роль в математической логики, так как позволяет формировать цепочку рассуждения при доказательстве истинности заключения. Использование импликации в языке математической логики отличается от ее употребления в обыденной речи на естественно языке. Если посылка в обыденной речи ложная, то импликация вообще не имеет смысла. А если посылка – истинная, то импликация имеет смысл только при истинном значении заключения.
Пример 1.7. Даны высказывания A:= «по проводнику протекает электрический ток» и B:= «вокруг проводника есть магнитное поле». Тогда формула F=(A→B) отражает высказывание «если по проводнику протекает электрический ток, то вокруг проводника возникает магнитное поле».
Пример 1.8. Пусть даны высказывания A:= «на упругое тело оказывают влияние внешние силы» и B:= «в упругом теле возникают внутренние силы, препятствующие изменению формы». Тогда формула F=(A→B) отражает
18 |
Математическая логика |
высказывание «если на упругое тело оказывают влияние внешней силы, то в нем возникают внутренние силы, препятствующие изменению формы».
Эквивалентность (F1↔F2) есть двухместная операция, посредством которой из двух формул F1 и F2 получают формулу F, описывающую сложное высказывание. Формула F=(F1↔F2) истинна тогда и только тогда, когда оба операнда F1 и F2 имеют одинаковые значения.
F |
F |
F1↔ |
В программировании для этого исполь- |
1 |
2 |
F2 |
зуют оператор IFF, т.е. (F1__IFF_ F2). На |
л |
л |
и |
естественном языке эквивалентность вы- |
л |
|
л |
ражается фразами «… эквивалентно …», |
и |
л |
л |
«для того чтобы …, необходимо и доста- |
и |
и |
и |
точно, чтобы …», «... лишь при условии |
…», «…, если и только если …», и т.п. Пример 1.9. Даны высказывания A:= «быть четным
числом» и B:= «число делится на два». Тогда формула F=(A↔B) отображает высказывание «для того, чтобы число было четным необходимо и достаточно, чтобы оно делилось на два».
Пример. Даны высказывания A:= «выполнить загрузку в компьютер операционной системы» и B:= «установить в компьютер дискету с записанной операционной системой».
Тогда формула F=(A↔B) отображает высказывание «для того, чтобы выполнить загрузку операционной системы в компьютер, необходимо и достаточно установить в компьютер дискету с записанной операционной системой».