МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ
.pdfМАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
Основная:
1.Варпаховский Ф.Л. Элементы теории алгоритмов. М.:1979.
2.Гиндикин С.Г. Алгебра логики в задачах. М.: Наука, 1972.
3.Игошин В.И. Математическая логика и теория алгоритмов. – М.: Изд. Центр «Академия», 2004.
4.Игошин В.И. Задачи и упражнения по математической логике и теории алгоритмов. – М.: Изд. Центр «Академия», 2005.
5.Криницкий Н.А. Алгоритмы вокруг нас. М.:1984.
6.Лавров И.А. Логика и алгоритмы. Новосибирск, 1970.
7.Лавров И.А., Максимова Л.Л. Задачи по теории множеств, математической логике и теории алгоритмов. М.: Наука, 1975.
8.Лихтарников Л.М., Сукачева Т. Математическая логика: Курс лекций, задачник-практикум и решения: Учебное пособие для студентов вузов, обучающихся по матем. спец. СПб.: Лань, 1998.
9.Марков А.А., Нагорный Н.М. Теория алгоритмов. М.: Наука, 1984.
10.Мендельсон Э. Введение в математическую логику. М.: Наука, 1984.
11.Никольская И.Л. Математическая логика: Учебник. М.: Высшая школа, 1981.
12.Справочная книга по математической логике: В 4-х частях. М.: Наука, 1982-1983. Ч.1. Теория моделей. Ч.2. Теория множеств. Ч.3. Теория рекурсии. Ч.4. Теория доказательств и конструктивная математика.
13.Судоплатов С.В., Овчинникова Е.В. Математическая логика и теория алгоритмов. – М.:, Новосибирск, 2004.
14.Трахтенброт В.А. Алгоритмы и вычислительные автоматы.
М.:1974.
Дополнительная:
1.Гладков А.В. Теория алгоритмов. Калинин. Гос. Ун-т, 1983.
2.Клини С. Введение в метаматематику. М.: ИЛ, 1987.
3.Клини С. Математическая логика. М.: Мир, 1973.
4.Калужнин Что такое математическая логика. М.: Наука, 1974.
5.Катленд Н. Вычислимость. Введение в теорию рекурсивных функ-
ций. М.: Мир, 1983.
6.Карпов В.Г., Мощенский В.А. Математическая логика и дискретная математика. – Минск: Вышейшая школа, 1977.
7.Мальцев А.И. Алгоритмы и рекурсивные функции. М.:1965.
8.Манин Ю.И. Вычислимое и невычислимое. М.:1980.
1
9.Машины Тьюринга и рекурсивные функции /Г.-Д.Эббинхауз, К.Якобс, Ф.-К.Ман, Г.Хермес. Пер. с нем. Э.Г.Белпш. М.: Мир, 1972.
10.Мощенский В.А. Лекции по математической логике. Минск: 1973.
11.Ершов Ю.Л., Палютин Е.А. Математическая логика. М.: Наука, 1984.
12.Столяр А.А. Логическое введение в математику. Минск: 1971.
13.Столл Р. Множества. Логика. Аксиоматические теории. М.: 1968.
14.Успенский В.А., Семенов А.Л. Теория алгоритмов: основные открытия и приложения. М.: Наука, 1987.
15.Черч А. Введение в математическую логику. М.: ИЛ, 1960.
2
Введение
Термин «ЛОГИКА» происходит от греческого слова' s (логос), что означает «мысль», «разум», «слово», «понятие».
Логика (или формальная логика), как наука, изучает мышление. Но мышление изучается не только логикой, но и различными другими науками: психологией, физиологией, кибернетикой и т.д. Каждая из них изучает какую-то одну из сторон сложного процесса мышления. Логика – есть наука о законах и формах правильного мышления. В.И.Даль определяет в своем словаре логику как науку о здравомыслии. Она изучает формы рассуждений, отвлекаясь от их конкретного содержания, устанавливает, что из чего следует, ищет ответ на вопросы: как мы рассуждаем? Как из одних истинных предложений получить другие истинные предложения?
Математическая логика, называемая также символиче-
ской или теоретической логикой, выросла из традиционной логики. В символической логике различные взаимоотношения между высказываниями, множествами и т.д. выражают на языке формул, который свободен от неясностей и двусмысленности, столь свойственных обычному разговорному языку. Благодаря этому оказывается возможным построить логику на основе некоторых понятий и формул с помощью четко сформулированных правил действий, т.е. также, как это делается в разделах общей алгебры, например.
Основоположником логики как науки является АРИСТОТЕЛЬ (384 – 322г.г. до н.э.). Он впервые разработал теорию дедукции, т.е. теорию логического вывода. Именно он обратил внимание на то, что в рассуждениях мы из одних утверждений выводим другие, исходя не из конкретного содержания утверждений, а из определенной взаимосвязи между их формами, структурами. Науку о правильном мышлении он называл ана-
литикой.
Сам термин логика впервые появляется в философской школе стоиков, которые понимали под логикой науку о пра-
3
вильном мышлении и языке. (Основатель школы стоиков – Зенон из Китиона– 3–2 в.в. до н.э.).
На протяжении многих веков различными философами и целыми философскими школами дополнялась, усовершенствовалась и изменялась логика Аристотеля. Это был первый, «доматематический», этап развития формальной логики. Второй этап связан с применением в логике математических методов, начало которому положил немецкий философ и математик Г.В.Лейбниц (1646–1716г.г.). Он пытался построить универсальный язык, с помощью которого разрешались бы споры между людьми, а затем и вовсе все «идеи заменить вычислениями».
Важный период становления математической логики начинается с появления работ английского математика и логика Джорджа Буля (1815–1864 г.г.): «Математический анализ логики» (1847) и «Исследование законов мышления» (1854). Он применил к логике методы современной ему алгебры – язык символов и формул, составление и решение уравнений. Им была создана своеобразная алгебра – алгебра логики. В этот период она оформилась как алгебра высказываний и была значительно развита в работах шотландского логика А. де Моргана (Огастес, Августус De Morgan – 1806–1871), английского – У.Джевонса (Уильям Стэнли – 1835–1882, создал систему логики, основанную на принципе замещения равных, построил логические счеты и логическую машину).
В Соединенных Штатах выдающиеся работы по логике принадлежат Чарльзу Пирсу (1839–1914). Наиболее полным образом теория Буля была развита в обширном трактате немецкого логика Эрнста Шрёдера (1841–1902) «Лекции по алгебре логики». На рубеже XIX и XX в.в. в России вопросами логики занимались Порецкий Платон Сергеевич (1846–1907) и Жегалкин Иван Иванович. В XX в. логикой занимались А.Чёрч, Х.Карри и др. Значительный вклад в развитие математической логики был внесен трудами советских математиков– логиков: Колмогорова Андрея Николаевича (1903-1987), Но-
4
викова Петра Сергеевича (1901–1975), Маркова Андрея Анд-
реевича (1903–1979).
Логику, которую мы будем изучать, часто называют классической. В ней высказывание может принимать только одно из двух значений: ЛОЖЬ или ИСТИНА. В 20-х г.г. XX в. польский логик Ян Лукасевич построил трехзначную логику, в которой высказывание может иметь три значения: ЛОЖЬ, ИСТИНА, ВОЗМОЖНО. В настоящее время известны многозначные логики (конечные и бесконечные), в которых значения истинности могут быть либо целыми числами (0, 1, 2,…), либо значениями из отрезка [0; 1] и т.д.
Что же изучается в математической логике?
Предметом математической логики являются математические науки в целом.
Прежде чем какую-либо математическую науку подвергнуть логическому анализу, ее нужно формализовать, т.е.изложить на специальном языке, обязательно аксиоматическом.
С помощью математической логики можно ответить на следующие вопросы, адресованные к математической теории:
1) Не противоречива ли математическая теория?
Теория противоречива, если в ней выводимы одновременно два предложения А и противоположное А ( А).
2) Полна ли математическая теория? (вопрос о полноте). Теория называется полной, если любое утверждение этой
теории можно либо доказать, либо опровергнуть. Курт Гёдель (1906–1978) доказал, что большинство математических достаточно развитых теорий являются неполными (например формализованная арифметика. К полным теориям относятся: элементарная геометрия Евклида, теория векторных пространств).
3) Разрешима ли теория?
Теория Т называется разрешимой, если существует универсальный алгоритм (машина), позволяющий для любого утверждения А из этой теории выяснить: истинно оно или ложно?
5
Впервые Альфред Тарский в 1948г. построил алгоритм для элементарной геометрии. Поэтому элементарная геометрия
– пример разрешимой теории.
Большинство же математических теорий являются неразрешимыми. Для алгебры, арифметики, математического анализа доказано, что желаемый алгоритм построить невозможно. Мы будем знакомиться только с самыми азами математической логики. В рамках математической логики впервые было строго определено понятие доказательства. Теория математического доказательства построена в трудах великого немецкого математика Давида Гильберта (1862–1943).
Интерес к математической логике во второй половине XXв. усилился благодаря развитию электронной вычислительной техники, т.к. в тот момент, когда стали создаваться компьютеры, выяснилось, что в рамках математической логики уже создан аппарат, позволяющий компьютерам работать так, как они работают. Современный человек должен отчетливо осознавать неразрывную связь методов математической логики и компьютеров. Эти методы используются как при создании самих компьютеров (алгебра высказываний, булевы функции – математический аппарат для конструирования логических схем–блоков), так и при создании математического обеспечения к ним (в основе многочисленных языков программирования лежит логика предикатов и теория алгоритмов). Кроме того, синтез логики и компьютеров привел к возникновению баз данных и экспертных систем – важнейших этапов на пути к созданию искусственного интеллекта – машинной модели человеческого разума.
6
ВЫСКАЗЫВАНИЯ
АЛГЕБРА ВЫСКАЗЫВАНИЙ
Высказывания и операции над ними
Высказывание – основное, неопределяемое понятие. Любые утверждения, об истинности или ложности кото-
рых имеет смысл говорить, мы будем называть высказываниями, при этом мы можем не знать, истинно ли данное высказывание или нет.
Высказываниями, например, будут следующие утвержде-
ния:
-«Кама является одной из крупнейших рек России»;
-«8 – есть простое число»;
-«9000 – я цифра в десятичной записи числа π есть 7». Первое из этих утверждений истинно, второе – ложно; ис-
тинность или ложность третьего утверждения нам неизвестна. Высказывания будем обозначать латинскими буквами (прописными и строчными, с индексами и без них): A, B, C, ...,
A1, A2, C3, …,p, q, r, …, q2, q3 … .
Итак, пусть p, q, r – высказывания или пропозициональные (высказывательные) переменные, которые могут принимать два значения истинности: Л (0; F – false) и И (1; Т – true). Различным образом сочетая высказывания между собой, мы можем получать новые высказывания. Например, из двух высказываний: «Пермь – столица Пермского края» и «8 – есть простое число» можно получить следующие высказывания:
-«Пермь – столица Пермского края и 8 – есть простое число»,
-«Пермь – столица Пермского края или 8 – есть простое число»,
-«Если Пермь – столица Пермского края, то 8 – есть простое число»,
-«Пермь – столица Пермского края тогда и только тогда, когда 8 – есть простое число».
Из первого высказывания можно получить новое высказывание - «неверно, что Пермь является столицей Пермского края», т.е. высказывания, являющегося отрицанием первого.
7
Приведенные сочетания высказываний образуются при помощи слов «И»; «ИЛИ», «ЕСЛИ…, ТО», «ТОГДА И ТОЛЬКО ТОГДА, КОГДА…», «НЕ». В математической логике для обозначения этих основных типов сочетаний, имеющих название, используются специальные символы:
p q ( p&q , p q , pq – читается «пэ и ку») – обозначает сложное высказывание, истинное только в том случае, когда p и q оба истинны. Такое высказывание называют конъюнкцией (от лат. conjunctio – союз, связь) высказываний p и q.
p q (читается «пэ или ку») обозначает сложное высказывание, истинное тогда лишь, когда по крайней мере одно из высказываний истинно (могут быть истинными оба высказывания). Такое высказывание называют дизъюнкцией (от лат. disjunctio – различение, разобщение) высказываний p и q.
p q ( p q, p q – читается «если пэ, то ку», «пэ достаточно для ку», «ку необходимо для пэ», «ку с необходимостью следует из пэ», «из пэ следует ку», «пэ влечет ку») обозначает сложное высказывание, которое ложно только в том случае, когда p истинно, а q ложно и истинно во всех остальных случаях. Такое высказывание называют импликацией (от лат. implico – тесно связываю) высказываний p и q. В импликативном высказывании p q различают антецедент (основание) – высказывание p и консеквент (следствие) – высказывание q.
p q ( p q, p q, p q – читается «пэ тогда и только тогда, когда ку», «пэ если и только если ку», «пэ в том и только том случае, когда ку») обозначает сложное высказывание, истинное, когда высказывания p и q одновременно оба истинны или оба ложны. Такое высказывание называют эквивалентностью высказываний p и q.
p ( p, p – читается «не пэ», «неверно, что пэ») – есть противоположность p. Обозначает высказывание, истинное,
8
если p ложно и ложное, если p истинно. Такое высказывание называют отрицанием высказывания p.
Замечание 1. Символы &, , , соответствуют бинарным операциям: новое высказывание сопоставляют двум высказываниям p и q, а символ выражает определенную на том же множестве унарную операцию: сопоставляет новое высказывание одному высказыванию p.
Замечание 2. Слова «и»; «или», «если…, то», «тогда и только тогда, когда…», являющиеся связками в нашем обычном языке, в математической логике получают несколько иной смысл.
Вобычном языке союз «и» используется, как правило, для объединения двух предложений, соответствующих друг другу по смыслу в некотором связном повествовании, как это бывает при описании последовательности событий (Елена хорошо подготовилась к экзамену и сдала его на отлично).
Однако в логике И может соединять любые предложения, совершенно независимо от наличия смыслового соответствия между ними.
Аналогично союз ИЛИ в обычном языке употребляется в двух смыслах – в смысле исключающем от лат. aut («p или q, но не оба») и в смысле неисключающем от лат. vel («p или q, или оба). Именно в последнем смысле мы будем использовать союз ИЛИ чаще. И здесь опять несущественна смысловая зависимость соединяемых высказываний.
Не существенна смысловая связь в логике между высказываниями и при построении импликации, хотя в обычном языке сложное предложение «если p, то q» предполагает между p и q отношение посылки и следствия, или же причины и обусловленного ею действия. (Если будет дождь, то мы не пойдем на прогулку).
Влогике для истинности импликации достаточно, чтобы p было ложно или q – истинно.
Т.о., высказывания типа:
–Если 7 – простое число, то 2 2=4;
–Если 8 – простое число, то 2 2=4;
9
– Если 8 – простое число, то 2 2=5 Должны считаться истинными.
Утверждение «p тогда и только тогда, когда q» не означает в логике, что составляющие предложения p и q имеют одно и то же значение или один и тот же смысл, оно означает лишь высказывание, которое истинно, когда оба высказывания истинны или ложны.
Все, что говорилось о логическом смысле конъюнкции, дизъюнкции, импликации, эквивалентности и отрицания можно просто и наглядно проиллюстрировать с помощью так называемых таблиц истинности.
В таблицах выписываются всевозможные комбинации истинных и ложных значений составляющих высказываний, а в результирующей колонке указывается истинность или ложность сложного высказывания для каждой такой комбинации. Будем сопоставлять истинному высказыванию символ 1, а ложному – символ 0.
Вот как выглядят таблицы истинности для &, , , и :
p |
q |
p&q |
|
p |
q |
p q |
|
p |
q |
p q |
|
p |
q |
p q |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
1 |
|
0 |
0 |
1 |
|
0 |
1 |
0 |
|
0 |
1 |
1 |
|
0 |
1 |
1 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
0 |
1 |
|
1 |
0 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
|
1 |
1 |
1 |
|
1 |
1 |
1 |
|
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
p |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10