Файл: В. Ф. Пономарев математическая логика.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 293

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


“треугольник(вершина(координаты_x,y),вершина(координаты_x,y),вершина(координаты x,y))”.

Для предметных постоянных эта структура формирует выражение, при подстановке которого в предикат определяет истинность или ложность высказывания.

Арифметическое выражение (x+y) может быть записано в Prolog-программе так: +(x, y). В этом случае предикат задает логическую операцию сравнения предметной постоянной и зна­чения функции +(x, y).

Пример: если х, у, z – натуральные числа и f2+(х;у):="сложить числа х и у", то предикат Р39(х; у; z) может быть представлен так Р29(z, f21(х;у)):=”z равно сумме чисел x и y”.

Пример: Если х - палуба, у - краска, z - окрашенная палуба,

f22 (x;y)= красить(x, y), то Р210(f22(х; у); z):=“окрашенная палуба есть результат покраски палубы х краской у”.

2.1 Алгебра предикатов

Множество предметных переменных Т1= {x, y, z,..} и постоянных Т2={a, b, c,..}, функциональных символов Т3={f i1 ; f j2 ; f k3 ;..} и предикатных Т4=(P i1 ; P j2 ; P k3 ;..} с заданными над T={T1; T2; T3; T4} логическими операциями F={; ; ; ; ; ; } формируют алгебру предикатов, т.е.


Aп=F;>.
Любую предметную переменную и предметную постоянную называют терм и обозначают символом ti.

Если f ni есть n - местный функциональный символ и t1, t2, tn - термы, то f ni ( t1; t2; tn ) также есть терм, где n –число аргументов функции, i – числовой индекс функции.

Никаких иных термов нет.

Если P ni – n-местный предикатный символ и t1; t2; tn - термы, то F= Pni (t1; t2; tn ) - элементарная формулаили атом. Предметные переменные, входящие в термы атома, являются свободными.

Если F1 и F2 формулы, то

(F1 ); (F1 F2); (F1F2); (F1F2 );(F1F2 ) также формулы.

В этих формулах предметные переменные также являются свободными.

Если F формула, a x - предметная переменная, входящая в атомы формулы F, то x(F)и x(F) также формулы. В этих формулах предметная переменная x среди множества термов формулы F является связанной.

Никаких иных формул нет.

Для формирования сложных формул используют вспомогательные символы “(“ и “)”.
2.1.1 Логические операции

Простейшими логическими опера­циями над предикатами также, как в исчислении высказываний, являются отрицание, конъюнкция, дизъюнкция, импликация и эквиваленция.

Отрицание (F(t1; t2; tn)) есть одноместная операция, посредством которой из данной формулы F(t1; t2; tn) полу­чают ее отрицание.

Пример: Если Р2 (х; a):= "х находится на a" и a=”стол”, то формулы:

а) x( Р2 (х; a)):= "для всех х верно, что х не находится на a “;

б)  x( Р2 (х; a)):= "не для каждого х верно, что х находит­ся на a”;

в)  x( Р2 (х; a)):= “не существует х, для которого верно, что х находится на a”.

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

Конъюнкция (F1(t11; t12; ..t1n)F2(t21; t22;..t2n)) есть двуместная операция, посредством которой из двух формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) с числом предметных переменных и постоянных, равным их объединению у исходных формул. Значение формулы истинно тогда и только тогда, когда истинны обе форму­лы F1 и F2.

Пример: Если P1(х):=“выдающийся музыкантом” и

P2(х):= "талантливый писатель”, то формулы:

а) x(P1(х))x(P2(х)):= ”существуют выдающиеся музыканты и существуют талант­ливые писатели";

б) x(P1(х)P2(х)):= ”существуют лица, являю­щиеся талантливыми писателями и выдающимися музыкантами”.

Пример: Если х - предметная переменная для индивида,

  1. предметная постоянная для индивида (например, Саша) и

P 21 (х; a):=”х дру­жит с a”, P22. (х; a):=“х встретил a ”, то фор­мулы :

а) x(P21.(х; a)P22.(х; a)):= “Саша встретил друга”;

б) x( P21.(х; a)P22.(х; a)):=“Саша встретил недруга”;

в) x(P21.(х; a)P22.(х; a)):= “не каждый встречный есть друг Саши”;

r) x(P21.(х; a)(P22.(х; a))):= “существуют друзья, с которыми Саша не встречается”.

