Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шаповалов / lex_2_1.doc
Скачиваний:
80
Добавлен:
19.04.2015
Размер:
559.1 Кб
Скачать
    1. Элементы математической логики, теории предикатов

Математическая логика - наука о правильных математических рассуждениях, о математическом мышлении. Впервые правила рассуждений систематизировал греческий философ Аристотель ( 384-322 г. до н.э.). Лишь в концеXVIIвека немецкий математик

Г. Лейбниц предложил математизировать формальные рассуждения Аристотеля, вводя символьное обозначение для основных понятий и используя особые правила, близкие к вычислениям. Однако как наука математическая логика сложилась лишь в середине ХIX века, когда англичанин Джордж Буль ввел логические связки и исчисление высказываний.

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

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

Основная идеяматематической логики –формализация знаний и рассуждений. Известно, что наиболее легко формализуемые знания – математические. Таким образом, математическая логика, по-существу, – наука о математике, илиметаматематика.

Общеизвестно, что формальная теория ( синоним – исчисление) определена, если:

  1. Заданалфавит(множество символов, используемых для построенияформул).

  2. Определено, какие именно слова ( конечную последовательность символов ) считатьформулами(остальные строки считаются просто бессмысленными).

  3. Выделено множество формул, называемыхаксиомами. Это – стартовые точки в выводах.

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

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

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

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

Алгебра и исчисление высказываний представляют довольно подробно разработанные разделы дискретной математики [10-12] и их рассмотрение опущено (смотри, например,дистанционный курс дискретной математики).

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

Способ 1. Составление таблиц истинности. Пусть 1, …,Аn) – формула алгебры высказываний. Тогда таблица истинности определит булеву функциюf(x1,…,xn), имеющуюn– переменных. Имея таблицу истинности, мы сможем установить тип формулы. Так как число строк таблицы равно 2n, то при большихnэта процедура может оказаться очень трудоемкой.

Способ 2. Применение метода рассуждений от противного. Пусть 1, …,Аn) – формула алгебры высказываний. Делая допущение, что она тождественно истинная ( ТИ – формула) и при некотором наборе переменных приходим к противоречию, то делаем заключение, что эта формула не ТИ-формула. Делая допущение, что она тождественно ложная

(ТЛ – формула) и при некотором наборе переменных приходим к противоречию, то делаем вывод, что она эта формула не ТЛ-формула. И наконец, если мы не получим противоречия ни в одном из этих допущений, то данная формула является нейтральной.

Способ 3. Приведение формул до нормальных форм. Перед тем, как установить тип формулы , иногда полезно ее привести до так называемой стандартной формы. Такими формами служат – дизъюнктивная и конъюнктивная нормальные формы ( ДНФ и КНФ ).

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

Понятие ``предикат'' обобщает понятие ``высказывание''. Неформально говоря,предикат– это высказывание, в которое можно подставлять аргументы. Если аргумент один – то предикат выражает свойство аргумента, если больше – то отношение между аргументами.

Пример предикатов. Возьмём высказывания: ``Сократ - человек'', ``Платон - человек''. Оба эти высказывания выражают свойство ``быть человеком''. Таким образом, мы можем рассматривать предикат ``быть человеком'' и говорить, что он выполняется дляСократаиПлатона.

Возьмём высказывание: ``расстояние от Иркутска до Москвы 5 тысяч километров''. Вместо него мы можем записать предикат ``расстояние'' (означающий, что первый и второй аргумент этого предиката находятся на расстоянии, равном третьему аргументу) для аргументов ``Иркутск'', ``Москва'' и ``5 тысяч километров''.

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

Пример рассуждения, не выразимого в логике высказываний. Все люди смертны. Сократ - человек. Следовательно, Сократ смертен.

Это рассуждение на языке логики высказываний можно записать тремя отдельными высказываниями. Однако никакой связи между ними установить не удастся. На языке логики предикатов эти предложения можно выразить с помощью двух предикатов: ``быть человеком'' и ``быть смертным''. Первое предложение устанавливает связь между этими предикатами.

Определение 2.13.Пусть М – непустое множество. Тогдаn-местным предикатом, заданным на М, называется выражение, содержащее n переменных и обращающееся в высказывание при замене этих переменных элементами множества М.

Рассмотрим примеры. Пусть М есть множество натуральных чисел N. Тогда выражения «x – простое число», «x – четное число», «x – больше 10» являются одноместными предикатами. При подстановке вместо x натуральных чисел получаются высказывания: «2 – простое число», «6 – простое число», «3 – четное число», «5 больше 10» и т.д. Выражения «x больше y», «x делит y нацело», «x плюс y равно 10» являются двухместными предикатами. (Конечно, последнее выражение можно было записать и так: «x+y=10»). Примеры трехместных предикатов, заданных на множестве натуральных чисел: число z лежит между «x и y», «x плюс y равно z», «|x-y|z».

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

