Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по математической логике3.doc
Скачиваний:
190
Добавлен:
02.05.2014
Размер:
1.58 Mб
Скачать
    1. Операции над предикатами и кванторами

Предикат— это функциональное высказывание, а высказывание — предикатная константа.логика предикатов— это расширение логики высказываний за счет использования предикатов в роли логических функций. Эти функции несколько отличаются от функций, которые мы использовали в логике Буля. Булева функцияоднородна, т.е. для нее область значений функции и область изменения аргументов по типу одна и та же —логическая(либоистина, либоложь). Для предикатов же область значений функции —логическая, а область изменений аргументов —предметная. Таким образом, эта функция —неоднородна. Приведем примеры предикатных функций. Пусть имеется ряд простых высказываний:

Р1 = «Иван читает Достоевского»,

Р2 = «Петр читает Достоевского»,

……………………………………..

Рn= «Степан читает Достоевского».

Вместо высказываний Р1, Р2,... , Рnмы могли бы ввестиодноместный предикатР(х), для которого переменная х принимала бы значения из предметной обл; типа —

х = {Иван, Петр, ... , Степан},

а сама предикатная функция передавалась бы словами:

Р(х) = « х читает Достоевского».

Теперь изменим исходный ряд высказываний на другой:

Р1 = «Иван читает Достоевского»,

Р2 = «Петр читает Толстого»,

…………………………………

Рn= «Степан читает Чехова».

Здесь можно было бы ввести уже двухместный предикат

Р(х, у) = « х читает у »

с дополнительной предметной областью —

у= {Достоевский, Толстой, ... , Чехов}.

Введем трехместный предикатР(х, у,z), который означает, что

« х есть сумма у и z».

Допустим, в процессе вычислений переменная х приняла конкретное зна­чение, равное 5. Тогда трехместный предикат превратится в двухместный:

Р(5, у, z) = Р’(у,z) = « 5 есть сумма у иz».

При х = 5 и у = 3 получим одноместный предикат:

Р(5, 3, z) = Р'(3,z) = Р"(z) - « 5 есть сумма 3 иz».

Наконец, если добавить условие z= 2 , то исходный предикат становитсянулъместным предикатом (константой или высказыванием), который в данном случае принимает истинное значение:

Р1 = Р(5, 3, 2) = « 5 есть сумма 3 и 2 » = 1.

Но могло случиться, что z= 1 тогда имели бы ложное высказывание:

Р0 = Р(5, 3, 1) = « 5 есть сумма 3 и 1 » = 0.

Таким образом, при замещении переменной xiпредметной постоянной аi, происходит превращениеn-местного предикатаP(x1,...,xi,..., хn) в (n— 1)-мест­ный —P(x1,..., аi,...,xn). Приписав конкретные значения всем аргументам пре­дикатной функции —P(a1,...,ai,...,an), мы тем самым получаем предикатную константу, к которой применимы все законы логики высказываний.

Функциональная природа предиката влечет за собой введение еще одного понятия — квантора. Роль его выясним на следующих двух примерах:

1) «Все люди смертны. Сократ человек. Следовательно, Сократ смертен.»

2) «Некоторые люди гениальны. Сократ человек. Следовательно, Сократ гениален.»

Во втором примере хорошо чувствуется ложность заключения, поскольку интуи­тивно мы понимаем, что Сократ мог и не попасть в число гениальных людей.

Итак, ключевыми словами в наших примерах являются «все» и «некоторые». Когда какое-нибудь правило распространяется на всех индивидуумов, оно, есте­ственно, распространяется и на Сократа. Когда же правило касается только не­которых, оно может оказаться в отношении Сократа как раз и неверным.

Термин «все х» обозначается в логике предикатови называется квантором общности (символесть перевернутая буква А, которая является начальной бук­вой английского словаAll— «все»). Термин «некоторыех» или «существует хотя бы одно значениех» обозначается черези называется квантором существова­ния (символесть перевернутая буква Е, являющаяся первой буквой английско­го словаExist— «существовать»).