Дизъюнкция(F1(t11; t12; ..t1n)F2(t21; t22; ..t2n)) есть двуместная опе­рация, посредством которой из двух формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) с числом предметных переменных и постоянных, равным их объединению у исходных формул. Значение формулы истинно тогда и только тогда, когда истинна хотя 6ы одна из формул F1 или F2.

Пример: Если х, у предметные переменные для городов России, P21.(х; y):= “переезд из х в у поездом”; P22.(х;y):= “переезд из х в у самолетом”; P23.(х; y):= “переезд из х в у автобусом”, то формулы:

a) xy(P21.(х; y)P22.(х; y)P23.(х; y)):= “для всех городов России возможен переезд поездом, автобусом или самолетом”;

б) xy(P21. (х; y) P22. (х; y) P23. (х; y)) - "не для всех городов x существуют города y, между которыми невозможен переезд автобусом или самолетом, но возможен поездом”.

Импликация (F1(t11; t12;..t1n)F2(t21; t22;..t2n)) есть двухместная операция, посредством которой из двух формул F1и F2 получают новую формулу F(t11; t12;..t1n; t21; t22;..t2n ) с числом предметных переменных и постоянных, равным их объедине­нию у исходных формул. Значение формулы ложнотогда и только тогда, когда F1 истинно, а F2 - ложно.

Пример: Если х - предметные переменные для индивида, P1(x):= "быть судьей", P2(x):= "быть юристом", то допустимы формулы:

a) x(P1(x)P2(x)):= "все судьи - юристы";

б) x(P2(x)P1(x)):= "неверно, что все юристы - судьи",

Пример: Если х - предметная переменная для животного и P1(x):= "хищное животное", а P2(x):= "кошка", то допустима формула:

x(P2(x) P1(x))"все кошки - хищные животные".

Пример: Если х-предметная переменная для индивида и P1(x):="x принадлежит к большинству", а P2(x):= "x стремится к миру", то допустима формула:

x(P1(x)P2(x))x(P1(x)P2(x)):= “большинстволюдей стремится к миру".

Пример: Если х,y - предметная переменная для индивида и P1(x):= "быть юношей", P2(x):="быть девушкой", P23.(х; y):="х любит у", P24.(х; y):="х женат на у",

то допустимы формулы:

  1. x(P1(x)y(P2(x)P23. (х; y)):= “каждый юноша любит хотя бы одну девушку";

б) xy(P1(x)P2(y)P23.(х; y)P24.(х; y)):=“юноши и девушки, которые любили друг друга, сформировали семьи".

Эквиваленция (F1(t11;t12;..t1n)F2(t21; t22;..t2n)) есть двумест­ная операция, посредством которой из двух формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) c числом предметных переменных и постоянных, равным их объединению у исходных формул. Значение формулы истинно тогда и только тогда, когда обе формулы F1 и F2 имеют одно и то же значение истины или лжи.

Пример: Если х-предметная переменная для животных и P1(x):= "быть тюленем", P2(x):= "быть ластоногим живатным", то допустима формула:

x(P1(x) P2(x)):= "все тюлени-ластоногие животные".

Пример: Если х - предметная переменная, Р(х) - предикат, то допустима формула x(P(x))x(P(x)):= "суще­ствует переменная х, для которой Р(х) истинно, эквивалентноне для всех х Р(х) ложно".
2.1.2 Правила записи сложных формул

Рассмотренные логические операции позволяют формализовать с помощью термов, предикатов и кванторов внутреннюю структу­ру предложения и формировать сложные суждения.

Пример: Суждение “Некоторые действительные числа являются рациональными”.

В этом суждении есть два предиката P1(x):=”быть действительным числом” и P2(x):=”быть рациональным числом”. Формула сложного суждения должна быть записана так:

F=x(P1(x)P2(x)).

Ошибочной является формула F=x(P1(x)P2(x)):=”некоторые числа, если они являются действительными, то они рациональные, т.к. замена безкванторной части на эквивалентную дает F=x(P1(x)P2(x)):=”некоторые числа не являются действительными или являются рациональными”.

Пример: Суждение “Все рациональные числа действительные”.

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

F=x(P1(x)P2(x)).

Ошибочной является формула F=x(P1(x)P2(x)):=”все числа являются и действительными и рациональными”.

Пример: Суждение “Ни один человек не является четвероногим. Все женщины – люди. Следовательно, не одна женщина не является четвероногой”[15].

В этом суждении три одноместных предиката P1(x):”быть индивидом”, P2(x):=”быть женщиной” и P3(x):=”быть четвероногим”.

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

