Математическая логика: часть 1 - Учебное пособие (Пономарев В.Ф.)

 2. логика предикатов

          Если объект высказывания, т.е. о чем говорится в предложении, не определен, то это предложение называют высказывательной функцией. Аргументами высказывательной функции являются предметные переменные, которые обозначают строчными буквами латинского алфавита х, у, z¼ Эта функция приобретет значение "и" или "л" только при подстановке в высказывательную функцию вместо предметных переменных их конкретных значений. Конкретные значения аргументов высказывательной функции называют предметными постоянными, которые обозначают строчными буквами латвийского ал­фавита а, в, с, ¼ .

 Высказывательную функцию иначе называют предикатом (лат. praedicatum - логическое сказуемое).

Например,

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

Р1(x):= "x - простое число",

P2(6, y):="y меньше 6",

          P3(6, y, z):="z есть частное от деления числа 6 на y",

где z и y есть предметные переменные (целые числа), а 6 – предметная постоянная (целое число), то высказываниями будут

P1(3) = и,             P1(4) = л,

P2(6,2) = и,         P2(6,7) = л, 

P3(6,2,3) = и,      P3(6,2,5) = л,

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

P4(x):="х - студент", 

P5(x, КГТУ):="студент х университета КГТУ",

P6(x, y, прикладная информатика):= "студент x университета y, обучающийся по специальности "прикладная информатика””,          

где x и y есть предметные переменные, а КГТУ и “прикладная информатика” – предметные постоянные, то высказываниями будут

P4(Петров) = и,                                         P4(Сидоров) = л,

P5(Петров, КГТУ) = и,                           P5(Сидоров, КГТУ) = л,

P6(Петров, КГТУ, "прикладная информатика") = и,

P6(Сидоров, КГТУ, "прикладная информатика") = л.

При ограничении области определения предметных переменных вводят  операторы, которые называют кванторами.

Суждение, в котором утверждается или отрицается наличие каких-либо признаков или отношений у части предметных переменных области определения, называют частным суждением.  Как правило, эти суждения на естественном язы­ке отражают словами “один”, "несколько", "часть" и т.п. Для формализации таких суждений используют логическую операцию, ограничивающую область определения предиката. Этот оператор по­лучил название квантора существования, который обозна­чают так: “$x”. Предикат записывают после квантора существования  в круглых скобках $x(Рn(x)) На естественном языке эта запись означает: “существуют такие элементы х, что Рn(х) истинно (или ложно)".

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

$x, $y, $z,...(Pn(x, y, z, ...)).

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

Р(х1,x2 ,x3, ¼ xn) = Рn (х).

 

Например,

          $x(P1(x)):= "cуществуют целые числа, которые являются простыми". Это условие выделяет на множестве целых чисел подмножество X = {2, 3, 5, 7, 11, 13, 17,...}, для которого предикат P1(x) принимает значение “и”.

          $y(P22(6,y)):="существуют числа y, которые меньше 6". Это условие выделяет на множестве целых чисел подмножество

Y= {1, 2, 3, 4, 5}, для которого предикат P2(6,y) принимает значение “и”.

          $y(P33(6,2,z)):="существует число z, которое является частным от деления 6 на 2". Это условие выделяет на множестве целых чисел единственное число Z=3, для которого предикат P3(6,2,z) принимает значение “и”.

Если P7(x):="x имеет зачетную книжку", то

          $x(P4(x)&ùP7(x)):= "существуют студенты (x), которые не имеют зачетной книжки";

$x$y(P25(x,y)& ùP7(x)):="существуют студенты (x) некоторых университетов (y), которые не имеют зачетной книжки".

          Суждение, в котором утверждается или отрицается наличие каких-либо признаков или отношений для всех предметных переменных области определения, называют общими суждениями. Как правило, эти сужде­ния в естественном языке отмечают словами "все",  "каждый", "любой" и т.п. Для формализации этих суждений используют логическую операцию над всей областью определения предиката. Оператор этой логической операции получил название квантора всеобщности, который обозначают так: "x. Предикат    записывают    после    квантора всеобщности в круглых скобках

"x(Рn(x)) . На естественном языке эта формальная запись означает: “для всех х истинно (или ложно) значение Рn(х)".

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

"x, "y, "z,... (Pn(x, y, z, ...)).

Например,

"x(P4(x)&P7(x)):= "все (или каждый) студенты (x) имеют зачетную книжку";

