Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_gosam (1).doc
Скачиваний:
19
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать

Метод резолюций для логики высказываний

    Метод резолюций можно применять к любому множеству дизъюнктов с целью проверки их невыполнимости (противоречивости). Рассмотрим сначала метод резолюций для логики высказываний.

    Литеры A и ~A называются контрарными, а множество {A, ~A} – контрарной парой.

    Допустим, что в дизъюнкте C1 существует литера L1 , контрарная литере L2 в дизъюнкте C2. Вычеркнем литеры L1 и L2 из дизъюнктов C1 и C2 соответственно и построим дизъюнкцию оставшихся дизъюнктов. Построенный дизъюнкт называется резольвентой дизъюнктов C1 и C2. Резольвента двух дизъюнктов является их логическим следствием. Резольвента двух единичных дизъюнктов (если она существует) – пустой дизъюнкт.

    Резолютивный вывод C из множества дизъюнктов S есть такая конечная последовательность C1, C2, ..., Ck дизъюнктов, в которой каждый Ci (i=1, ..., k) или принадлежит S, или является резольвентой дизъюнктов, предшествующих Ci и Ck=C.

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

    Вывод из множества S пустого дизъюнкта называется опровержением (доказательством невыполнимости) S.

7. Основные понятия логики предикатов первого порядка, кванторы, предваренные нормальные формы, избавление от кванторов.

Большинство предметных областей могут быть описаны с помощью логики предикатов первого порядка. В этом случае решение задачи означает запись ее с помощью формул логики предикатов первого порядка, а затем доказательство общезначимости или противоречивости полученной формулы.

    Для представления объектов предметной области в логике предикатов первого порядка используют атомы, константы, переменные, термы, предикаты, кванторы. Определим эти понятия.

    Атом - это повествовательное предложение, которое может быть истинно или ложно, но не то и другое одновременно. Атом рассматривают, как единое целое, его структуру и состав не анализируют. Например, "Иванов работает на заводе", "Петров является студентом" и т.п.

    Константа - это символ, обозначающее индивидуальный объект или понятие.

    Переменная - это символ, используемый в разное время для обозначения различных объектов. Для определения области действия переменных используются кванторы.

    Термы рекурсивно определяются следующим образом:

  1. константа есть терм;

  2. переменная есть терм;

  3. если f есть n-местный функциональный символ и t1, t2, ..., tn - термы, то составной терм f(t1, t2,…, tn) - тоже терм;

  4. никаких других термов, кроме составленных с помощью правил (1) - (3), нет.

    Поясним третье правило. Составной терм f(t1, t2,..., tn) состоит из функционального символа и упорядоченного множества термов, являющихся его аргументами. Составной терм обозначает некоторый объект, зависящих от других объектов, представленных его аргументами.

    Например, высказывание "сын Ивана" можно представить с помощью составного терма "сын(Иван,x)". Здесь слово "сын" является функциональным символом, слово "Иван" - константой, а переменная x используется для обозначения сыновей Ивана. Причем константа может рассматриваться как функциональный символ без аргументов.

    Предикатный символ P (предикатная буква) используется для представления отношений между объектами в некоторой области. Если предикатный символ P имеет n аргументов, то P называется n-местным предикатным символом.

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

    Предикат состоит из предикатного символа и соответствующего ему упорядоченного множества термов, являющихся его аргументами. Если P есть n-местный предикатный символ и t1, t2, ..., tn - термы, то P(t1, t2,…, tn) - предикат. Таким образом, предикатные символы синтаксически используются для образования формул, а семантически обозначают предикаты.

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

Определение.