x(P1(x) P3(x)); x(P2(x)P1(x))

x(P2(x) P3(x)).
Пример: Суждение “Некоторые республиканцы любят всех демократов. Ни один республиканец не любит ни одного социалиста. Следовательно, ни один один демократ не является социалистом”[13].

В этом суждении три одноместных предиката P1(x):=”быть республиканцем”, P2(x):=”быть демократом”, P3(x):=”быть социалистом” и один двухместный предикат P24(x; y):=”x любит y”.

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

x (P1(x)y(P2(y)P24(x; y))); x(P1(x)y(P3(y)P24(x; y)))

x(P2(x)P3(x)).
Пример: Суждение “Ни один торговец наркотиками не является наркоманом. Некоторые наркоманы привлекались к ответственности. Следовательно, некоторые люди, привлекавшиеся к ответственности, не являются торговцами наркотиков”.

В этом суждении три одноместных предиката P1(x):=”быть торговцем наркотиков”, P2(x):=”быть наркоманом”, P3(x):=”привлекаться к ответственности ”.

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

x(P1(x)P2(x)); x(P2(x) P3(y))

x(P3(x)P1(x)).

Пример: Суждение “Саша – мальчик, у которого нет машины. Таня –девочка, которая любит мальчиков, имеющих машины. Следовательно, Таня не любит Сашу”.

В этом суждении два одноместных предиката

P1(x):=”быть мальчиком”, P2(x):=”быть девочкой”, и два двухместных P3(x; y):=”x любит y”, P4(x; y):=”x имеет y” три высказывания P1(a):=”Саша – мальчик”, P2(b):=”Таня - девочка” и P4(a; c):=”Саша не имеет машины (с)”.

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

P1(a); P2(b); P4(a; c); x(P2(x)y(P1(y) P4(y; c) P3(x; y))

P2(b)P3(b; a)).

Приведенные примеры позволяют сформулировать некоторые правила записи сложных суждений.

1) каждое вхождение логической связки “ относится к формуле, следующей непосредственно за логической связкой справа;

2) каждое вхождение логической связки “ после расстановки скобок связывает формулы, непосредственно окружающие логическую связку;

3) каждое вхождение логической связки “” после расстановки скобок связывает формулы, непосредственно окружающие эту связку.

4)Логические связки по силе и значимости могут быть упорядочены так:

; ; ; ; .

5) за квантором общности чаще всего следует логическая связка импликации, а за квантором существования - конъюнкции;

6) если формула содержит подформулу, то внутренняя формула не должна содержать кванторов, связывающих ту же переменную, что и квантор формулы;

7) значения всех предметных переменных и постоянных должны принадлежать одной области определения предиката или функции;

  1. если в одной формуле есть кванторы общности и существования, то при формализации суждений следует стремиться поставить квантор существования слева всей формулы.


2.1.3 Законы алгебры предикатов

Формулы называют равносильными, если при любых подстановках предметных постоянных они принимают одинаковое значение. Если две формулы F1 и F2 равносильны, т.е F1=F2, то они эквивалентны.

Если формула алгебры предикатов F имеет вхождением подфор­мулу Fi , т.е. F( t1; t2;; Fi;  ), для которой существует экви -валентная ей подформула Fj т.е. Fi = Fj, то возможна подстановка всюду в формулу F вместо формулы Fi подформулу Fj без нарушения истинности формулы, т.е.

F( t1; t2;; Fi;  )= F( t1; t2;; Fj;  ).

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

Основные законы эквивалентных преобразований алгебры предикатов представлены в таблице.



Наименование закона и правила

Равносильные формулы

Fi=Fj


коммутативности



xy(F2(x; y))=yx(F2(x; y))*);

xy(F2(x; y))=yx(F2(x; y))*).

*) только для одноименным кванторов.


дистрибутивности

x(F1(x))x(F2(x))=x(F1(x)F2(x))*);

x(F1(x))x(F2(x))=x(F1(x)F2(x))**);

*)для логической связки “” формул только с кванторами  по одной переменной x.

**)для логической связки “” формул только с кванторами  по одной переменной x.

идемпотентности

{;}

x(F(x)) x(F(x))= x(F(x));

x(F(x))x(F(x))= x(F(x))

исключенного третьего

x(F(x))x(F(x))=и, где {;}

противоречия

x(F(x))x(F(x))=л, где {;}

де Моргана

x(F(x))=x(F(x)); x(F(x))=x(F(x))

дополнения

 (x(F(x)))= x(F(x)), где {;}

