Вы находитесь на странице: 1из 7

Тема 2.2.

Логика предикатов
Логика предикатов даёт возможность строго рассуждать об истинности и ложности утверждений и об
их взаимосвязи, в частности, о логическом следовании одного утверждения из другого, или, например, об их
эквивалентности.
Философы давно обращали внимание на логические операции, ограничивающие область истинности
предиката, однако не выделяли их в отдельный класс операций. Так, Томас Гоббс считал, что они являются
частями имён.
Хотя кванторно-логические конструкции широко используются, их формализация произошла только
в 1879 г., в книге Людвига Готлоба Фреге «Исчисление понятий». Обозначения Фреге имели вид
громоздких графических конструкций и не были приняты. Впоследствии было предложено множество более
удачных символов, но общепринятыми стали обозначения ∃ для квантора существования,
предложенное Чарльзом Пирсом в 1885 г., и ∀ для квантора общности, образованное Герхардом
Генценом в 1935 г. по аналогии с символом квантора существования. Термины «квантор», «квантификация»
также предложил Пирс.

Предикаты и кванторы
Средствами логики высказываний удается описать и анализировать
далеко не все рассуждения. Например, на языке логики высказываний мы не
можем выразить тот факт, что из предложения «По меньшей мере один
ученик решил все задачи» следует предложение «Каждую задачу решил по
меньшей мере один ученик». Эти рассуждения, как и многое другое, могут
быть описаны на языке логики предикатов, которая является расширением
логики высказываний, т. е. вместе со всеми понятиями логики высказываний
содержит ряд других понятий.
Рассмотрим предложение «Город x является столицей». Данное
предложение не является высказыванием, так как оно не может быть не
истинным не ложным. Однако всякий раз при подстановке вместо
переменной x некоторого конкретного города мы будем получать либо
ложное, либо истинное высказывание.
Рассмотрим другой пример. В предложении «Расстояние между
городом x и городом y – 2 тыс. км» содержится две переменные: x и y.
Данное предложение превратится в высказывание, если вместо обоих
переменных мы подставим названия некоторых конкретных городов.
Определение. Повествовательное предложение, содержащие конечное
число переменных и принимающее значения «истина» или «ложь» в
зависимости от значений этих переменных, называется предикатом.
Предикаты будем обозначать заглавными латинскими буквами,
например P ( x ) , Q ( x, y ) , R ( x 1 , ..., x n ), где в скобках указываются переменные,
которые встречаются в данном предикате. По количеству переменных,
входящих в данный предикат, предикат будем называть одноместным,
двухместным, трехместным и т. д.
Остановимся на происхождении термина «предикат» (лат. praedicatum –
сказуемое). Традиционная логика выделяет в элементарном высказывании
(суждении) субъект и предикат. Субъект (логическое подлежащее) – то, о чем
говорится в высказывании. Предикат (логическое сказуемое) – то, что
говорится (утверждается или отрицается) о субъекте. Например, в
высказывании «Кошка имеет четыре лапы» «кошка» – субъект, «имеет
четыре лапы» – предикат. Если на место слова «кошка» поставить слово
«собака», то снова получим истинное высказывание «Собака имеет четыре
лапы». Если же в качестве субъекта взять слово «курица», то получится
ложное высказывание «Курица имеет четыре лапы». Заменив субъект
переменной, получим «x имеет четыре лапы» – предикат в нашем
понимании этого термина.
Одноместные предикаты иногда называют предикатами-свойствами, а
n-местные при n>1– предикатами-отношениями. Так, предикат «Город x
является столицей» выражает свойство городов, а предикат «Расстояние
между городом x и городом y – 2 тыс. км» – отношение между городами.
Высказывания принято считать ноль-местными предикатами.
Чтобы превратить предикат в высказывание достаточно вместо каждой
из переменных, входящих в предикат, подставить какое-нибудь ее значение.
Существует и другой способ превращения предикатов в высказывания.
Пусть, например, дан предикат «Птица x не умеет летать».
Предложение «Для всякой птицы x истинно, что x не умеет летать»
утверждает, очевидно, то же самое, что предложение «Все птицы не умеют
летать», и, следовательно, является ложным высказыванием. Предложение
«Существует такая птица x, что x не умеет летать» равнозначно
предложению «Некоторые птицы не умеют летать» и является истинным
высказыванием.
Выражение «для всякого x» называется квантором общности по
переменной x и обозначается ∀ x.
Выражение «существует x такое, что» называется квантором
существования по переменной x и обозначается ∃ x .
Вместо слова «всякий» можно употреблять слова «каждый», «любой» и
т. п.; вместо «существует» – слова «есть», «найдется», «хотя бы один» и т. п.
Переход от предиката P ( x ) к высказыванию ∀ xP ( x ) или высказыванию
∃ xP ( x ) называется операцией квантификации предиката P ( x ) , или просто
навешиванием квантора на предикат P ( x ) . В результате квантификации
переменная в предикате перестает быть переменной в прежнем смысле этого
слова, т. е. символом, на место которого можно подставлять объекты из
некоторого множества.
Будем называть переменную x в P ( x ) после применения к ней операции
квантификации связанной переменной. Таким образом, в высказываниях
∀ xP ( x ) и ∃ xP ( x ) переменная x связанная. В отличие от связанных переменных,
переменные, на которые не навешаны кванторы, называются свободными
переменными.
Операция квантификации применима и к многоместным предикатам.
Пусть P ( x 1 , x 2 , ..., x i ,..., x n ) – n-местный предикат. Переход от предложения
P ( x 1 , x 2 , ..., x i , ..., x n ) к предложению ∀ xi P ( x1 , x 2 , ..., x i ,..., x n ) либо к предложению
∃ x i P ( x 1 , x 2 ,..., x i ,..., x n ) называется квантификацией предиката P по переменной
x i.