Выставляя кванторы перед предикатами, мы как бы усиливаем или ослабляем их действие. Так, выражение

означает «для всех без исключения х изХсвойствоРистинно», а выражение

означает «существует по крайней мере одно значение хизХ, для которого свойствоРистинно». Мы не будем использовать так называемые свободные переменные, т.е. не будем рассматривать предикатные функции, аргументы которых не связаны ни квантором общности , ни квантором существования . Сказать «для всеххсвойство Р истинно» — это все равно, что сказать «конъюнкция всех значений предикатной функции равна единице»:

Квантор существования означает дизъюнкцию всех значений предикатной функции:

Оба квантора можно отрицать и выражать один через другой на основе закона де Моргана:

Отсюда

Пример. Пусть предикат Р(х)означает, что «хявляется простым числом». Когдахбудет пробегать ряд натуральных чисел —.

P(1)=0,P(2)=1, Р(3) = 1, Р(4) = 0, Р(5) = 1, Р(6) = 0, Р(7) = 1, …

-- не верно, что все натуральные числа – простые, т.е. найдется натуральное число, которое не является простым --

-- нет ни одного натурального числа, которое было бы простым, т.е. все натуральные числа не являются простыми числами --

Пусть предметная область предиката Р(х) состоит всего из двух конкрет] значений а и b. Учитывая, что

Ух Р(х) = Р(а) & Р(А), Зх Р(х) = Р(а) vP(ft) ,

составим табл. 1.25, из которой непосредственно вытекают три элементар] клаузы:

Вместо Р(я) в последних выражениях можно было бы взять Р(й) — семантика клауз от этого не изменится, а она такова: если выражение «для всех х свойство Р выполняется» является истинным, то для конкретного значения х, равного а, это свойство тоже будет выполняться. Первая клауза является предикатной формой выражения аксиомы порядка:

V* Р(*) = Р(а), Р(*)=>Р(а).

Таблица 1.25

Р(а)

Р(А)

VJT Р(х)

3JTP(jr)

0

0

0

0

1

0

0

1

0

1

0

1

1

1

1

1

Действие ее продемонстрируем на уже знакомом нам примере, который сей­час мы сформулируем более отчетливо:

Для всех х справедливо правило: если х — человек, то х смертен. Сократ человек. Следовательно, Сократ смертен.

Введем два предиката:

А(дг) = «х — человек» и В(л') = «х смертен».

Примем также, что а = «Сократ». Составим клаузу, соответствующую нашей ле­генде:

V* (А(х) -> В(*)), А(Й) => В(й) .

Для ее доказательства достаточно перенести вторую посылку вправо за знак метаимпликапии, чтобы клауза сразу же удовлетворяла аксиоме порядка в пре­дикатной форме:

V* (А(лг) -> В(х)) => А(Й) -> В(я) .

Ясно, что второй пример с заключением о гениальности Сократа является ложным выводом, поскольку приводит к клаузе, противоречащей аксиоме по­рядка:

3JC(А(х) -> В(д-)) => А(й) -> В(«) .

Справедливы законы

x(А(x) & В(x)) =xА(x) &xВ (x) ,

x(А(x)vВ(x)) =xА(x)vxВ(x) .

Если в предыдущих клаузах поменять кванторы на противоположные, то придется эквивалентность изменить на импликацию

x((А x) & В(x)) =>xА(x) &xВ(x)

xА(x)vxВ(x) =>x(А(x)vB(x)) .

Чтобы показать, что импликация в обратную сторону не верна, достаточно привести пример. Пусть A(x)=«х – четное число»,B(x)=«х – нечетное число».

В логике предикатов, как и в логике высказываний или логике Буля, действует принцип двойственности. Клауза останется в силе, если ее посылки и заключения поменять местами, но при этом одновременно произвести замену:

на,на, л наv,vна л, 0 на 1, 1 на 0.

Установленное свойство кванторов в отношении дизъюнкции отражается на импликации, поскольку она может быть выражена через дизъюнкцию. Поэтому справедливы следующие выражения;

х(А(х) ->B(х)) =хА(х) ->хВ(х) ,

хА(х) ->хВ(х) =>х(А(х) -> В(х)) .

Чтобы сохранить отношение эквивалентности при вынесении за скобки квантора при конъюнкции и кванторапри дизъюнкции, когда даны два раз­личных предиката, прибегают к введению дополнительной переменной, напри­мер:

хА(х) &хВ(х) =хА(х) &уB(у) =ху (А(х) & В (у))

Аналогично поступают в других случаях:

хА(х)vхВ(х) =х y(A(х)vВ (y)) ,

хА(х) ->хВ(х) =хy(А(х) -> В(у)) ,

хА(х)vхВ(х) =х y(А(х)vВ (у)) = yх(А(х)vВ (у))

Последний пример показывает, что кванторы иможно переставлять местами, если они независимы (в данном случае они относятся к независимым одномест­ным предикатам).

Рассмотрим всевозможные комбинации кванторов при двухместных преди­катах. С помощью законов коммутативности и ассоциативности для конъюнк­ции и дизъюнкции доказывается справедливость двух тождеств:

xyР(x,у) =y xР(x,у) ,xуР(x,у) =у xР(x,у} ,

т.е. одинаковые кванторы при двухместных предикатах можно переставлять мес­тами. Но перестановка кванторов иподчинена только отношению порядка:

хyР(х,y) =>y хР(х,y) .

В обратную сторону импликация неверна.

Положим: х-- шляпа,y-- человек. Р(х,y) – «шляпа пришлась человеку впору».

Истинными являются следующие кла­узы:

хyР(х,y) =>х yР(х,y)

хyР(х,y) =>х yР(х,y)

хyР(х,y) =>х yР(х,y)

хyР(х,y) =>х yР(х,y)

хyР(х,y) =>х yР(х,y)

хyР(х,y) =>yхР(х,y)

хyР(х,y) =>х Р(х,х)

х Р(х,х) =>х yР(х,y)

хyР(х,y) => Р(a,b)

Р(a,b) =>х yР(х,y)

yР(a,y) =>yхР(х,y)

yР(a,y) =>х yР(х,y)

хР(х,b) => y хР(х,y)

хР(х,b) => х yР(х,y)

х yР(х,y) => yР(a,y)

y хР(х,y) => yР(a,y)

х yР(х,y) => хР(х,b)

yхР(х,y) => хР(х,b)

Таблица 1.2

P{e, a)

P(e. ti)

P(*. a)

P{A, b)

VVP

3VP

V3P

33 P

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

1

1

0

0

0

1

1

1

0

0

1

0

0

0

0

1

1

0

1

0

0

0

0

1

0

1

1

0

0

0

1

1

1

1

1

0

0

1

1

1

0

о

0

1

0

0

0

1

1

o"

0

1

0

0

1

1

0

1

0

1

0

0

0

1

1

1

0

1

0

1

1

1

0

0

1

1

0

1

1

1

1

о

1

1

0

1

1

1

0

1

1

1

0

1

1

1

1

1

1

1

1

1

1

1

Пять первых клауз из приведенного списка являются для нас сейчас особен] важными, так как они дают ключ к пониманию процедуры составления исти ных клауз для многоместных предикатов с любым числом кванторов. Эту прои дуру схематично можно пояснить следующим образом. Для одноместных пред катов справедливы три клаузы:

VP=>VP,VP=> ЗР, ЗР => ЗР , Клауза

ЗР^ VP

является ошибочной. Для двухместных предикатов будут верны уже девять кла; четыре из которых являются тождествами, а пять других как раз и возглавля: приведенный список:

V(VP) =>V(VP),V(VP)rr> 3(VP), 3(VP) => 3(VP),V(VP) =>V(3P),V(VP) => 3(3P), 3(VP) => 3(3P),V(3P) ^>V(3P),V(3P) => 3(3P), 3(3P) => 3(3P).

Клаузы-тождества не следует отбрасывать, если мы хотим построить следующий ряд для трехместных предикатов, например:

v(WP) => 3(wP), v(V3P) => 3(V3P).

Зная процедуру построения правильных клауз, легко распознать истинность кла­уз, в частности:

3VV3VP=> 33V33P- истинная, 33V3VP=> 3VV33P- ложная.

Соседние одинаковые кванторы в многоместных предикатах можно перестав­лять в любом направлении; что же касается различных кванторов, то здесь допу­стима лишь перестановка, описанная клаузой 6 в вышеприведенном списке:

... Зи W... Р(... , и,V, ...) => ...VrЗи ... Р(... , и,v, ...) .

Одинаковые кванторы могут быть объединены по схеме, продиктованной

клаузами 7 и 8:

... V«W... Р(... , и,v, ...) => ...VH... Р(... , и, и, ...) , ... 3v... Р(... ,v,v, ...) => ... Зи 3v... Р(... , и,v, ...) .

Законы конкретизации, представленные в списке следующими десятью клау­зами (с 8 по 18) и являющиеся производными от первых шести клауз, естествен­но, распространяются и на многоместные предикаты.

В отношении дизъюнкции и конъюнкции двух многоместных предикатов действуют примерно те же законы эквивалентности, что и для одноместных. Если все кванторы соответствуют операции, то введение дополнительных пере­менных необязательно, например:

VjcVj- (А(х, у) л В(х, у)) *V* \?у А(*, у) лV*V> В(*, у) . Во всех остальных случаях необходимо вводить переменные:YJCЗу Уг ЗиVvVw(A(jc, у,z)vВ(и,v, и>)) = =VxЗуVzA(x, у,z)vЗйVvVwВ(н,v,w) .

Формализм теории предикатов, конечно, будет неполным без рассмотрения операции отрицания многоместных предикатов. Для понимания существа дела достаточно привести одно доказательство для двухместного предиката:

3* VyР(х, у) = Зх (Р(*, а) л Р(дг, и)) =V* (Р(х, а) л Р(х, Ъ)} =

- V*Vj> Р(х, у) = (Р(а, «)vР(а, Ь)) л (Р(А, а)vР(й, *)) -VjcЗу Р(х, у) .

Отсюда вытекает простое правило перемещения символа отрицания слева напра­во для многоместных предикатов, например:

VV3V3P = 3V3V3P = 333V3P = 33VV3P = 33V33P = 33V3VP .

Таким образом, чтобы произвести полное отрицание многоместного предиката с кванторами, необходимо прибегнуть к замене:

Зс^ V, РоР.

Процедура составления истинных клауз из предикатов с кванторами, опи­санная в предыдущем подразделе, позволяет построить булеан из кванторов (рис. 1.20).

VV3

33V

3VV

Булеан — это очень распространенный математический объект. Так, если кванторном булеане все символы Vзаменить на 0 и 3 — на 1, то получим булеа на 0,1 - векторах (рис. 1.21). Если дано множество из элементов — а, Ь, с, то всеeiподмножества образуют точно такой же булеан (рис. 1.22). Наконец, приведе пример из арифметики: делители числа 30 образуют аналогичный булеэ (рис. 1.23).

Булеан есть частично упорядоченное множество, на котором действуют заю ны логики множеств. Чтобы раскрыть его свойства, введем несколько определ1

НИИ.

Множество элементов любой природы называется линейно-упорядоченны. если любые два его элемента я и и связаны отношением порядка — либо а => либо b=> а. Множество называется частично упорядоченным, если имеютсяiкрайней мере два несопоставимых элемента, на которые не распространяется о ношение порядка.

