
- •Теория алгоритмов
- •Математическая логика
- •Вагин в.Н., Фомина м.В.
- •Предисловие
- •Содержание
- •1. Теория алгоритмов
- •1.1. Нормальные алгоритмы Маркова
- •1.2 Машины Тьюринга.
- •Задачи.
- •1.3. Рекурсивные функции.
- •1.4. Алгоритмы и сложность
- •2. Формальные системы
- •2.1. Понятие формальной системы
- •2.2. Исчисление высказываний
- •2.2.1. Предложения и высказывания
- •2.2.2. Исчисление высказываний как формальная система
- •2.3. Исчисление предикатов первого порядка как формальная система
- •2.4. Проблема разрешимости
- •3. Автоматическое доказательство теорем
- •Нормальные формы исчисления высказываний
- •Нормальные формы исчисления предикатов
- •3.3. Логические следования
- •3.4. Процедура вывода Эрбрана
- •3.5. Принцип резолюции для логики высказываний
- •3.6. Принцип резолюции для логики предикатов
- •3.7. Семантическая резолюция
- •3.8. Линейная резолюция
- •Ремендуемая литература
2.3. Исчисление предикатов первого порядка как формальная система
Рассмотрим формальную аксиоматическую систему ФС2 для исчисления предикатов.
1. Исходными элементами ФС2 являются:
счетное множество предметных переменных x1, х2,, … , хn, . . .;
конечное (может быть и пустое) или счетное множество предметных констант a1, a2, …;
конечное (может быть и пустое) или счетное множество функциональных букв
;
непустое конечное или счетное множество предикатных букв
;
символы исчисления высказываний: ¬, &, , →;
скобки ( ) и запятая;
символы , ;
других исходных элементов нет.
2. Правила образования ППФ:
всякий атом есть ППФ;
если А и В – ППФ и х – предметная переменная, то каждое из выражений ¬А, А → В, А & В, А B, х А и х A есть ППФ;
других правил образования ППФ нет.
Таким образом, форма записи ППФ совпадает с записью формул исчисления предикатов.
3. Система аксиом.
К системе аксиом исчисления высказываний добавляются еще две аксиомы:
a12. x A(x)) → A(t), где A(x) есть ППФ и t – терм, свободный для x в A(x).
а13. A(t) → x A(x), где A(x) есть ППФ и t – терм, свободный для x в A(x).
4. Правила вывода.
Правило 1. Все аксиомы выводимы.
Правило
2. Правило
подстановки. Это правило аналогично
правилу подстановки, которое имело
место для исчисления высказываний.
Только для ФС2
мы будем иметь дело с такой подстановкой
термов t1,
t2,
…, tk
вместо
в A[
],
что A[
]
свободна для t1,
t2,
…, tk
.
Несоблюдение этого условия может привести к неприятным последствиям. Например, пусть в аксиоме 12 терм t не свободен для x в А[x] и пусть А[x] есть ППФ вида ¬x2A(x1, x2) и t есть x2. Тогда терм t не свободен для x1 в ¬x2A(x1, x2).
Рассмотрим а12: x1(¬x2 A(x1, x2)) → ¬2A(x2, x2).
Возьмем в качестве интерпретации любую область, содержащую не менее двух элементов, а в качестве A – отношение тождества. Тогда посылка x1(¬x2A(x1,x2)) в а12 истинна, а заключение ¬x2 A(x2, x2) ложно.
Правило 3. Правило modus ponens (МР).
Если ├ A и ├ A → В, то ├ B.
Правило 4. Правило обобщения (или правило связывания квантором общности).
Если ППФ B → A(x) при условии, что В не содержит свободных вхождении x, выводима, то выводима будет и ППФ B → x A(x). В дальнейшем это правило будем обозначать через Gen.
Правило 5. Правило конкретизации (или правило связывания квантором существования).
Если A(x) → В – выводимая ППФ (теорема) и В не содержит свободных вхождений x, то x A(x) → В также теорема. Обозначим это правило через Еx.
Правило 6. Если A – теорема, имеющая квантор общности и/или квантор существования, то одна связанная переменная в A может быть заменена другой связанной переменной, отличной от всех свободных переменных, одновременно во всех областях действия квантора и в самом кванторе. Полученная ППФ также является теоремой.
Правило 7. Других правил вывода нет.
Пример 2.5.
Пусть A(x). Доказать x A(x).
Правило, являющееся разновидностью правила вывода Gen, обозначается Gen’.
1. A(x)
2. A(x)(BA(x)) A1
3. BA(x) MP 1,2
4. Bx A(x) Gen
5. Rx A(x) ПС B на R, где R - общезначимая формула
6. R
7. x A(x) MP 5,6
Полученное правило иногда называют производным правилом связывания квантором общности.
Определение выводимости в исчислении предикатов является расширением соответствующего определения для исчисления высказываний. Поэтому среди выводимых ППФ исчисления предикатов будут находиться все выводимые ППФ исчисления высказываний.
Будем считать, что ППФ B выводима из ППФ A (аналогично из множества ППФ A1, …, An), если:
A выводима из A;
каждая выводимая в ФС2 ППФ также выводима и из A;
из выводимости ППФ B1, и B1 →B2 из A следует выводимость B2 из A;
если ППФ B1 → B2(x) выводима из A, причем B1 и A не содержат свободных вхождений x, то и ППФ B1 →xB2(x) также выводима из A;
если ППФ B2(x) → B1 выводима из A. причем B1 и A не содержат свободных вхождений x, то и ППФ хB2(x) → B1 выводима из A;
если ППФ B выводима из ППФ A, то и B', полученная из B подстановкой термов вместо свободных вхождений в B переменных, также выводима из A;
если B выводима из A. то и B', полученная из B любым переименованием связанных переменных, отличных от имен свободных переменных, выводима из A.
Вывод ППФ из пустого множества посылок есть доказательство этой ППФ. а сама ППФ называется теоремой.
Для исчисления предикатов также имеет место теорема дедукции: если A1, A2, …, An ├ B, то ├ A1 → (A2 → (…(An → B)…)).
Правила силлогизма, перестановки посылок, объединения и разъединения посылок для исчисления предикатов доказываются аналогично.
Пример 2.6.
Докажем, что xy A(x, y) → yx A(x, y) выводима.
├ y A(x, y) → A(x, t) a12;
├ A(x, t) → w A(w, t) a13;
├ y A(x, y) → w A(w, t) силлогизм из 1 и 2;
├ хy A(x, y) → w A(w, t) Ex;
├ хy A(x, y) → t w A(w, t) Gen;
├ хy A(x, y) → yx A(x, y) пр. 6.
Пример 2.7.
Докажем, что ├ x(A(x) → B(x)) → (x A(x) → x B(x)).
├ x(A(x) → B(x)) → (A(y) → B(y)) а12;
x(A(x) → B(x)) ├ A(y) → B(y) теорема дедукции;
├ B(y) → x B(x) a13;
x(A(x) → B(x)) ├ A(y) → x B(x) силлогизм из 2 и 3;
x(A(x) → B(x)) ├ y A(y) → x B(x) Ex;
├ x(A(x) → B(x)) → (x A(x) → x B(x)) теорема о дедукции и пр. 6.
Остановимся теперь на свойствах исчисления предикатов: непротиворечивости и полноте. Как и раньше, будем считать непротиворечивым такое исчисление, в котором не выводимы никакие две ППФ, из которых одна является отрицанием другой.
Теорема 2.4. Исчисление предикатов первого порядка непротиворечиво.
Так как аксиомам исчисления предикатов соответствуют выводимые ППФ исчисления высказываний, то, очевидно, что всякой выводимой ППФ исчисления предикатов соответствует выводимая ППФ исчисления высказываний. Из полноты исчисления высказываний и непротиворечивости исчисления предикатов вытекает, что всякая ППФ исчисления высказываний, выводимая в исчислении предикатов, является выводимой ППФ исчисления высказываний.
Теорема 2.5. Во всяком исчислении предикатов первого порядка всякая теорема является общезначимой ППФ.
Обратное утверждение носит название проблемы полноты исчисления предикатов в широком смысле, которая решается положительным образом. Впервые проблему полноты в широком смысле в 1930 г. доказал выдающийся немецкий математик и логик К. Гедель.
Теорема 2.6. (Геделя о полноте). Во всяком исчислении предикатов первого порядка всякая общезначимая ППФ является теоремой.
Что касается проблемы полноты в узком смысле, то для исчисления предикатов первого порядка она решается отрицательно. Напомним, что система аксиом называется полной в узком смысле, если нельзя без противоречия присоединить к данной системе никакую другую невыводимую ППФ. Исчисление предикатов оказывается неполным в узком смысле, так как к его аксиомам можно присоединить без противоречия недоказуемую в нем следующую ППФ х А(х) →x A(x). Считаем, что предикат, входящий в данную ППФ, определен на некоторой области V, состоящей из одного элемента. Тогда данная ППФ вырождается в ППФ вида A → A, которая является выводимой ППФ. Следовательно, эта ППФ может быть без противоречия присоединена к аксиомам исчисления предикатов.
До сих пор рассматривалось исчисление предикатов, в котором отсутствовало такое важное понятие, как понятие равенства. Однако во многих формальных системах это понятие используется. Не рассматривая этот вопрос подробно, скажем несколько слов об исчислении первого порядка с равенством.
Интуитивно понятно, что отношение х = у означает, что х и у – это один и тот же предмет или что х и у – имена одного и того же предмета. Равенство обладает следующими свойствами:
оно есть отношение эквивалентности (рефлексивно, симметрично и транзитивно);
если х = у и А есть результат замены одного или нескольких вхождений х в высказывание В вхождениями у, то А имеет то же значение, что и В (правило замены равного равным).
Свойства симметричности и транзитивности равенства выводятся из рефлексивности и правила замены равного равным.
Для получения исчисления предикатов с равенством добавим в рассмотренное нами исчисление предикатов следующее:
в число символов предикатный символ =;
в правила конструирования ППФ следующее правило: если х и у – предметные переменные, то х = у – ППФ;
в число аксиом следующие две аксиомы:
а14. x1 (x1 = x1) (рефлексивность равенства);
a15. xy((х = у) → (A(x) → A(y))) (подстановочность равенства), где х и у – предметные переменные, А(х) – произвольная ППФ, а А(у) – ППФ, полученная из А(х) заменой х вхождениями у (необязательно всех) .
Из аксиом а14 и а15 легко доказываются свойства симметричности и транзитивности равенства, т. е. ├ (х = у) → (y = x) и ├ (х = у) → (y = z → x = z).
В заключение этого раздела приведем несколько примеров ФС2.
Пример 2.8. Теория частичного упорядочения.
Имеем одну предикатную букву A1. Обозначим A1(x1, x2) и ¬A1(x1, x2)
через х1 < х2 и х1 ≮ х2.
Система аксиом:
x1 (х1 ≮ х1) (иррефлексивность),
x1x2x3(x1 < x2 & x2 < x3 → x1 < x3) (транзитивность).
Пример 2.9. Теория групп.
Имеем одну предметную константу а1, обозначаемую как 0, одну функциональную букву f1 и одну предикатную букву A1. Обозначим f1(x1, x2) через x1 + x2 и A(x1, x2) через x1 = x2.
Система аксиом:
x1x2x3 (x1 + (x2 + x3) = (x1 + x2) + x3) – ассоциативность;
x1 (0 + x1 = x1);
x1 x2( x2 + x1 = 0) – существование обратного элемента;
x1 (x1 = x1) – рефлексивность равенства;
x1x2 ( x1 = x2 → x2 = x1) – симметричность равенства;
x1x2x3 (x1 = x2 → (x2 =x3→ x1 = x3)) – транзитивность равенства;
x1x2x3 (x2 = x3 → ( x1+ x2 = x1+ x3 & x2 + x1= x3 + x1)) – подстановочность равенства.
Если ├x1x2( x1 + x2 = x2 + x1), то группа называется абелевой или коммутативной.
Пример 2.10. Формальная арифметика.
Имеем одну предметную константу a1 обозначаемую как 0, три функциональные буквы f1, f2, f3 и одну предикатную букву A. Обозначим A(x1, x2) через х1 = х2, f1(x) – через x', f2(x1, x2) – через x1 + x2 и f3(x1,x2) – через x1 • x2.
Система аксиом Пеано:
x1 = x2 → (x1 = x3 → x2 = x3);
x1 = x2 → x'1 = x'2;
0 x'1;
x'1 = x'2 → x1 = x2;
x1 + 0 = x1;
x1 + x'2 = (x1 + x2)';
x1 • 0 = 0;
x1 • x'2 = (x1 • x2) + x1;
A(0) → (x(A(x) → A(x')) → x A(x)),
где А(x) – произвольная ППФ формальной арифметики, A(0) и А(x') – результаты подстановки, соответственно, 0 и x' вместо свободных вхождений x в А(x) . Интерпретация константы 0 и операций следующая: 0 интерпретируется как число «ноль», x' – как x + 1, x + y – как сумма x и y, x • y – как произведение x и y. Заметим, что аксиомы с 1 по 8 представляют собой конкретные ППФ, а аксиома 9 является схемой аксиом, порождающей бесконечное множество аксиом. Приведенная схема аксиом есть принцип математической индукции.
Пример 2.11. Доказать средствами ФС2 следующее утверждение на естественном языке: ”Ни один первокурсник не любит второкурсников. Все живущие в общежитии - второкурсники. Следовательно, ни один первокурсник не любит никого из живущих в общежитии”.
x(P(x)y(B(y)L(x,y)))
x(O(x)B(x))
_________________________
x(P(x)y(O(y)L(x,y)))
1. x(P(x)y(B(y)L(x,y)))
P(x)y(B(y)L(x,y)) A12
2. x(O(x)B(x))(O(x)B(x)) A12
3. x(P(x)y(B(y)L(x,y))), P(x)
y(B(y)L(x,y)) теорема дедукции
4. x(P(x)y(B(y)L(x,y))), P(x)
y(B(y)L(x,y))(B(y)L(x,y)) A12
5. x(P(x)y(B(y)L(x,y))), P(x)
B(y)L(x,y) MP 3,4
6. x(O(x)B(x))O(x)B(x) теорема дедукции для 2.
7. y(O(y)B(y))O(y)B(y) ПС x на y
8. x(P(x)y(B(y)L(x,y))), y(O(y)B(y)), P(x) O(y) L(x,y) сил. 5,7
9. x(P(x)y(B(y)L(x,y))), y(O(y)B(y)), P(x) y(O(y) L(x,y)) Gen’
10.x(P(x)y(B(y)L(x,y))), y(O(y)B(y))
P(x)y(O(y) L(x,y)) теорема дедукции
11. x(P(x)y(B(y)L(x,y))), y(O(y)B(y))
x(P(x)y(O(y) L(x,y))) Gen’
Задачи
Проверить эквивалентны ли следующие формулы:
1. xF(x) и xF(x)
2. x(F(x)A) и x(F(x)A)
3. x(AF(x)) и AxF(x)
4. x(A&F(x)) и A&xF(x)
5. х(F(x)G(x)) и xF(x)xG(x)
6. AxF(x) и x(AF(x))
7. x(F(x)&G(x)) и хF(x)&xG(x)
8. хF(x) и xF(x)
9. хyzF(x,y,z) и yx (x,y,z)
10. хy (F(x,y) zG(z)) и хyz(F(x,y)G(z))
II. Доказать утверждения средствами ФС2:
1. |
Каждый член группы любит логику и программирование. Некоторые члены группы – девушки. Следовательно, существуют девушки, которые любят программирование. |
2. |
Каждый, кто хранит деньги в сбербанке, получает проценты. Следовательно, если не существует процентов, то никто не хранит деньги в сбербанке. |
3. |
Ваня - мальчик, у которого нет автомобиля. Марго любит только мальчиков, имеющих автомобили. Следовательно, Марго не любит Ваню. |
4. |
Ни один республиканец или демократ не является социалистом. Джон- социалист. Следовательно, Джон не республиканец. |
5. |
Все рациональные числа являются действительными числами. Некоторые рациональные числа - целые числа. Следовательно, некоторые действительные числа - целые числа. |
6. |
Все первокурсники встречаются со всеми второкурсниками. Ни один первокурсник не встречается ни с одним студентом предпоследнего курса. Существуют первокурсники. Следовательно, ни один второкурсник не является студентом предпоследнего курса. |
7. |
Ни один преподаватель не является невеждой. Некоторые невежды попадают в институт. Следовательно, некоторые люди, попадающие в институт, не являются преподавателями. |
8. |
Некоторые первокурсники любят всех второкурсников. Ни один первокурсник не любит никого из студентов последнего курса. Следовательно, ни один второкурсник не является студентом последнего курса. |
9. |
Каждый, купивший лотерейный билет, получает премию. Следовательно, если нет премий, то никто не покупает билетов. |
10. |
Всякий разумный философ - циник и только женщины являются разумными философами. Существуют разумные философы. Следовательно, некоторые из женщин - циники. |
11. |
Всякий, кто находится в здравом уме, может понимать математику. Ни один из сыновей Гегеля не может понимать математику. Сумасшедшие не допускаются к голосованию. Следовательно, никто из сыновей Гегеля не допускается к голосованию. |
12. |
Для любого множества Х существует множество У, такое, что мощность У больше мощности Х. Если Х включено в У, то мощность Х не больше мощности У. Всякое множество включено в V. Следовательно, V не множество. |
13. |
Ни один торговец не покупает использованную машину для своей семьи. Некоторые люди, которые покупают использованные машины для своих семей, нечестны. Следовательно, некоторые нечестные люди не являются торговцами. |
14. |
Все люди добры и благородны. Существуют легкомысленные люди. Следовательно, существуют легкомысленные и благородные люди. |
15. |
Все люди или добры, или злы. Существуют скупые люди. Следовательно, существуют или скупые или злые люди. |
16. |
Все студенты нашей группы любят физику или математику. Каждый, кто любит физику, участвует в олимпиаде. Ни один студент нашей группы не участвовал в олимпиаде. Следовательно, в нашей группе все студенты любят математику. |
17. |
Каждый атлет - силён. Каждый, кто силён и интеллигентен, добьётся в жизни успеха. Петр - атлет и интеллигентен. Следовательно, Петр добьётся в жизни успеха. |
18. |
Ни один студент или аспирант не является невеждой. Петя - невежда. Следовательно, он не студент. |
19. |
Все добрые люди являются благородными людьми. Некоторые добрые люди - несчастны. Следовательно, некоторые благородные люди несчастны. |
20. |
Ни один порядочный человек не обидит беззащитного. Все живущие в домах для престарелых - беззащитные. Следовательно, ни один порядочный человек не обидит никого из живущих в домах для престарелых. |
21. |
Всякий чуткий человек отзывчив и только женщины являются чуткими людьми. Существуют чуткие люди. Следовательно, некоторые из женщин отзывчивы. |
22. |
Ни один студент не приобретает с рук подержанный магнитофон. Некоторые люди, которые приобретают с рук подержанные магнитофоны, спекулянты. Следовательно, некоторые спекулянты не являются студентами. |
23. |
Все студенты – граждане своей страны. Следовательно, голоса студентов на выборах являются голосами граждан. |
24. |
Все, кто живёт в доме №5, заядлые охотники. Все живущие на соседней улице не увлекаются охотой. Все, кто не живёт в доме №5, рыбаки. Следовательно, все живущие на соседней улице являются рыбаками. |
25. |
Каждый студент - молод. Каждый, кто молод и активен, занимается спортом. Ваня - студент и активен. Следовательно, Ваня – спортсмен. |
26. |
Преподаватели принимали экзамены у всех студентов, не являющихся отличниками. Некоторые аспиранты и студенты сдавали экзамены только аспирантам. Ни один из аспирантов не был отличником. Следовательно, некоторые преподаватели были аспирантами. |
27. |
Все дельфины относятся к китообразным. Ни одна рыба не является китообразной. Следовательно, ни одна рыба не является дельфином.
|
28. |
Холмс подозревал, что убийцей Баскервиля является кто-то из его соседей, а не кто-то из обитателей замка. Подобного же мнения придерживались некоторые из соседей, что наводило на мысль о том, что убийцей мог быть кто-либо из недавно поселившихся в окрестностях замка приезжий. Эту мысль можно было принять в качестве версии, что Холмс и сделал. События показали его правоту. |
29. |
Таможенники возвращают всех, кто въехал в страну без паспорта. Люди на машинах въехали в страну и были возвращены лишь другими людьми на машинах. Ни один человек на машине не имел паспорта. Следовательно, некоторые таможенники были на машинах.
|
Рассмотрим варианты формализации задач 1-29.
(Заглавные буквы обозначают переменные, а строчные – константы)
Б1. |
|
|
|
Б2. |
|
|
|
Б3. |
|
|
|
Б4. |
|
Б5. |
|
|
|
Б6. |
|
|
|
Б7. |
|
Б8. |
|
|
|
Б9. |
|
|
|
Б10. |
|
|
|
Б11. |
|
Б12. |
|
|
|
Б13. |
|
|
|
Б14. |
|
|
|
Б15. |
|
|
|
Б16. |
|
|
|
Б17. |
|
|
|
Б18. |
|
|
|
Б19. |
|
|
|
Б20. |
|
|
|
Б21. |
|
|
|
Б22. |
|
|
|
Б23. |
|
|
|
Б24. |
|
|
|
Б25. |
|
|
|
Б26. |
|
|
|
Б27. |
|
|
|
Б28. |
A(X) – X-сосед; В(Х) – Х-обитатель замка; С(Y) – Y-убийца; E(X,Y) – X подозревает Y в убийстве; D(Y) – Y-приезжий.
|
|
|
Б29. |
E(X) – Х въехал в страну; P(X) – X с паспортом; R(X,Y) – Y возвращает X; D(Y) – Y-таможенник; M(X) – X на машине въехал в страну.
|