Если n>1, то в результате квантификации по одной переменной n-


местный предикат становится (n - 1)-местным предикатом: одна из
переменных связывается квантором. Например, ∀ x ( студент x прочитал книгу y )
– одноместный предикат со свободной переменной y. Можно связать любым
из кванторов и переменную y. Тогда получим либо высказывание
∃ y ∀ x ( студент x прочитал книгу y ) [Существует книга, которую прочитали все
студенты], либо высказывание ∀ x ∀ y ( студент x прочитал книгу y ) [Все
студенты прочитали все книги].
Вообще, для двухместного предиката возможны следующие восемь
комбинаций:
1) ∀ x ∀ y P ( x , y );
2) ∀ y ∀ x P ( x , y );
3) ∃ x ∃ y P ( x , y );
4) ∃ y ∃ x P ( x , y );
5) ∀ y ∃ x P ( x , y );
6) ∃ x ∀ y P ( x , y );
7) ∀ x ∃ y P ( x , y );
8) ∃ y ∀ x P(x, y).
Высказывания 1 и 2, а также 3 и 4 имеют один и тот же смысл и,
следовательно, одно и то же значение истинности.
Если истинно высказывание 6, то, очевидно, истинно и высказывание 5,
но не наоборот.
Если истинно высказывание 8, то, очевидно, истинно и высказывание 7,
но не наоборот.
Например, ∀ x ∃ y (студент x прочитал книгу y) [Каждый студент
прочитал хотя бы одну книгу] – истинное высказывание, а ∃ y ∀ x $(студент x
прочитал книгу y) [Существует книга, которую прочитали все студенты] –
ложное высказывание.
Итак, одноименные кванторы можно менять местами; разноименные
кванторы нельзя менять местами; если истинно высказывание ∃ x ∀ y P ( x , y ) ,
то истинно и высказывание ∀ y ∃ x P ( x , y ).
Известно, что часто для построения отрицания некоторого предложения
достаточно предпослать сказуемому этого предложения отрицательную
частицу «не». Например, отрицанием предложения «Река x впадает в Черное
море» является предложение «Река x не впадает в Черное море». Годится ли
этот прием для построения отрицаний предложений с кванторами?
Рассмотрим примеры.
Предложения «Все птицы летают» и «Все птицы не летают» не
являются отрицаниями друг друга, так как они оба ложны.
Предложения «Некоторые птицы летают» и «Некоторые птицы не
летают» не являются отрицаниями друг друга, так как оба истинны.
Таким образом, предложения, полученные добавлением частицы «не» к
сказуемому предложений с кванторами, не являются отрицаниями этих
предложений.
Универсальным способом построения отрицания данного предложения
является добавление словосочетания «неверно, что» в начале предложения.
Отрицанием предложения «Все птицы летают» является предложение
«Неверно, что все птицы летают»; но это предложение имеет тот же смысл,
что и предложение «Некоторые птицы не летают». Отрицанием
предложения «Некоторые птицы летают» является предложение «Неверно,
что некоторые птицы летают, которое имеет тот же смысл, что и
предложение «Все птицы не летают».
Условимся отрицание предложения ∀ x P ( x ) записывать как ¬ ∀ x P ( x ), а
отрицание предложения ∃ x P ( x ) – как ¬∃ x P ( x ) . Тогда мы получим
¬ ∀ x P ( x )≡ ∃ x ¬ P( x ) ,
¬∃ x P ( x ) ≡ ∀ x ¬ P ( x ) .
Из этих соотношений вытекает правило: для того, чтобы построить
отрицание высказывания, начинающегося с квантора общности
(существования), достаточно заменить его квантором существования
(общности) и взять отрицание предложения, стоящего за квантором.

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