Если P есть n-местный предикатный символ языка (n0) и t1, t2,…, tn - термы, то P(t1, t2, ..., tn) есть атомарная (элементарная) формула языка.

    Запись P(t1, t2, ..., tn) означает, что истинно высказывание, гласящее, что объекты t1, t2, ..., tn связаны отношением P.

    Поясним сказанное на конкретных примерах. Высказывание "x является отцом y" можно представить с помощью предиката отец(x,y), где отец - предикатный символ; x, y - переменные.

    Высказывание "Сын Ивана является братом Степана" можно представить с помощью предиката брат(сын(Иван,x),Степан), где брат - предикатный символ, сын - функциональный символ, Иван и Степан - константы, выражение сын(Иван,x) - терм.

    Для построения атомов используются предикатные и функциональные символы, переменные и константы. Из атомарных формул с помощью логических связок  (конъюнкции),  (дизъюнкции), ~ (отрицания),  (импликации),  (эквиваленции) и кванторов можно строить сложные формулы языка.

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

    Квантор - это общее название для логических операций, которые по предикату P(x) строят высказывание, характеризующее область истинности предиката P(x). В логике предикатов первого порядка применяются квантор всеобщности  и квантор существования .

    Кванторы всеобщности  и существования  используются для определения области действия переменных. Так, если x - переменная, то запись  x читается "для любого x ", "для каждого x " и т.п., а запись  x - "существует x ", "хотя бы для одного x " и т.п.

    Кванторы позволяют строить высказывания о множествах объектов и формулировать утверждения, истинные для этих множеств. Например, высказывание  xP(x) означает, что область истинности предиката P(x) совпадает с областью значений переменной x , а  xP(x) - что область истинности предиката P(x) не пуста.

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

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

    Например, вхождение переменной x в формулу F будет связанным, если x входит в часть формулы F вида  x F или x F; остальные вхождения x в формулу F будут свободными.

    Формула, содержащая свободные вхождения переменных, зависит от них (является их функцией); связанные же вхождения переменных можно переименовывать, например, заменив переменные, попадающие под квантор существования, константами.

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

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

    Примеры.

  1. В формуле (x)A(x,y,z) переменная x является связанной, а переменные y и z - свободными.

  2. В формуле ( x)B(x,y) переменная x будет связанной, а переменная y - свободной.

  3. В формуле ( x)A(x,y,z)  ( y)B(y) переменная x является связанной, переменная y - и свободной (до попадания в поле действия квантора), и связанной (после попадания в поле действия квантора), а переменная z - свободной.

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

  1. атом есть формула;

  2. если A и B - формулы, то ~A, AB, AB, A B, AB - тоже формулы;

  3. если A(x) - есть формула, а x - свободная переменная в A(x) , то (x)A(x) и (x)A(x) - тоже формулы;

  4. других формул, кроме составленных с помощью правил (1) - (3), нет.

    Язык изучают с помощью языка исследователя - метаязыка. В нем могут использоваться различные знаки, не входящие в алфавит изучаемого языка - метасимволы. Мы будем использовать различные метасимволы, в том числе A, B, C, ..., E, A1, A2, A3, ... (большие буквы латинского алфавита с индексами или без них) - для обозначения произвольных формул, x,y,z - для обозначения произвольных предметных переменных, t, t0, t1,. .. - произвольных термов и так далее.

    Для упрощения записи формул в метаязыке используют те или иные соглашения. Будем считать, что можно опустить все те скобки, которые будут восстановлены при выполнении следующей процедуры: запись просматриваем слева направо и вокруг каждого очередного вхождения знака  расставляем пару скобок так, чтобы подслово, в котором эти скобки служат началом и концом соответственно, являлось формулой, причем возможно более длинной; затем ту же операцию повторяем для связок ,  (именно в этом порядке!).

    Под интерпретацией формул в логике высказываний понимают операцию приписывания входящим в формулу атомам значений И ("истина") и Л ("ложь").

    Интерпретация формулы в логике предикатов первого порядка - это задание области значений переменных и присвоение значений всех констант, функциональных и предикатных символов, встречающихся в этой формуле, в соответствии со следующими правилами:

  1. каждой константе ставится в соответствие некоторый элемент из области значений переменных D;

  2. каждому n-местному функциональному символу ставится в соответствие отображение элемента из Dn в D, где Dn ={(x1, x2, ..., xn) | x1 D, ..., xnD};

  3. каждому n-местному предикатному символу ставится в соответствие отображение элемента из Dn в {И,Л}.

    Когда мы определяем истинностное значение формулы на области D, то x и x интерпретируются как "для всех элементов x из Dn" и "существует элемент x из Dn" соответственно.

    Формула, интерпретируемая на области D, принимает значение И или Л согласно следующим правилам:

  1. если заданы значения формул A и B, то истинностные значения формул ~A, AB, AB, AB, AB получают по таблице истинности, которая справедлива так же и для логики предикатов первого порядка;

  2. формула (x)A(x) получает значение "истина", если A(x) - "истина" для каждого x из D; в противном случае ((x)A(x)) получает значение Л;

  3. формула (x)A(x) получает значение И, если A(x) - И хотя бы для одного x из D; в противном случае ((x)A(x)) получает значение Л.

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

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

    В логике предикатов первого порядка формула является:

  • общезначимой тогда и только тогда, когда не существует никакой интерпретации, при которой формула принимает значение "ложь";

  • противоречивой тогда и только тогда, когда не существует никакой интерпретации, при которой формула принимает значение "истина";

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

    Формула A есть логическое следствие формул B1, B2, ..., Bn тогда и только тогда, когда для любой интерпретации, если B1B2... Bn истинна при этой интерпретации, то A так же истинна.

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

    (Q1x1)( Q2x2) … (Qnxn)M, где Qi - квантор всеобщности  или квантор существования , то есть (Qixi) обозначает (xi) или (xi), i=1, 2, ..., n;

    (Q1x1)( Q2x2) ... (Qnxn) - префикс формулы; M - матрица.

    Например, следующие формулы находятся в предваренной нормальной форме:

    (x)(y)(A(x,y) B(y));

    (x)(y)(z)(A(x,y)B(y,z)C(z)).

    Для записи формул в предваренной нормальной форме можно использовать приведенные ниже эквивалентные формулы, в которых кванторы всеобщности  и существования  обозначены буквой Q:

    (Qx)A(x)B=(Qx)(A(x)B);

    (Qx)A(x)B=(Qx)(A(x)B);

    ~((x)A(x))=(x)(~A(x));

    ~((x)A(x))=(x)(~A(x));

    (x)A(x)(x)B(x)= (x)(A(x)B(x));

    (x)A(x) (x)B(x)= (x)(A(x)B(x));

    (Q1x)A(x)(Q2x)B(x)= (Q1x)(Q2y)(A(x)B(y));

   (Q3x)A(x)(Q4x)B(x) =(Q3x)(Q4y)(A(x)B(y)).

    Здесь A(x) - форма, содержащая наряду с другими переменными и свободную переменную x; B - формула, содержащая любые переменные, кроме x.