свойства констант

x(F(x)) и=и; x(F(x))л=x(F(x));

x(F(x))л=л; x(F(x))и=x(F(x)),

где {;}.



Пример: F=x1x2(P11)x3 (P22. (х1; x3)P23(x2;x3))).

Упростить формулу.

  1. выполнить операцию отрицания формулы:

F=x1x2(P11)x3 (P22. (х1; x3)P23(x2;x3)));

  1. выполнить операцию отрицания формулы:

F=x1x2(P11)x3 (P22. (х1; x3)P23(x2;x3)));

3) удалить логическую связку “”:

F=x1x2(P11)x3 (P22. (х1; x3)P23(x2;x3)));

4) выполнить операцию отрицания формулы:

F=x1x2(P11) x3 (P22. (х1; x3)P23(x2;x3)));

5) выполнить операцию отрицания формулы:

F=x1x2(P11) x3(P22. (х1; x3)P23(x2;x3)));

6) выполнить операцию отрицания формулы:

F=x1x2(P11) x3 (P22. (х1; x3)P23(x2;x3)));

  1. перенести квантор x3 влево:

F=x1x2x3 (P11) P22. (х1; x3)P23(x2;x3)).
Пример: F=x(P1(х)P2(х))(x(P1(х)) x(P2(х))).

Упростить формулу.

  1. удалить логическую связку “”:

F=(x(P1(х)P2(х)))(x(P1(х)) x(P2(х)));

  1. выполнить операцию отрицания формулы:

F=x((P1(х)P2(х)))) x(P1(х))x(P2(х)));

  1. выполнить операцию отрицания формулы:

F=x(P1(х)P2(х))x(P1(х))x(P2(х)));

4) применить закон дистрибутивности по квантору x:

F=x(P1(х)P2(х)P2(х))x(P1(х));

5)применить закон дистрибутивности к формуле:

F=x((P1(х)P2(х))(P2(х)P2(х)))x(P1(х));

6) применить закон исключенного третьего и свойство констант для логической связки “”:

F=x((P1(х)P2(х)))x(P1(х));

7) применить закон де Моргана:

F=x((P1(х)P2(х)))x(P1(х));

8) применить закон дистрибутивности по квантору x:

F=x(P1(х))x(P2(х))x(P1(х));

9) применить закон исключенного третьего:

F=x(P2(х))и;

  1. применить свойство констант для логической связки “”:

F=и,

т.е. формула F=x(P1(х)P2(х))(x(P1(х))x(P2(х))) является тождественно истиной.
2.1.4 Предваренная нормальная форма

Для облегчения анализа сложных суждений формулы алгебры предикатов рекомендуется приводить к нормальной форме. Если в алгебре высказываний приняты две нормальные формы (ДНФ - дизъюнктивная и КНФ -конъюнктивная), то в алгебре предикатов - одна
1   ...   6   7   8   9   10   11   12   13   14

предваренная нормальная форма (ПНФ), суть которой сводится к разделению формулы на две части: кванторную и безкванторную. Для этого все кванторы формулы выносят влево, используя законы и правила алгебры предикатов.

В результате этих алгебраических преобразова­ний может быть получена формула вида: x1x2 xn(M), где {; } , а М – матрица формулы. Кванторную часть формулы x1x2 xnиногда называют префиксом ПНФ.

В последующем матрицу форму­лы преобразуют к виду КНФ, что облегчает механизм по принципу резолюции.

Пример:

F=xy((P21.(х; y)P2.(х))P3(y)) формула, приведенная к ПНФ; F=x(P21.(х; y)x(P2 (х))y(P3 (y)) формула, неприведенная к ПНФ.

x(P1.(х)) x(P2(x))=x(P1.(х) P2(x)) слева от знака равенства формула, неприведенная к ПНФ, а справа, равносильная ей формула, но приведенная к ПНФ.
2.1.4.1 Алгоритм приведения формулы к виду ПНФ

Шаг 1. Исключить всюду логические связки  и  по правилам:

(F1F2)=(F1F2) (F2F1)=(F1F2)(F2F1);

(F1F2)=( F1F2);

Шаг 2. Продвинуть отрицание до элементарной формулы по правилам:

x(F)=x(F); (F1F2)=(F1F2);

x(F)=x(F);. (F1F2)=(F1F2);

Шаг 3. Переименовать связанные переменные по правилу:

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

Шаг 4. Вынести кванторы влево по законам алгебры логики.

Шаг 5. Преобразовать бескванторную матрицу к виду КНФ. Алгоритм приведения матрицы формулы к виду КНФ приведен в алгебре высказываний.
Пример : F=(x(P1 (х)y(P2 (y)P3 (z))))(y(P2
4 (x; y)P5.(z))).

Привести формулу к виду ПНФ.

l) удалить логические связки “”:

F=(x(P1 (х)y( P2 (y)P3 (z))))(y( P24 (x; y)P5.(z)));

2) применить закон де Моргана  x( F(x))=x(  F(x)):

F=(x(P1.(х)y( P2 (y)P3 (z))))(y(( P24 (x; y)P5.(z)));

3) применить закон де Моргана (F1F2)=(F1F2):

F=x(P1.(х)y( P2 (y)P3 (z)))(y(P24 (x; y)(P5.(z))));

4) переименовать связанную переменную x=w:

F=w(P1 (w)y( P2 (y)P3 (z)))(y(P24 (x; y)( P5.(z))));

5) переименовать связанную переменную y=v:

F=w(P1 (w)v(P2 (v)P3 (z)))(y(P24 (x; y)(P5.(z))));

6) вынести квантор v влево:

F=wv(P1 (w)P2 (v)P3 (z))(y(P24 (x; y)(P5.(z))));

7) вынести квантор y влево:

F=wvy(P1 (w)P2 (v)P3 (z))P24 (x; y)P5.(z).

Матрица ПНФ содержит три элементарных дизъюнкта:

K={(P1 (w)P2 (v)P3 (z)); P4 (x; y); P5.(z)}.
Пример: F = x(P1 (х)x(P2 (x)))y(P3.(y)).

Привести формулу к виду ПНФ.

1) удалить логические связки “”:

F=x((P1 (х)x(P2 (x)))(x(P2 (х))P1 (x)))y(P3.(y));

2) удалить логические связки “”:

F=(x((P1.(х)x(P2 (x)))(x(P2.(х))P1 (x)))y(P3.(y));

3) применить закон x(F(x))=x(F(x)):

F=x(((P1.(х)x(P2 (x)))(x(P2 (х))P1 (x))))y(P3.(y));

4) применить закон де Моргана (F1F2)=(F1F2):

F=x(((P1 (х)x(P2 (x)))((x(P2.(х))P1 (x))))y(P3.(y));

5) применить закон де Моргана (F1
F2)=(F1F2):

F=x((P1 (х)(x(P2 (x))))(x(P2 (х))(P1 (x))))y(P3.(y));

6) применить закон x(F(x))= x (F(x)):

F=x((P1 (х)x(P2.(x)))(x(P2 (х))(P1 (x))))y(P3.(y));

7) переименовать связанную переменную x=z:

F=z((P1.(z)x( P2 (x)))(x(P2.(х))(P1.(z))))y(P3.(y));

8) переименовать связанную переменную x=w:

F=z(P1 (z)w(P2 (w))x(P2 (х)P1 (z)))y(P3.(y));

9) вынести квантор w, x и y влево:

F=zwxy(P1 (z)P2 (w)P2 (х)P1 (z)P3.(y));

10) преобразовать матрицу к виду КНФ:

F=zwxy((P1 (z)P2 (х)P3.(y))(P2 (w)P2 (х)P3.(y)) (P2 (w)P1 (z)P3.(y))).

Матрица ПНФ содержит три элементарных дизъюнкта:

K={(P1 (z)P2 (х)P3.(y)); (P2 (w)P2 (х)P3.(y)); (P2 (w)P1 (z)P3.(y))}.
Пример: F=xy(P21 (х; y))(xy(P22(x; y))).

Привести формулу к виду ПНФ.

  1. применить закон x(F(x))=x(F(x)):

F=xy(P21(х; y))(x(y(P22(x; y))));

  1. применить закон x(F(x))= x(F(x)):

F=xy(P21(х; y))(xy((P22(x; y))));

  1. вынести квантор x по закону дистрибутивности:

F=x(y(P21(х; y))y((P22(x; y))));

4) переименовать связанную переменную y=v:

F=x(z(P21(х; z))y((P22(x; y))));

5) вынести кванторs z и y влево:

xzy(P21(х; z)P22(x; y)).

Матрица ПНФ содержит два элементарных дизъюнкта:

K={P21(х; z); P22(x; y)}.
Пример: M=P1(z)P2(w)P2(х)P1.(z)P3.(y);

  1. по закону дистрибутивности:

M=P1.(z)P2 (w)(P2 (х)P3