"x(P5(x, КГТУ)&P7(x)):="все (или каждый) студенты (x) университета КГТУ имеют зачетную книжку";

"x"y(P5(x,y)&P7(x)):="все (или каждый) студенты (x) всех (или каждого) университетов (y) имеют зачетную книжку";

"x(P36(x, КГТУ, "прикладная информатика")&P7(x)):= "все (или каждый) студенты (x) университета КГТУ, обучающиеся по специальности "прикладная информатика", имеют зачетную книжку";                          

"x"z(P36(x, КГТУ, z)&P7(x)):= "все (или каждый) студенты (x) университета КГТУ, обучающиеся на всех специальностях (z), имеют зачетную книжку";

"x"y"z(P36(x,y,z)&P7(x)):= "все (или каждый) студенты (x) всех (или каждого) университетов (y), обучающиеся на всех (или каждой) специальностях (z), имеют зачетную книжку".

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

Например,

"x$y(P22(x, y)):= "для всех целых чисел x существует  меньшее число y".

"x"y$z(P33(x, y, z)):="для всех целых чисел x и y существует число z, которое является частным от деления x на y".

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

Например,

$y(P22(x,y)):="для всех целых чисел x существуют меньшие числа y". В этом примере x – свободная, а y –связанная переменные.

$x "z(P36(x,y,z)&ùP7(x)):=          “есть студенты университета, которые не имеют зачетной книжки”. В этом примере x и z –связанные, а y –свободная переменные.

$x "y (Р21 (x; y) ® "z (Р2(z)) все пред­метные переменные связаны.

"z (Р1(z)&$x(Р22(x; z))®(Р22(z; y)Ú(Р22(x; z)) предметные переменные x и z связанные, а y – свободная.

Р1 (z)&($x (Р22( x; z ))®$y (Р22(z; y))) предметные переменные x, y-связанные, а z – свободная.

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

Если высказывательная функция содержит один аргумент, то задан одноместный предикат, если она содержит n  аргументов, то -  n-местный предикат. Одноместный предикат, как правило, описывает наличие какого-либо признака у предмета, а предмета, а n-местный предикат наличие отношений между n предметами.

Пример: Если P1(х) – одноместный предикат “ быть простым числом", то для х=5 имеем высказывание “верно, что 5-простое число" или Р1(5)=и, а для x=4 имеем высказывание “неверно, что 4-простое число" или Р1(4)=л.

Пример: Если Р4(х) – одноместный предикат "быть студентом", то для х=”Петров” имеем высказывание “верно, что Петров - студент" или Р4(Петров)=и, а для x=”Сидоров” имеем высказывание “неверно, что Сидоров – студент” или P4(Сидоров)=л.

Пример: Если Р28(х; у) – двухместный предикат "студент x находится в аудито­рии y", то для х="Петров" и у="аудитория_382" имеем Р(Петров, аудитория_382) имеем высказывание "Студент Петров находится в ауди­тории 382", или Р28(Петров, аудитория 382)=и.

Пример: Если Р39(х; у; z) - предикат "z равен сумме чи­сел х и у", то для х=5 имеем высказывательную функцию “существуют такие z  и y, что z равен сумме 5 и y” или $y$zР39(5; у; z), для х=5 и у=2 имеем высказывательную функцию “существует такое z, которое равно сумме 5 и 2 или $zР39(5; 2; z), а для х=5, у=2 и z =7 имеем высказывание Р39(5; 2; 7).

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

Между элементами области определения может быть задана некоторая структура или установлены какие-то функциональные отношения. Тогда функциональный символ f указывает на  задание этого отношения между предметными переменными и/или предметными постоянными области определения, а для обозначения числа аргументов этого отношения ис­пользуют верхние индексы, т.е. fn(x1, x2,...xn).

Например, дату для Prolog-программы можно рассматривать как структуру, заданную на предметных переменных: число, месяц и год. В этом случае функциональным символом является слово “дата”,  а аргументами число, месяц и год, т.е.

“дата(число, месяц, год)”.

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

Треугольник на плоскости также можно рассматривать для Prolog-программы как структуру на предметных переменных, описывающих координаты вершин треугольника. Тогда функциональным символом является слово “треугольник”, а аргументами этой функции - вершина(координаты_x,y), вершина(координаты x,y), вершина(координаты_x,y), т.е.

“треугольник(вершина(координаты_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):=“окрашенная палуба есть результат покраски палубы х краской у”.