В логике предикатов первого порядка процесс приведения формул к стандартной форме записи включает в себя семь этапов.

  1. Исключение символов импликации, то есть следствия "если ..., то ...", с помощью формулы эквивалентности AB ~AB. Например, (x) (A(x)В(x))(x) (~А(х)B(x)).

   

  1. Перенос символа отрицания внутрь формулы (только для формул, не являющихся атомарными). При этом область действия символа отрицания сужается. Каждый символ отрицания "~" может быть применен только к одной атомарной формуле. Например, ~(A B) (~A~B).

   

  1. Разделение переменных. Переменная, связанная некоторым квантором, в пределах области действия этого квантора может быть заменена любой другой переменной, не встречающейся ранее в этой формуле. Значение истинности формулы при этом не меняется. В итоге каждому квантору будет соответствовать свойственная только ему переменная.

    Например, формула (x)(A(x)) (x)B(x) в результате разделения переменных, то есть замены переменной x после попадания ее под действие квантора существования на переменную y, преобразуется к виду (x)(A(x)) (y)B(y).

   

  1. Исключение кванторов существования из формулы. Переменная, связанная квантором существования, может быть заменена функцией, называемой сколемовской, а в частном случае константой (то есть сколемовской функцией без аргументов).

    Например, формула (x)A(x) может быть заменена формулой A(b) при x=b, где b - константа.

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

    Например, если в формуле:     (x)(Человек(x) - (y) Мать(x,y)), обозначающей, что каждый человек имеет мать, удалить квантор существования y и поставить y=Мария, то получим, что все люди имеют одну и ту же мать по имени Мария, а это неверно. Здесь при удалении квантора существования  надо вводить не константу, а составной терм, то есть функциональный символ f(x), который каждому конкретному человеку ставит в соответствие его мать:     (x)(Человек(x) Мать(x,f(x))).

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

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

    Так, после удаления кванторов всеобщности рассмотренная выше формула будет иметь следующий вид:     Человек(x)Мать(x,f (x)).

  1. Приведение формулы к конъюнктивной нормальной форме. Формулу записывают в виде последовательности соединенных между собой символами конъюнкции элементов, каждый из которых является литерой или состоит из нескольких литер, соединенных между собой символами дизъюнкции. Например, формулы A(x)B(x) и (A(x) B(x)C(x)(D(x)E(x)F(x) приведены к конъюнктивной нормальной форме.

  2. Исключение символов конъюнкции. Так как формула является конъюнкцией составляющих ее частей, то знак конъюнкции указывать необязательно. Для сокращения записи его опускают, но при этом подразумевают.

    Следовательно, каждая формула исчисления предикатов эквивалентна совокупности дизъюнктов, состоящих из литералов и соединенных символами дизъюнкции. Слово "совокупность" подчеркивает, что порядок дизъюнктов не имеет значения. Например, формулу:     A(x)B(x)C(x) можно представить в виде совокупности дизъюнктов (знак дизъюнкции опущен):     {A(x), B(x), C(x)}.

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

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

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

    При рассмотрении логики высказываний было показано, что формула A является логическим следствием формул B1, B2, ..., Bn тогда и только тогда, когда формула B1B2… Bn ~A противоречива, то есть доказательство того, что отдельная формула есть логическое следствие конечного множества формул, эквивалентно доказательству того, что некоторая связанная с ними формула общезначима или противоречива.

    Так же и в логике предикатов, если множество формул {B1, B2,…, Bn} непротиворечиво, то формула А является следствием формул {B1, B2, ..., Bn} тогда и только тогда, когда множество формул {B1, B2,…, Bn, ~А} противоречиво.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]