Предикат с заменяемыми переменными x1,…,xn будет обычно обозначаться заглавной латинской буквой. После которой в скобках указаны эти переменные. Например, P(x1,x2), Q(x2,x3), R(x1). Среди переменных в скобках могут быть и фиктивные.

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

Определение 2.14. Предикат W(x1,…,xn) называется конъюнкцией предикатов U(x1,…,xn) и V(x1,…,xn), заданных на множестве М, если для любых а1,…,аn из М высказывание W(а1,…,аn) есть конъюнкция высказываний U(а1,…,аn) и V(а1,…,аn).

Легко по аналогии привести определения и других упомянутых выше операций.

В логике предикатов вводятся и две новые операции. Называются они квантором общности и квантором существования. Эти операции рассмотрим вначале на примерах. Пусть дано выражение «существует х такой, что x+y=10». На множестве натуральных чисел это предложение определяет одноместный предикат P(y), так Р(2) и Р(9) – истинные высказывания, Р(11) – ложное. Если обозначить предикат «x+y=10» через S(x,y) (а это предикат двухместный), то P(y) можно записать так: «существует х такой, что S(x,y)». В этом случае говорят, что предикат P(y) получен из предиката S(x,y) навешиванием квантора существования на x и пишут P(y)=( x)S(x,y). Рассмотрим другой пример. Выражение «для всех х справедливо, что y2» определяет на множестве целых чисел одноместный предикат Q(y). Если предикат «y2» обозначить через T(x,y), то Q(y) можно записать так: «для всех x справедливо T(x,y)». В таком случае говорят, что предикат Q(y) получен из предиката T(x,y) навешиванием квантора общности на х и пишут

Q(y)=( x)T(x,y).

Определение 2.15. Пусть P(x1,…,xn) – предикат, заданный на множестве M, y – переменная. Тогда выражение «для всякого y выполняется P(x1,…,xn)» – предикат, полученный из P навешиванием квантора общности на переменную y, а выражение «существует y такой, что выполняется P(x1,…,xn)» – предикат, полученный из P навешиванием квантора существования на переменную y.

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

Во-первых, предикат можно представить отношением следующим образом. Пусть предикат P(x1,…,xn) задан на множестве M. Рассмотрим прямую степень этого множества Mn=MxMx…xM и подмножество Dp множества Mn, определяемое равенством:

Dp={(a1,…,an)Mn высказывание P(a1,…,an) истинно}.

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

Во-вторых, предикат P(x1,…,xn), заданный на M, можно отождествить с функцией fp:Mn{0,1}, определяемой равенством

Исчисление предикатов, то есть формальная теория предикатов строится по классической схеме построения формальных (математических) теорий.

1. Алфавит исчисления предикатов, то есть множество исходных символов состоит из предметных переменных x1,x2,..., предметных констант a1,a2,..., предикатных букв P11, P21,...,Pkj,... и функциональных букв f11,f21,...,fkj,..., а также знаков логических операций ,,,, кванторов , и разделительных знаков ( , ) .

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

2. Понятия формулы означают в два этапа.

Сначала означают понятие терма.

а). Предметные сменные и предметные константы являются термами.

б). Если fn - функциональная буква, а t1,t2,...,tn - термы, то fn(t1,t2,...,tn) - терм.

в). Других термов, кроме образованных по правилам а) и б), нет.

Затем, формулируют определение формулы.

а). Если Pn предикатная буква, а t1,t2,...,tn - термы, то Pn(t1,t2,...,tn) - формула, которая называется элементарной. Все вхождения предметных сменных в формулу Pn(t1,t2,...,tn) называют свободными.

б). Если F1, F2 - формулы, то выражения (F1), (F1F2), (F1F2), (F1F2) тоже есть формулами. Все вхождения сменных, свободные в F1 и F2, есть свободными и во всех четырех видах формул.

в). Если F(x) - формула, которая содержит свободные вхождения сменной x, то x(x) иx(x) - формулы.

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

г). Других формул, чем построенных по правилам а), б) и в), нет.

Замечания. Функциональные буквы и термы введены у определение для потенциальных потребностей разнообразных конкретных прикладных исчислений предикатов. В прикладных исчислениях предметная область M есть, как правило, носителем определенной алгебраической системы, поэтому в многочисленные целесообразно иметь средства для описания операций и отношений, заданных на M. Чистое исчисление предикатов строится для произвольной предметной области; структура этой области и связи (отношения) между ее элементами не берутся к вниманию, поэтому в нем вводить функциональные буквы и термы не обязательно.

3. Аксиомы исчисления предикатов образовывают две группы аксиом.

