Практическое занятие №4 Тема: Язык логики предикатов. Вычисление предикатов. Операции cand и cor. Кванторы 1. Язык логики предикатов Пусть I, J – произвольные множества. Рассмотрим алфавит V = V1V2V3V4V5. V1 = {x, х1, х2..., у, у1 у2..., z, z1, z2...} - множество символов, называемых переменными; V2 = {рini | i I, ni Nat} - множество предикатных символов; V3 = {fjnj | j J, nj Nat} - множество функциональных символов; V4 = {OR, AND, NOT, , , } - множество логических символов; V5 = {, ; : …} – вспомогательные символы. рi(ni), fj(nj) – ni- или nj-местные символы. Нульместные символы называют константами. Символ - называется квантором всеобщности, а - квантором существования. = V2V3 – называется сигнатурой. Термами (функциональными выражениями) сигнатуры называются: 1. переменные или константы; 2. fn(τ1, τ2...τn), где τ1, τ2...τn - термы, а fn ; 3. никаких термов, кроме построенных в п. п. 1, 2, нет. 2. Вычисление предикатов Вычисление значения предиката в некотором смысле подобно вычислению значения высказывания. Все идентификаторы заменяются своими значениями в данном состоянии, вычисляются атомарные выражения и заменяются своими значениями (Т или F) и, наконец, вычисляется получившееся постоянное высказывание. 3. Операции cand и cor Любое высказывание имеет значение в любом состоянии, в котором все его идентификаторы имеют значения. Однако, существует возможность получить выражения, не имеющие значения в некоторых состояниях. Введем две операции cand и cor (условные AND, OR). Операндами этих операций могут быть три значения: T, F, U (неопределенность). Их таблицы истинности: b c b cand c b cor c b c b cand c b cor c b c b cand c b cor c T T T T F T F T U T U U T F F T F F F F U F U U T U U T F U F U U U U U Способ вычисления: b cand c: if b then с else F; b cor c: if b then T else c. 1. Операции cand и cor некоммутативны. 2. Ассоциативны: Е1 cand (Е2 cand Е3) = (Е1 cand Е2) cand Е3 Е1 cor (Е2 cor Е3) = Е1 cor (Е2 cor Е3) 3. Дистрибутивны: Е1 cand (Е2 cor Е3) = (Е1 cand Е2) cor (E1 cand Е3) Е1 cor (Е2 cand Е3) = (Е1 cor Е2) cand (E1 cor Е3) 4. Кванторы Квантор существования (i: m i < n: Ei). Квантор всеобщности (i: m i < n: Ei) = NOT (i: m i < n: NOT Ei) Множество значений, удовлетворяющих m i < n, называется областью значений квантифицированной переменной i. Вхождение идентификатора i в предикат называется связанным, если оно находится в области действия квантора i или i, и свободным в противном случае. В одном и том же выражении один и тот же идентификатор не может быть как связанным, так и свободным и идентификатор не может быть связан двумя различными кванторами. 1 Задания 1. Являются ли термами следующие слова: 2. Вывести для cand и cor законы: 3. Вычислить при x=7, y=2, b=T, m={1, 2, 3, 4}, n={2, 4, 6}, c[1;3]=(2, 4, 6); значение неопределенного выражения обозначьте через U. 4. Записать, что данный предикат P(x, y): 5. Переведите предложения на язык предикатов: 6. Если fool (p, t) означает: «Можно обманывать человека в течении времени t», то переведите предложения на язык исчисления предикатов: Вариант 1. 1. f1(g2(x, y)). 2. Моргана. 3. 1. mn. 2. m n AND b. 3. b OR x/(y-2) = 0. 4. b cand x/(y-2) = 0. 5. 1 < y < 3 cand c[y] m. 4. рефлексивен и симметричен. 5. 1. значения b[j:k] расположены в возрастающем порядке. 2. все нули b[0:n-1] находятся в b[j:k]. 3. если в b[0:n-1] находится нуль, то он есть и в b[j:k]. 6. можно обманывать некоторых людей некоторое время. Вариант 2. 1. g2(f1(x), h3(y, z, u)). 2. Исключенного третьего и противоречия. 3. 1. mn. 2. m. 3. b cor x/(y-2) = 0. 4. x = 0 AND x/(y-2) = 0. 5. 1 < y < 3 cor c[x] m. 4. транзитивен. 5. 1. если х находится в b[j:k], то х+1 находится в b[k+1:n-1]. 2. ни один элемент b[j:k] не нулевой. 3. либо b[1:j], либо b[j:k] (либо оба) содержат нуль. 6. можно обманывать всех людей некоторое время. Вариант 3. 1. f1(g2(x), h3(y, z, u)). 2. Упрощения. 3. 1. xm AND b. 2. {i | im AND in}. 3. b AND x/(y-2) = 0. 4. x = 0 cand x/(y-2) = 0. 5. 1 < x < 3 cor c[y] m. 4. является отношением эквивалентности. 5. 1. каждое значение b[j:k] находятся и в b[k+1:n-1]. 2. неверно, что все нули b[0:n-1] находятся в b[j:k]. 3. некоторые элементы b[j:k] нулевые. 6. нельзя обманывать всех людей все время. 2