При решении задачи формализации сначала следует выбрать универсум,
содержащий объекты (сущности), о которых говорится в предложении.
Выбор универсума в большинстве случаев не является однозначным,
зачастую универсум является многосортным.
Следующим шагом определяются предикатные символы для
обозначения свойств объектов (одноместные предикаты) и/или отношений
между объектами (многоместные предикаты) универсума. Важно, чтобы
введенные предикаты имели смысл для всех элементов универсума. Кроме
того, для каждого одноместного предиката множество значений этого
предиката должно быть собственным непустым подмножеством универсума.
Далее проверяется наличие констант, т.е. проверяем говорится ли в
предложении об конкретных объектах универсума (зачастую это имена
собственные).
Так же необходимо проверить простое или сложное предложение. Для
каждого простого предложения составляем отдельную формулу, которые
потом соединяем в одно утверждение с помощью логических связок.
Так же не забываем, что при формализации предложения естественного
языка должна получиться замкнутая формула, иначе она не имеет
истинностного значения и мы не можем проверить перевод.
Рассмотрим утверждение: «Все бешеные собаки смертельно опасны». В
этом предложении утверждается, что если животное x — собака, и причем
бешеная, то x — смертельно опасное. Следовательно, если предикат D ( x )
означает предикат «животное x — собака», предикатом M ( x ) формализуем
выражение «животное x — бешеное», а предикатом Z ( x ) — «животное x —
смертельно опасное», то формальная запись этого утверждения имеет вид
∀ x ( ( D ( x )∧M ( x ) ) → Z ( x ) ) .
Аналогично утверждение «Некоторые старательные студенты
получают стипендию» можно записать в виде
∃ x ( P ( x )∧S ( x )∧O ( x ) ) ,
где P ( x ) означает «человек x — студент»; S ( x ) означает «человек x —
старательный»; O ( x ) — «человек x — получает стипендию».
Итак, если на значения переменной накладываются сразу несколько
ограничений, то все они перечисляются через конъюнкцию, а затем
надстраивается квантор существования.
Теперь рассмотрим утверждение: «Произведение двух чисел,
отрицательного и положительного, является отрицательным». Пусть
универсум составляет множество вещественных чисел, а предикаты
используем в традиционной записи: ( x <0 ) («число x отрицательно»), ( x >0 )
(«число x положительно»). Произведение двух чисел x и y представим в виде
терма x ∙ y . Тогда высказывание имеет несколько эквивалентных форм, все
они допустимы. Выберем два варианта:
∀ x ( ( x <0 ) → ∀ y ( ( y >0 ) → ( x ∙ y< 0 ) ) ),
∀ x ∀ y ( ( x <0 )∧( y >0 ) → ( x ∙ y < 0 ) ) .
Хоть эти две формы и эквивалентны, но вторая, пожалуй, несколько
выразительнее и яснее подчеркивает равноправие двух чисел.
Перевод утверждения «Для всякого целого числа есть меньшее целое»
можно записать следующим образом:
∀ x ( ( x ∈ Z ) → ∃ y ( ( y ∈ Z ) ∧( y < x ) ) ) .
Заметим, что это утверждение удобнее писать, начиная с внутреннего
квантора, т. е. сначала перевести, что означает «Для x есть меньшее его
натуральное число», а затем расшифровать начало предложения: «для
всякого x ».
При переводе утверждений с вложенными кванторами необходимо
тщательнейшим образом следить за порядком кванторов и их областью
действия. Например, если последнее утверждение, очевидно, истинно, то
утверждение
∃ y ( ( y ∈ Z )∧∀ x ( ( x ∈ Z ) → ( y < x ) ) )
ложно. Оно выражает утверждение естественного языка «Существует
наименьшее целое число». В самом деле, прочтем его. Внутри у нас
говорится, что «всякое целое число x больше y ». А какое y ? Пока
неопределено, но, переходя к началу формулы, мы видим, что y должно быть
предварительно выбрано. Но какое бы целое число y ни выбрали, внутреннее
утверждение будет ложно. Следовательно, такого y не существует.
И наконец, рассмотрим утверждение: «Для любого целого числа есть
большее и меньшее его целые числа». Это утверждение можно представить в
виде формулы:
∀ x ∃ y ∃ z ( ( x ∈ Z ) → ( y ∈ Z ) ∧( y > x )∧( z ∈ Z )∧( z < x ) ) ,
но лучше всего формализация:
∀ x ( ( x ∈ Z ) → ∃ y ( ( y ∈ Z )∧( y > x ) ) ∧∃ z ( ( z ∈ Z )∧( z< x )) ) ,
где каждый квантор относится лишь к тем утверждениям, которые он
связывает.
Исключительно важную роль в языке математики играет утверждение
единственности x , удовлетворяющего данному условию A (например, часто
приходится доказывать, что решение задачи единственно).
На самом деле обычно подразумевается не только то, что решение
задачи единственно, но и то, что она имеет решение, т. е. доказывается не
только единственность, а существование и единственность объекта,
удовлетворяющего свойству A .
Единственность «в чистом виде» выражается следующим образом:
∀ x ∀ y ( ( A ( x )∧A ( y ) ) → ( x= y ) ) .
Заметим, что утверждение « x , удовлетворяющее A , единственно»,
вообще говоря, не предполагает, что оно существует, что задача вообще
имеет решение.
Чисто формально, предыдущая формула истинна и в том случае, когда x ,
удовлетворяющих A , вообще нет. Поэтому эту формулу точнее читать «есть
не более одного x , удовлетворяющего A ( x )».
А утверждение «существует единственное x , такое, что A ( x )»
выражается в форме
∃ xA ( x)∧∀ x ∀ y ( ( A ( x )∧ A ( y ) ) → ( x= y ) ) .
Но это не самая выразительная запись утверждения о единственности.
Гораздо выразительнее
∃ x ∀ y ( A ( y ) → ( x= y ) ) .
Итак, то, что существует единственное x , удовлетворяющее A ( x ),
означает, что условие A ( x ) на самом деле сводится к равенству этому
единственному x.
В задачах, где идет речь о количестве каких-то объектов, следует
использовать предикат равенство.
Общий способ получить утверждение «существует не более n таких x ,
что A ( x )»:
∃ x 1 …∃ x n ∀ y ( A ( y ) ↔ ( ( x 1= y ) ∨ …∨ ( x n= y ) ) ) .

Но здесь мы не утверждаем, что этих различных x ровно n: если x и y


обозначены по-разному, то это отнюдь не означает, что они принимают
различные значения: они имеют право принимать разные значения, но имеют
право принять и одинаковые.
Итак, мы приходим к необходимости уметь формулировать различие.
Если x= y означает равенство, неразличимость, совпадение предметов, то
соответственно ¬ ( x= y ), обычно обозначаемое x ≠ y , — их различие. Итак,
сказать, что есть не менее двух различных решений задачи, очень просто:
∃ x ∃ y ( ( x ≠ y ) ∧ A ( x ) ∧ A ( y ) ).
Так же просто сказать и то, что их ровно два:
∃ x ∃ y ( ( x ≠ y )∧∀ z ( A ( z ) ∼ ( z=x ) ∨ ( z= y ) ) ) .
А вот как записывается, что решений не более двух:
∀ x ∀ y ∀ z ( ( ( x ≠ y ) ∧( x ≠ z ) ∧ ( y ≠ z ) ) → ¬ ( A ( x )∧ A ( y )∧ A ( z ) ) ) .
Подобным образом можно написать формулы и для большего числа
решений.

Вам также может понравиться