
- •Глава 0 логика, логическое программирование и пролог
- •Знакомство с логическим программированием Определение логического программирования
- •Наследие логики
- •2. Традиционная логика Аристотель
- •Законы традиционной логики
- •Критика силлогизма
- •3. Начальный период развития формальной логики Де Морган
- •Таблицы истинности
- •Фреже и Пеано
- •Исчисления
- •4. Логика высказываний Высказывания
- •Правильно построенные формулы
- •Т а б л и ц а 0. 8
- •Истинностное значение ппф
- •Теории и аксиомы
- •Методы доказательства
- •Метаязык и объектный язык
- •5. Логика предикатов Атомарные формулы
- •Правильно построенные формулы
- •Истинностное значение ппф
- •Построение теории некоторой области знаний
- •Переменные как термы
- •Семантические свойства формул
- •Методы доказательства
- •Аксиоматическое определение отношения
- •Разрешимость свойств
- •0.6. От формальной логики - к логическому программированию Автоматизация процедур доказательства
- •Процедуры опровержения
- •Основание Хербранда
- •Хербрандовские интерпретации
- •Полезные свойства хербрандовских интерпретаций
- •Фразовая форма
- •Резолюция
- •0.7. Развитие языка пролог Развитие языка Пролог
- •Особенности языка Пролог
- •0. 8. Синтаксис языка пролог
- •Пример Пролог-программы
- •9. Фразы хорна как средство представления знаний Решение задач
- •Программирование
- •0.10. Семантика пролога Три семантические модели
- •Декларативная модель
- •Процедурная модель
- •Модель в виде абстрактной машины
- •Сферы употребления моделей
- •0.11. Метаязык / объектный язык Функции метаязыка
- •Метаязык Пролога
- •Предикаты метаязыка
- •0. 12. Сферы применения языка пролог
- •Реляционные базы данных
- •Программная инженерия
- •Естественный язык
- •Представление знаний
- •Экспертные системы
- •Библиографические заметки
Таблицы истинности
Интерпретация любого выражения этого языка для высказываний может быть представлена таблицей истинности. Например, в табл. 0. 6 приводятся значения истинности некоторых простых выражений.
Таблица 0. 6
х |
y |
~x |
~y |
х* у |
х+ у |
~ (x* у) |
Т |
T |
F |
F |
Т |
Т |
F |
Т |
F |
F |
Т |
F |
Т |
Т |
Вторую строку данной таблицы можно прочесть так: если значением х является высказывание, которое истинно (true) (обозначено как Т), а значением у — высказывание, которое ложно (false) (обозначено как F), то значением истинности ~х будет ложь, значением ~у будет истина, значением х* у — ложь, значением х+ у — истина, а значением ~ (х* у)— истина*).
Импликация
Импликация (т. е. следование) вида
если х, то у
где х и у - истинностные значения, может быть записана как
~х+ у
Точный смысл этого отношения задается в табл. 0. 7.
Интересно отметить, что (хотя это в какой-то степени противоречит интуитивным представлениям) если х - ложно, то у может принимать любые значения, а итоговое значение импликации все равно будет истинно.
Таблица 0. 7
x |
y |
~х+у |
х |
y |
~х + у |
Т |
T |
T |
F |
Т |
Т |
Т |
F |
F |
F |
F |
Т |
Фреже и Пеано
Начало эры современной формальной логики можно связать с работой Готтлоба Фреже, появившейся в 1879 г. Как и его современник Пеано, Фреже стремился разработать чисто формальный логический язык, который мог бы служить основой арифметики. Серьезная проблема для Фреже и Пеано заключалась в необходимости найти логические средства для представления понятия последовательности, что позволило бы формально оперировать с множествами чисел. Фреже считал, что работы Буля и Де Моргана вносят некоторую путаницу, так как в них используется одинаковая система обозначений и для арифметики, и для логики (знаки+,* и т.д.). Фреже создал "концептуальный язык" ("begriffsschift") — символическое исчисление, позволяющее представлять и выполнять действия над чисто логическими формами, которые не зависят от числовых аналогий.
Фреже считал, что интерпретация булевой алгебры с точки зрения высказываний является фундаментальной. В его версии логики высказываний из двух исходных соединителей - "импликация" и "отрицание" - можно вывести все остальные соединители ("и", "или" и т. д.).
Теория отношений
В силлогистической логике принималось, что суждение, обладающее истинностным значением, состоит из субъекта и предиката (см. разд. 0. 2). Другим нововведением Фреже было то, что суждение, обладающее значением истинности, стало считаться состоящим из предиката и некоторого количества аргументов. Для записи таких суждений он применил условные обозначения, сходные с математическими обозначениями функций. Фреже провел аналогию между компонентами суждения и компонентами естественного языка, к примеру, такого предложения:
Вы читаете книгу.
Аргументы - это слова, которые могут изменяться в таких пределах, пока выражение остается осмысленным. Например, слово "книгу" можно заменить на "газету", "Вы" - на "Я", при этом выражение сохранит осмысленность*). Предикат, с другой стороны, — это такая часть выражения, изменение которой не может не повлечь за собой серьезного изменения смысла и даже может привести к бессмыслице. Представьте, к примеру, что произойдет, если слово "читаете" будет заменено на слово "едите".
Целью Фреже было создание общей теории отношений. Разбиение высказывания на предикат и аргументы - это существенная отличительная особенность его теории. Фреже признавал также тот факт, что его теория нуждается в средствах, позволяющих квантифицировать переменные, являющиеся аргументами предиката. После Фреже общая теория отношений получила название логики предикатов.