Верхней границей подмножества QсRназывают такой элемент г еR, что д. всехqЕQсправедливо отношение порядкаq=> г. Нижней границей подмножес ваQсRназывают такой элемент г' еR, что для всехqеQсправедливо отнош ние г' =>q. Наименьшая верхняя граница называется супремумом (supQ), а наиб лъшая нижняя граница — инфимумом (infQ). Помимо супремума и инфимул-вводятся понятия точной верхней грани и точной нижней грани, которые мог

совпадать или не совпадать, соответственно, с супремумом и инфимумом. Точ­ную верхнюю грань двух элементов обозначим через дизъюнкцию в vb, точную нижнюю грань — через конъюнкцию дли. Тогда в общем случае будем иметь:

a v b => sup (a, b) , inf(a, b) => а л Ь .

Множество Rназывается решеткой, если каждая пара его элементов обязате­льно имеет один супремум и один инфимум. МножествоVV,V3, 3Vи 33 (рис. 1.24) образует решетку, так как удовлетворяет указанному требованию, на­пример:

sup (V3, 33) = 33, sup (V3, 3V) = 33, /n/(V3, 33) = V3, /n/(V3, 3V) = VV,

Множество a,b,c,d(рис. 1.25) не образует решетки, так как а иbимеют два инфимума и ни одного супремума, элементы с иdимеют два супремума и ни од­ного инфимума.

Решетка называется булевой или булеаном, если ее элементы удовлетворяют законам булевой логики — коммутативности, ассоциативности, дистрибутив­ности, нуля и единицы. Для кванторных решеток все четыре закона выполняются:

VV3vV3V=V3VvVV3 ,

(V3V v 3VV) v 33V = V3V v (3VV v 33V) ,

(VV3 л 3VV) v V3V = (VV3 v V3V) л (3VV v V3V) ,

V3Vv333 в 333,V3Vл 333 =V3V,

V3VvVVV=V3V,V3VлVVV-VVV.

Поскольку в кванторном булеане предполагаются только положительные предикаты, т.е. отсутствуют обратные элементы, типа V3V, то и в законе для нуля и единицы отсутствуют равенства, отражающие взаимное дополнение эле­ментов. Однако вместоVVVи 333 можно взять полностью нулевой и единичный векторы, тогда уже все законы нуля и единицы будут выполняться, например:

V3VP v 3V3P = 1, V3VP л 3V3P = 0 .

Если для кванторов справедливы аксиомы логики множеств, то на них дол­жны распространиться и все выводимые из них тождества, например, закон де Моргана'.

V3V v 3VV = V3VA3VV .

зэ

V3

3V

Аксиома порядка, которая может быть выражена клаузами:

VV3, 3VV => VV3, 33V => VV3; 33V, ...

также имеет место в логике предикатов. На первый взгляд выражения типа

VV3 =>VV3 л 3V3,VV3vЗУЗ => 3V3

противоречат аксиоме порядка. Однако подобные клаузы всегда заменимы то: дествами, поэтому ихможно представить аксиомой порядка. Тождества возник ют для линейно-упорядоченных элементов, каковыми и являются элементы У-

иЗУЗ:

sup(VV3, 3V3) =VV3v3V3 = 3V3,m/(VV3, 3V3) =VV3 л 3V3 =VV3.

Несопоставимые же элементы, к которым относятся, например, элементы V3; 3VV, уже не будут описываться тождествами, атолько отношением порядка:

V33 v 3VV => sup (V33, 3VV), in/(V33, 3VV) => V33 л 3VV. Так как

sup(V33, 3VV) = 333, /«/(V33, 3VV) =VVV,

в логике предикатов будут возникать совершенно специфические клаузы, не СЕ дящиеся к аксиоме порядка, типа —

V33 v 3VV => 333 , VVV => V33 л 3VV.