а). Первую группу составляют аксиомы произвольного исчисления высказываний. Как правило, эти аксиомы являются схемами аксиом.

б). В друге группу входят так называемые предикатные аксиомы:

P1. xF(x)F(y),

P2. F(y) xF(x).

В этих аксиомах F(x) - любая формула, которая содержит свободные вхождения x, причем ни одно из них не находится в области действия квантора по y. Формулу F(y) получаем с F(x) заменой всех свободных вхождений сменной x на y.

Последнее замечание означает, что формула F(x) не может иметь, например, вид y(x,y) илиy(A(x)B(y)) и т.п..

4. Правилами вывода в многочисленные предикатов есть такие правила.

а). Правило вывода (modus ponens) - одно и тех же, что и в исчислении высказываний.

б). Правило обобщения (правило введения квантора ): с AB(x) выводится AxB(x).

в). Правило введения квантора : с B(x)A выводятся xB(x)A.

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

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

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

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

Например, в формуле

F=t(x)^(y)[s(x,y)( x)(r(x,y) t(x))]

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

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

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

  • P(x) выражает условие ``x является простым числом'',

  • Q(x, y) выражает условие ``x меньше чем y''.

Представим предложение русского языка «Все простые числа больше чем x» предикатной формулой.

Ответ: y(P (y) Q(x, y)).

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

Введем понятие интерпретации предикатов.

Определение 2.17. Интерпретацией на непустом множестве М называется функция, заданная на сигнатуре FR, которая

1) константе ставит в соответствие элемент из М;

2) символу n-местной функции ставит в соответствие некоторую n-местную функцию, определенную на множестве М;

3) символу n-местного предиката ставит в соответствие n-местный предикат, заданный на М.

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

Приведем примеры. Пусть сигнатура состоит из символа одноместного предиката P и двухместного предиката D, M={2,3,6,9,12,15} и

F=(P(x)^(y)(P(y)D(x,y))

Поставим в соответствие (проинтерпретируем) P(x) предикат «x – простое число», D(x,y) – предикат «x меньше или равно y». Тогда формула F получит в соответствие предикат «x=2». На этом же множестве можно рассмотреть и другую интерпретацию: P(x) ставится в соответствие «x – нечетное число», D(x,y) – предикат «x делит y». В таком случае, формула F получает в соответствие предикат «x=3». Если – интерпретация, то предикат, соответствующий формуле F будем обозначать через(F).

Одним из основных типов задач этой темы являются задачи, связанные с использованием выразительных возможностей языка логики предикатов. В качестве примера рассмотрим задачу перевода на язык логики предикатов следующего рассуждения. «Каждый первокурсник знаком с кем-либо из спортсменов. Никакой первокурсник не знаком ни с одном любителем подледного лова. Следовательно, никто из спортсменов не является любителем подледного лова». Для удобства ссылок это рассуждение условимся называть рассуждением о первокурсниках. Выберем следующую сигнатуру:

П(х): «х – первокурсник»,

С(х): «х – спортсмен»,

Л(х): «х – любитель подледного лова»,

З(x,y): «х знаком с y».

Тогда рассуждение запишется в виде следующей последовательности формул.

Н1=(x)[П(х)(y)(C(y)^З(x,y))],

H2=(x)(y)[П(x) ^Л(y) ¬З(x,y)],

H3=(x)(C(x)¬Л(x))

Определение 2.18. Формулы F(x1,…,xn) и G(x1,…,xn) называются равносильными, если для любой интерпретации с областью М высказывания (F)(a1,…,an) и (G)(a1,…,an) при любых a1,…,an из М одновременно истинны или одновременно ложны.

Определение 2.19. Формула F(x1,…,xn) называется тождественно истинной, если для любой интерпретации с областью М высказывание (F)(a1,…,an) при любых a1,…,an из М является истинным.

Ясно, что все равносильности алгебры высказываний [10-12] будут верны, если в них вместо переменных высказываний подставить формулы логики предикатов. Но кроме того, имеют место равносильности самой логики предикатов. Например,

Законы пронесения кванторов через конъюнкцию и дизъюнкцию:

Законы пронесения кванторов через импликацию:

Законы удаления квантора общности и введения квантора существования:

Законы коммутативности для кванторов:

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

Определение 2.20.Говорят,что формулалогики предикатов имеет приведенную нормальную форму, если она содержит только операции конъюнкции, дизъюнкции и кванторные операции, а операция отрицания отнесена к элементарным формулам.

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

Процедуры приведения к этим формам содержатся, например, в [12].

Математическое описание логики следует воспринимать, как некую формальную систему, оперирующую с символами по определенным правилам, облегчающим интер-претацию в реальном мире.

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

Алгоритм - последовательность действий, устанавливающая правила вычисления.

Соседние файлы в папке Шаповалов