Рассматривая булеаны, нельзя не упомянуть о законе четырехполюсни. Действие его продемонстрируем сначала на числовом булеане делителей чи< 30 (см. рис. 1.23). Если наибольший общий делитель (НОД) двух чисел в и и ofзначить конъюнкцией (ял Ь), а наименьшее общее кратное (НОК) — через ди: юнкцию (avи), то в отношении этих двух арифметических понятий будут дей вовать все четыре закона булевой логики. Убедимся в справедливости законаiстрибутивно сти:

(а л Ь) vс = (avс) л (bvс);

при л=6,*=10ис=5получим:(6л10)у5 = (бу5)л(10у5),или 2v5 = 30AlO,t10 = 10. Но из арифметики известен закон: произведение любых двух чиселpaiпроизведению их НОД и НОК:ab=(avb}- (а л А). В частности, 6 • 10 = (6v1 • (6 л 10)-30-2.

Этот арифметический закон является прямым следствием булеановой стр туры делителей чисел. Подобный закон имеет место в любом булеане (х< смысл операций в нем может существенно меняться) и называется он зако> четырехполюсника. Четыре полюса, соответствующие числам 6,10, 2 и 30, взя1; на булеане подмножеств (рис. 1.22), связаны соотношением:

{и, Ъ] Ф {а, с] = {{а, Ь] и {а, с}} ® {{a,b}n{а, с}}.

Под символом Ф понимается прямое сложение множеств, при котором повтор* щиеся элементы не удаляются. В результате получим:

!я. и. а. с] - {а. 6, с} Ф {а}.

Закон четырехполюсника выполняется и для 0,1-векторов (рис. 1.21). Роль прямого сложения здесь заменяется на обыкновенное сложение единиц:

(111) + (001) = ((Oil)v(101)) + ((011) л (101)); 3 + 1=4. Число единиц в 0,1 -векторе а будем называть его модулем или длиной и обозна­чать] а\. Из табл. 1.25 и табл. 1.26 выпишем в символической форме модули пре­дикатных векторов:

|Р(а)| = Р(*)| =2, 3 =3, 33 =15, V3

v=1;

= 9, 3V= 7,VV

1.

Р(А, /и)

Нетрудно убедиться в справедливости закона четырехполюсника для двухмерно­го предикатного булеана:

VV

V3v3V

V3A3V; 15 + 1 = 11 + 5 =

Таблица истинности для трехместных предикатов будет уже состоять из 256 строк. Чтобы определить модули 0,1-векторов кванторного булеана, таблицу ис­тинности можно и не строить, но провести тщательный комбинаторный анализ. В итоге получим:

= 49, VV3 =81,

= 207, VV3 =225,

= 255, P(k,m,n) =128.

Кванторный булеан 3-го порядка наложен на векторный булеан 256-го поряд­ка, причем его нижняя точка совпадает не с нулевым вектором, а с вектором пер­вого уровня (00...01), верхняя же точка лежит на предпоследнем уровне (01... 11). Таким образом, кванторный булеан оказывается немного развернутым относи­тельно векторного булеана. Тем не менее, закон четырехполюсника для него тоже выполняется, в частности:

3VV

= 31,

V3V

33V

= 175,

3V3

VVV

~~ -*•!

333

VV3

V3V

VV3 v V3V

VV3 AV3V

81 +49 = 105 + 25 = 130.

Вообще, величина модуля вектора а является важной собственной характери­стикой клауз, например:

3VV

=*>

V3V v 33V

VV3 v V3V

V33

31=>151;

105 => 225

и тождеств, например: 57 = 57 для закона дистрибутивности:

(VV3 л 3VV)vV3V

(VV3vV3V) л (3VVvV3V) |.

С помощью модулей можно осуществлять частичную проверку правильности логических действий, хотя в случае многоместных предикатов для такого конт­роля понадобится уже компьютер, -поскольку величина модулей даже для четы­рехместных предикатов исчисляется сотнями тысяч:

V333 + 3V33 = 65 025 + 63 135 = 128 160.