Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программа курса M

.doc
Скачиваний:
9
Добавлен:
29.03.2015
Размер:
1.72 Mб
Скачать

Программа курса

  1. Логика высказываний.

    1. Логические операции.

    2. Формулы логики высказываний.

    3. Равносильность и логическое следствие.

  2. Исчисление высказываний.

    1. Правило вывода modus ponens.

    2. Формальный вывод: аксиомы, теоремы, доказательства.

    3. Теорема о дедукции.

    4. Теорема о полноте исчисления высказываний и ее следствия.

  3. Логика предикатов

    1. Предикаты и кванторы.

    2. Исчисление предикатов.

    3. Теорема о полноте исчисления предикатов.

  4. Элементы теории алгоритмов.

    1. Машины Тьюринга.

    2. Вычислимые функции.

    3. Тезис Чёрча-Тьюринга – основная гипотеза теории алгоритмов.

Логика высказываний Операции логики высказываний

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

Простые высказывания будем обозначать строчными буквами латинского алфавита: а, b, с, … Если высказывание a истинно, будем писать ; если высказывание а ложно, будем писать .

  1. Отрицанием высказывания а называется высказывание, обозначаемое , которое истинно тогда и только тогда, когда a ложно. (В курсе «Дискретная математика» мы обозначали отрицание высказывания a чертой сверху: ; в дальнейшем это обозначение неудобно.) В обычном языке операции отрицания соответствует частица "не". Например, если a – высказывание "5 делится на 2", то - высказывание "5 не делится на 2" или "неверно, что 5 делится на 2". Действие операции отрицания можно представить в виде следующей таблицы истинности:

a

0

1

1

0

Эту таблицу примем в качестве определения операции отрицания.

Конъюнкцией (логическим умножением) высказываний а и b называется высказывание, которое истинно тогда и только тогда, когда a и b оба истинны, что обозначается в нашем курсе (в литературе используются также обозначения и ab). Операции конъюнкции в обыденном языке соответствует союз "и": например, если a – высказывание "10 делится на 2", а b – высказывание "10 делится на 3", то - высказывание "10 делится на 2 и на 3" или "10 делится на 6". Определим действие операции конъюнкции в виде следующей таблицы истинности:

a

b

0

0

0

0

1

0

1

0

0

1

1

1

Третья операция, которая употребляется в логике высказываний, соответствует союзу "или". Отметим то обстоятельство, что союз "или" имеет в русском языке два значения: исключающее и неисключающее "или". Так, высказывание: "Я сегодня вечером буду решать задачи по математической логике или пойду в кино", – подразумевает, что выбирается ровно один из двух вариантов ответа – но никак не оба. Это пример использования исключающего "или": здесь подразумевается, что одно отменяет другое: либо решаю задачи, либо иду в кино. Напротив, высказывание "Чтобы сдать экзамен

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

  1. Дизъюнкцией высказываний а и b называется высказывание, обозначаемое , которое ложно тогда и только тогда, когда a и b оба ложны. Например, если a – высказывание «"Амкар" выиграл у "Барселоны"», а b – высказывание «"Барселона" выиграла у "Амкара"» то - высказывание «"Амкар" выиграл у "Барселоны" или "Барселона" выиграла у "Амкара"» то есть: «Матч между "Амкаром" и "Барселоной" не закончился вничью» (конечно, здесь фактически «или» оказывается исключающим, но при использовании операции мы имеем право не иметь в виду, что a и b могут быть истинными одновременно). Действие операции дизъюнкции можно представить в виде следующей таблицы истинности:

    a

    b

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    1

  2. Импликацией высказываний а и b называется высказывание, обозначаемое , которое ложно тогда и только тогда, когда a истинно, а b ложно. Таким образом, таблица истинности для операции импликации имеет вид:

a

b

0

0

1

0

1

1

1

0

0

1

1

1

Операции импликации соответствует конструкция "если…, то…", но необходимо иметь в виду, что в обыденной речи мы часто воспринимаем этот союз в несколько ином смысле, чем в математической логике. Действительно, так как по данному выше определению высказывание ложно только в случае "истина"→"ложь", то истинными являются высказывания: "Если 22=5, то этот текст написан Римским Папой", "Если 22=5, то этот текст написан не Римским Папой" и даже "Если 22=5, то 22=4", что с первого взгляда может показаться странным. С другой стороны, в той же обыденной речи мы иногда интуитивно используем именно данное выше определение импликации: в выражениях вида "Ну, если …, то я Александр Македонский".

  1. Эквивалентностью высказываний а и b называется высказывание, обозначаемое в нашем курсе (в литературе иногда ), которое истинно тогда и только тогда, когда a и b либо оба истинны, либо оба ложны. Таким образом, таблица истинности для операции эквивалентности имеет вид:

а

b

0

0

1

0

1

0

1

0

0

1

1

1

Операции эквивалентности соответствуют выражения "… тогда и только тогда, когда …", "чтобы …, необходимо и достаточно, чтобы …", "… в том и только в том случае, когда …". Например, если a – высказывание "10 делится на 2", b – высказывание "10 делится на 3", а c – высказывание "15 делится на 2", то высказывания и ложны, а высказывание истинно.

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

Пример. Пусть высказывание а означает "число делится на 2"; b"число делится на 3"; с – " число делится на 6". Записать утверждение: "Число делится на 6 тогда и только тогда, когда оно делится на 2 и на 3" в виде сложного высказывания с использованием соответствующих логических операций.

Ответ: .

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

вместо будем писать .

Задача

Определите, истинно или ложно последнее высказывание, исходя из истинности или ложности предыдущих высказываний.

а) , , ;

б) , ;

в) , ;

г) , , ;

д) , , ;

е) , , ;

ж) , , ;

з) , , , ;

и) , , , ;

к) , ;

л) , , ;

м) , .

Пример решения. л) Из первого условия заключаем, что невозможна ситуация, когда и , то есть когда и . Второе условие исключает ситуацию, при которой и . Следовательно, либо , либо , то есть в любом случае .

Формулы

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

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

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

В таком случае будем использовать обозначение .

Пример. Пусть , . Доказать, что .

Решение. Пользуясь таблицами истинности для импликации, отрицания и дизъюнкции, построим таблицы истинности для формул А и В и убедимся в том, что значения А и В при всех значениях a и b совпадают:

а

b

0

0

1

1

0

1

1

1

1

0

0

0

1

1

1

1

Логические законы

Равносильность (или ее отсутствие) любых двух данных формул можно установить конечным числом операций: вычислить значения формул при всех наборах значений переменных; если эти значения для каждого набора переменных совпадают – формулы равносильны, иначе – нет. Правда, если количество переменных велико, применение такого механизма сравнения становится трудновыполнимым: например, если переменных 40, то нужно испробовать 240=10244>1012 наборов, притом, что и количество операций в формуле может быть значительным.

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

Сформулируем некоторые такие законы логики высказываний (везде A, B и C – любые формулы):

  1. Коммутативность:; .

  2. Ассоциативность: ; .

  3. Двойственность (законы де Моргана): ; .

  4. Дистрибутивность: ; .

  5. Отрицание импликации: .

Самодистрибутивность импликации:

  1. .

  2. Конрапозиция: .

  3. Приведение к абсурду: .

  4. Идемпотентность: ; .

  5. Закон двойного отрицания: .

  6. Закон противоречия: .

  7. Закон исключенного третьего: .

  8. Поглощение: ; .

  9. И еще пять безымянных законов: ;; ; ; .

Задача

Из трех данных высказываний a, b, c постройте формулу, определяющую сложное высказывание, которое

а) истинно тогда и только тогда, когда все данные

высказывания истинны;

б) ложно тогда и только тогда, когда все данные высказывания ложны;

в) истинно тогда и только тогда, когда все данные высказывания ложны;

г) ложно тогда и только тогда, когда все данные высказывания истинны;

д) истинно тогда и только тогда, когда истинны высказывания a и b;

е) ложно тогда и только тогда, когда ложны высказывания a и b;

ж) истинно тогда и только тогда, когда данные высказывания либо все истинны, либо все ложны;

з) ложно тогда и только тогда высказывания a и b истинны, а высказывание c ложно;

и) истинно тогда и только тогда, когда истинно ровно одно из высказываний a, b и c;

к) ложно тогда и только тогда, когда ложны ровно два из высказываний a, b и c.

Пример решения. з) Искомое высказывание ложно лишь в одном случае: когда высказывание c ложно, а оба высказывания a и b истинны. Таким высказыванием могло бы стать высказывание вида , где сложное высказывание M должно быть так сконструировано из высказываний a и b, что p ложно тогда и только тогда, когда ложно хотя бы одно из высказываний a или b. Ясно, что этим требованиям удовлетворяет конъюнкция . Таким образом, искомое высказывание имеет вид .

Логические следствия

Будем говорить, что формула B является логическим следствием формулы A и обозначать это , если В принимает значение «истина» для всех наборов значений переменных, для которых А принимает значение «истина». Иными словами, , если из того, что следует, что . Можно переформулировать определение логического следствия еще таким образом:, если множество наборов значений переменных, для которых , является подмножеством множества наборов, для которых .

Определение логического следствия является формальным выражением нашего интуитивного понимания о следовании одного утверждения из другого. Действительно, пусть В есть следствие А. Тогда знание об истинности А позволяет нам утверждать об истинности В без знания какой-либо дополнительной информации. Если, наоборот, утверждение А ложно, то утверждение В может быть как истинным, так и ложным: без дополнительной информации мы не можем утверждать об истинности или ложности В. Если (еще о равносильности).

Пример. Формула является логическим следствием как формулы , так и формулы . Проверьте эти факты. Здесь значение формулы C зависит от значения переменной z, от которого значение формулы B не зависит, но это не мешает B быть следствием C: ведь если , то и независимо от значения z.

Определение. Формула A является логическим следствием формул (пишется ), если для любого набора значений переменных, для которого все формулы истинны, формула A тоже истинна: если , , то .

Задачи

  1. Докажите, что

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

б) тождественно истинная формула является следствием любой формулы;

в) любая формула является следствием тождественно ложной формулы.

  1. Выясните, верно ли, что , и в каждом из приведенных ниже случаев для любых формул P и Q:

а) , ;

б) , ;

в) , ;

г) , ;

д) , ;

е), ;

ж), ;

з),

л) , ;

м) , ;

и) , ;

к) , .

Принцип решения. Формулы P и Q могут принимать 4 комбинации значений: и ; при , ; при , ; при и . Рассмотрим значения F и G в каждом из этих случаев. По определению логического следствия, если условие влечёт или, что то же самое, если только в том случае, когда , то . Если верно и обратное: только в том случае, когда , то .

Решение а) , если ; , если или и . Таким образом, , но формулы F и G не равносильны.

Тождественно истинные формулы

Формула A является тождественно истинной, если она принимает значение «истина» при любых значениях входящих в нее переменных. Для тождественно истинной формулы A будем использовать обозначение .

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

Теорема 1. Формула А является логическим следствием формул тогда и только тогда, когда тождественно истинна формула .

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

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

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

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

Теорема 2. Формула А является логическим следствием формул тогда и только тогда, когда тождественно истинна формула .

Теорема 2 доказывается аналогично теореме 1. Положив в теореме 2 , получаем: тогда и только тогда, когда .

Задачи

  1. Докажите, что формулы А и В равносильны тогда и только тогда, когда формула тождественно истинна.

  2. Докажите, что если формулы A и являются тождественно истинными, то и формула B тождественно истинна (правило modus ponens).

  3. Докажите, что

а) если , , то ; б) если , , то ;

в) если , , то ;

г) если , , то ;

д) если , , то ;

е) если , , , то ;

ж) если , , то ;

з) если , , то ;

и) если , , то ;

к) если , , то ;

л) если , , то ;

м) если , , , то .

Принцип решения Либо рассмотреть все наборы значений, которые могут принимать F, G и H, либо от противного: «Допустим, что формула … не является тождественно истинной…»

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

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

Исчисление высказываний

Законы логики высказываний дают метод получения истинных высказываний, заключающийся в проведении равносильных преобразований. Теперь изложим принципиально иной метод формального вывода. Мы зададим множество тождественно истинных формул, которые назовем аксиомами. Далее зададим правила, позволяющие выводить из аксиом другие тождественно истинные формулы. При этом правила вывода формулируются так, что процесс вывода сводится к формальной (грубо говоря, чисто механической) процедуре: это означает, в частности, что формальный вывод может осуществлять механическое устройство, которое будет «вычислять» новые истинные высказывания. Метод формального вывода в логике высказываний так и называется: исчисление высказываний. Ниже мы встретимся и с другими его применениями.

Зададим некоторый набор символов, который будем называть алфавитом. Символы алфавита будем называть буквами, любую конечную последовательность букв будем называть словом.

Пусть рассматриваемый алфавит составляют следующие буквы:

1) символы 1 («истина») и 0 («ложь»);

2) переменные , , , … (каждая рассматривается как одна буква);

3) знаки логических операций , &, , →, ↔;

4) скобки ( и ).

Слова будем обозначать заглавными латинскими буквами: A, B, C, …

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

1) всякая переменная (то есть слово вида ) является формулой;

2) символы 0 и 1 являются формулами;

3) если слова А и В являются формулами, то

слова , , , , являются формулами

4) никакие другие слова, кроме полученных по правилам 1), 2) и 3), не являются формулами.

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

Указанные правила можно считать определением формулы: действительно, пользуясь ими, можно получить любую формулу, и ничего, кроме формул, получить нельзя. Более того, можно описать формальную (чисто механическую) процедуру, которая, будучи применена к любому слову, за конечное число шагов установит, является ли оно формулой, и если является, то восстановит, какой последовательностью применения правил 1)-4) она была получена. Не будем останавливаться на доказательстве этого факта.

Правило вывода modus ponens

Пусть A и B – слова, и при этом A и являются формулами. Тогда слово B является формулой. Действительно, в соответствии с приведенными выше правилами построения

формул, формула может быть получена именно из формул А и В и никаким другим способом. Будем говорить, что формула B получается из формул А и применением правила modus ponens (мóдус пóненс). Например, из формул и по правилу modus ponens получаем формулу .

Пусть Ф (это заглавная греческая буква фи) – некоторое множество формул. Последовательность формул называется выводом формулы из множества Ф, если и каждая формула , , или принадлежит множеству Ф, или получается однократным применением к некоторым двум формулам из множества правила modus ponens. Формула называется выводимой из множества Ф, если существует ее вывод из множества Ф.

Пример. Докажем, что если множество Ф состоит из всех формул вида (здесь F и G – любые формулы), то из него выводима любая формула. Действительно, пусть А – произвольная формула. Тогда выводом формулы А из множества Ф является следующая последовательность: , , А (здесь первые две формулы принадлежат множеству Ф, а третья получается из них по правилу modus ponens).

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

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

1) , ;

2) , ;

3) , ;

4) , .

Рассмотрим случай 1). Имеем . Очевидно, такое возможно только если . Значит, B принадлежит Ф. Остальные случаи разбираются аналогично.

Упражнение. Разберите их.

Аксиомы, теоремы, доказательства

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

Действительно, рассмотрим две тождественно истинные формулы А и . Поскольку ,

невозможно, чтобы при некоторых значениях входящих в формулы А и В переменных одновременно выполнялись равенства и (действительно, в таком случае было бы ). Но А тождественно истинна, то есть при любых значениях переменных, значит, и невозможно ни при каких значениях переменных, то есть В тождественно истинна: . Таким образом, правило modus ponens выводит из тождественно истинных формул А и тождественно истинную формулу В (между прочим, мы только что решили задачу 2 со стр. 14).

Не из всякого множества, состоящего из тождественно истинных формул, выводимы все тождественно истинные формулы: например, множество состоит из тождественно истинных формул, но тождественно истинная формула из него не выводима (см. пример выше). Тем не менее, правила modus ponens хватает, чтобы все тождественно истинные формулы были выводимы из некоторого множества формул достаточно простого вида, тождественная истинность которых очевидна. Можно указать разные варианты такого множества, описываемого конечным числом выражений. Мы рассмотрим один из таких вариантов.

Итак, формулы следующих видов назовем аксиомами:

(А1) ;

(А2) ;

(А2) .

Кроме того, введем обозначения:

,

,

.

Обозначим множество всех аксиом буквой А (альфа); отметим, что это множество содержит бесконечно много формул, а именно – все формулы видов (А1), (А2) и (А3). Формулы, выводимые из множества А, будем называть доказуемыми формулами или теоремами. Утверждение, что формула F есть теорема, будем обозначать так: . Вывод теоремы из аксиом называется ее доказательством.

Задачи

  1. Укажите недостающую формулу W так, чтобы третья из данных формул получалась из первой и второй по правилу modus ponens:

а) , , W;

б) , W, ;

в) W, , ;

г) , W, ;

д) G, , W;

е) W, , ;

ж) , W, ;

з) W, ,

;

и) , , W.

Пример решения. в) Вторая и третья формулы имеют вид

соответственно и B, где , . Поэтому .

* Докажите, формулы следующих видов являются теоремами исчисления высказываний, построив их выводы из аксиом:

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

Пример решения. а) Выводом является, например, следующая последовательность формул:

(1)

(2) ;

(3) ;

(4) ;

(5) .

Действительно, формула (1) представляет собой аксиому (А2), в которой в качестве F и H взята формула F, а в качестве G – формула . Формула (2) представляет собой аксиому (А1), в которой . Формула (3) получена из формул (1) и (2) по правилу modus ponens. Формула (4) есть аксиома (А1). Формула (5) получена из формул (3) и (4) правилу modus ponens.

Вывод из гипотез

Пусть имеется некоторое множество Г (гамма) формул. Формулы из Г назовем гипотезами. Если существует вывод формулы F из множеств А и Г, то будем говорить, что она выводима из множества гипотез Г и записывать это в виде . Если , то будем писать .

Задача

* Докажите, что имеют место следующие выводимости, построив соответствующие выводы из гипотез:

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

л) ;

м) ;

н) ;

о) ;

п) ;

р) ;

с) ;

т) ;

у) ;

ф) ;

х) ;

ц) ;

ч) ;

ш) ;

щ) .

Примеры решений. б) Выводом является, например, следующая последовательность формул: (1) G, (2) , (3) . Действительно, формула (1) – гипотеза, формула (2) – аксиома (А1) (поменяны местами обозначения F и G), формула (3) получается из (1) и (2) по правилу modus ponens.

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

и) Справедлив, например, следующий вывод: , , , , , , .

Применение теоремы о дедукции

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

Теорема (о дедукции). Пусть Г – множество гипотез и F, G – формулы. Тогда для того, чтобы выполнялось условие , необходимо и достаточно, чтобы выполнялось условие (в частности, тогда и только тогда, когда ).

Следствие. тогда и только тогда, когда .

Задача

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

а) ;

б) ;

в) ;

г) ;

д) ;

е) .

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

Теорема о полноте и ее следствия

Идея построения исчисления высказываний в явном виде была сформулирована американским математиком Э. Постом: в

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

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

Следствие 1 (теорема о непротиворечивости исчисления высказываний). Никакая формула F не является теоремой исчисления высказываний одновременно со своим отрицанием .

Другими словами, исчисления высказываний непротиворечиво.

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

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

Упомянутый алгоритм называют разрешающим алгоритмом. Короче теорема о разрешимости исчисления высказываний формулируется следующим образом: исчисление высказываний разрешимо.

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

Отметим, что справедливо следующее обобщение теоремы о полноте.

Теорема (об адекватности исчисления высказываний). Формула логики высказываний F является следствием формул из множества Г тогда и только тогда, когда F выводима из множества гипотез Г (то есть тогда и только тогда, когда ).

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

Логика предикатов

Понятие предиката

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

Дело в том, что во многих случаях мы можем делать вывод об истинности или ложности некоторого высказывания исходя не только из фактов истинности или ложности других высказываний (посылок), но и из содержания посылок. Например, из истинности высказываний «a меньше b» и «b не равно c» никакого вывода не

следует, но из истинности высказываний «a меньше b» и «b меньше c» следует истинность высказывания «a меньше c». Чтобы построить систему правил, позволяющих автоматически (по виду языкового выражения) делать подобные заключения, необходимо в некоторой степени исследовать строение высказываний.

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

Определение. Под n-местным предикатом будем понимать функцию от n переменных , которая может принимать два значения: истина и ложь (обозначающиеся символами соответственно 1 и 0).

Области определения переменных могут быть любыми. Рассмотрим несколько примеров.

Пусть множеством значений переменной x является множество всех людей, а предикат означает «x есть грек». Тогда если x=Сократ, то , а если x=Наполеон, то .

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

Трехместными предикатами являются, например, «x и y являются родителями z», где x, y, z – люди, и «x лежит между y и z», где x, y, z – точки на прямой.

Таким образом, предикат устанавливает отношение между значениями некоторого количества переменных, принимающих значения из некоторых множеств. По числу переменных предикат называется одноместным, двуместным, …, n-местным, … Высказывания можно считать нульместными предикатами: действительно, высказывание либо истинно, либо ложно независимо ни от каких переменных. Говорят также, что n-местный предикат устанавливает n‑местное отношение.

Функцию одной переменной можно рассматривать как двуместный предикат. Действительно, всякая функция ставит в соответствие каждому элементу x из некоторого множества M элемент y из множества N. Определим двуместный предикат , где и , следующим образом: тогда и только тогда, когда . Очевидно, такой предикат в свою очередь вполне определяет соответствующую функцию. При этом предикаты, соответствующие функциям одной переменной, не исчерпывают совокупности всех двуместных предикатов. Действительно, определение функции , где и , требует, чтобы всякому соответствовало в точности одно . А двуместный предикат , определенный для и , может принимать значение 1 при и нескольких значениях y.

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

Укажем еще на одно свойство: n-местный предикат переходит в (nm)‑местный при подстановке на место m переменных их конкретных значений (аналогичное свойство справедливо для функции n переменных, принимающей значения не обязательно на множестве {0,1}).

Применение операций логики высказываний к предикатам

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

Рассмотрим сначала одноместные предикаты. Если заданы предикаты и , то можно рассматривать предикаты , , , . Пусть, например, определяет свойство «быть студентом» (то есть если и только если x - студент), а определяет свойство «быть англичанином». Тогда обозначает свойство «быть студентом-англичанином», а - «быть англичанином или быть студентом».

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

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

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

Если и - два одноместных предиката, то не следует смешивать, например, предикаты и : первый из них - одноместный предикат, а второй – двуместный (если «x больше 0», «x меньше 1», то «y меньше 1», «x больше 0 или меньше 1», «x больше 0 или y меньше 1»).

Кванторы

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

Пусть - некоторый одноместный предикат, определенный на множестве M.

Тогда (читается: для всех x P от x) есть высказывание, которое в переводе на «обычный» язык означает «Все x обладают свойством ». Здесь  - квантор всеобщности (перевернутая латинская A – обозначение произошло от немецкого alle = рус. всё). Таким образом, высказывание истинно в том и только том случае, когда - тождественно истинный предикат.

Если множество M состоит из конечного числа объектов, то высказывание легко записывается в виде конъюнкции конечного числа высказываний действительно, если, например, , то . Правда, можно считать, что высказывание дает все-таки большую информацию, чем высказывание , поскольку указывает еще на то, что множество M исчерпывается элементами a, b и c. Как бы то ни было, если множество M бесконечно, то представляет собой высказывание совершенно нового вида, не сводимое к конъюнкции единичных высказываний.

Высказывание (читается: существует такое x, что P от x) по определению истинно тогда и только тогда, когда истинно хотя бы для одного . Таким образом, высказывание истинно для всех предикатов , кроме тождественно ложного. Обозначение  операции, называемой квантором всеобщности происходит от немецкого existeren = рус. существовать.

Опять-таки, если M – конечное множество, то высказывание записывается как дизъюнкция конечного числа высказываний: если , то .

Итак, можно считать, что кванторы  и  являются обобщениями операций логики высказываний: соответственно конъюнкции и дизъюнкции.

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

Между кванторами  и  имеют место отношения, позволяющие сводить один квантор к другому:

, .

Действительно, высказывание «Неверно, что все x обладают свойством » равносильно высказыванию «Существует такой объект x, для которого ложно»; «Неверно, что существует x, обладающий свойством » равносильно тому, что «Все x обладают отрицанием свойства ».

С помощью кванторов выражается ряд важных отношений между множествами.

Пусть и - два предиката, определенных на множестве M; P и Q – соответствующие характеристические множества (см. «первую лекцию о предикатах»). Высказывание

(1)

означает, что высказывание истинно для всех

. Пусть . Тогда истинно, и так как истинно для всех , то, в силу определения импликации, отсюда следует, что истинно, а значит, . Таким образом, истинность высказывания (1) означает, что всякий элемент a, принадлежащий множеству P принадлежит также и множеству Q, то есть . Другими словами, высказывание (1) выражает суждение типа «Все P суть Q» (например, «все простые числа – натуральные»).

Упражнение. Докажите обратное утверждение. То есть докажите, что если , то высказывание (1) истинно.

Итак, высказывание (1) означает, что множество P содержится во множестве Q, или, что то же самое, что все объекты, обладающие свойством , обладают также свойством .

С помощью квантора существования строится высказывание, означающее, что пересечение характеристических множеств P и Qпредикатов и непусто: оно записывается формулой («существует такое x, что P от x и Q от x»). Другими словами, это высказывание выражает суждение типа «Некоторые P суть Q» (например, «некоторые нечетные числа – простые»), которое следует понимать так, что по крайней мере один объект x, обладающий свойством P, обладает также свойством Q.

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

Пусть - двуместный предикат. Кванторы можно применять как к переменной x, так и к переменной y. Переменная, к которой применяется квантор, называется связанной, другая переменная – свободной. Во всех случаях применение квантора к одной из переменных превращает двуместный предикат в одноместный: так, формула определяет одноместный предикат от переменной y, который истинен для всех таких, что предикат истинен для всех x. Аналогично нетрудно показать, что применение квантора к n‑местному предикату превращает его в (n-1)-местный.

Таким образом, применение n кванторов по отношению ко всем переменным предиката превращает последний в высказывание. При этом, если кванторы, примененные подряд, одинаковы, то от их перестановки смысл высказывания не изменяется: например, очевидно, что . Но если подряд примененные кванторы различны, то их переставлять нельзя. Пусть, например, Дел - предикат, определенный на множестве натуральных чисел, и означающий «x делится на y». Тогда формула определяет истинное высказывание «Для любого x существует такое y, что x делится на y», а формула определяет ложное высказывание «Существует такое x, что для всех y x делится на y».

Пример. Предел последовательности определяется следующим образом: число a является пределом последовательности , если . Таким образом, число a является пределом, если истинно записанное с помощью кванторов высказывание. Это высказывание получено применением кванторов к трехместному предикату , где  - действительное число, n и N – натуральные числа. Если употребить кванторы по-другому, получим

определения других свойств последовательности .

Упражнение. Попробуйте разобраться, что это за свойства.

Задачи

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

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

л) .

2. Из следующих предикатов с помощью кванторов постройте всевозможные высказывания и определите, какие из них истинны, а какие ложны (значения переменных x и y – действительные числа):

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

л) ;

м) .

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

3. Являются ли тождественно истинными следующие формулы логики предикатов:

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

л) .

Пример решения. л) Покажем, что эта формула не является тавтологией. Для этого в качестве области определения предикатов P и Q возьмем множество натуральных чисел, а предикаты выберем следующие: x делится на 4, x четно. Тогда ясно, что выражение слева от знака эквивалентности истинно: действительно, если число делится на 4, то оно четно, и это справедливо для всех натуральных чисел. Выражение справа от знака означает, что если существует натуральное число, делящееся на 4, то все натуральные числа четны. Это утверждение ложно. Получаем выражение , которое является ложным высказыванием. Таким образом, мы нашли такие предикаты P и Q, что данная в условии формула ложна. Значит, эта формула не является тождественно истинной.

Исчисление предикатов

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

Алфавит исчисления предикатов состоит из следующих букв:

1) символов 1 и 0;

2) предметных переменных ;

3) предметных констант ;

4) предикатных символов ;

5) знаков логических операций , &, , →, ↔;

6) кванторов ;

7) скобок ( и ).

Понятие формулы определяется индуктивно:

а) если P – предикатный символ, – предметные переменные и константы, то – формула; при этом все вхождения переменных в формулу называются свободными;

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

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

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

Система аксиом исчисления предикатов включает в себя аксиомы исчисления высказываний:

(А1) ;

(А2)

;

(А2) ;

и две новые аксиомы, содержащие кванторы:

(А4) ;

(А5) .

Кроме того, как и в исчислении высказываний, введем обозначения:

,

,

.

К правилу вывода modus ponens добавляются еще два правила вывода. Пусть формула содержит свободное вхождение переменной x, а формула F не содержит. Тогда имеют место:

1) -правило, или правило обобщения: из формулы выводится формула ;

2) -правило, или правило конкретизации: из формулы выводится формула .

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

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

Теорема о полноте и проблема разрешимости

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

Эта теорема, доказанная немецким математиком К.Гёделем в 1930 году, являет собой один из важнейших фактов современной математической логики, поскольку, в отличие от логики высказываний, логика предикатов охватывает все методы рассуждений, используемые в классических математических теориях, и, таким образом, все эти теории допускают формализацию на основе логики предикатов. Из полноты исчисления предикатов легко следует его непротиворечивость. Что касается вопроса о разрешимости исчисления предикатов – о существовании алгоритма, позволяющего по виду любой формулы определить, доказуема ли она, – он оказался настолько тонким, что для ответа на него потребовалось заложить основы нового раздела математической логики – теории алгоритмов. А дело в том, что само понятие алгоритма, которым мы интуитивно воспользовались при формулировке и доказательстве теоремы о разрешимости исчисления высказываний, вообще говоря, требует строго определения, которого до конца первой трети XX века просто не существовало.

Здесь мы подходим к материалу последнему разделу нашего курса.

Упражнение. Выведите из полноты исчисления предикатов его непротиворечивость.

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

Элементы теории алгоритмов

Термин алгоритм (или алгорифм) происходит от имени великого среднеазиатского ученого Мухаммеда аль-Хорезми (787 – ок. 850), трактат которого в латинской версии XII в. начинается словами «Dixit algorizm», т. е. «Сказал аль-Хорезми». Понятие, которое обозначает этот термин, стихийно формировалось с древнейших времен. Современный человек понимает под алгоритмом систему инструкций о выполнении некоторых действий для решения определенной задачи. Нас интересует случай, когда речь идет о целом классе аналогичных задач. Много таких алгоритмов изучается в курсе математики средней школы: алгоритм деления столбиком двух чисел в десятичной системе счисления, алгоритм Эвклида поиска наибольшего общего делителя двух целых чисел, алгоритм решения квадратного уравнения…

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

Различные определения понятия алгоритма были выработаны математиками А. Тьюрингом, Э. Постом, Ж. Эрбаном, К. Гёделем, А. А. Марковым, А. Чёрчем. Первые такие определения были сформулированы в 1936-1937 гг. (и вскоре после этого, в 40-х гг., появились первые электронно-вычислительные машины). Впоследствии выяснилось, что все они равносильны между собой, т. е. определяется по сути одно и то же понятие.

Один из подходов к определению понятия алгоритма – наиболее популярный и имеющий наглядную интерпретацию – изучается в этом разделе.

Машины Тьюринга

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

Наглядно устройство и работу машины Тьюринга можно описать следующим образом. Имеется бесконечная в обе стороны лента, разбитая на ячейки. В каждой ячейке записана ровно одна буква из внешнего алфавита А, при этом все ячейки ленты, кроме конечного числа, содержат символ пустой ячейки (такие ячейки называются пустыми). Работа машины разделена на такты. На каждом такте машина находится в одном из состояний, обозначаемых буквами внутреннего алфавита Q, и обозревает ровно одну ячейку ленты, считывая записанную в букву. Если на данном такте работы машина находится в состоянии и обозревает ячейку, в которой записана буква , то выполняется команда , где . По этой команде машина переходит в состояние , стирает в обозреваемой ячейке букву , заносит туда букву , и, в зависимости от того, , или , соответственно переходит к обозрению ячейки, следующей слева или справа от текущей или продолжает обозревать ту же ячейку. После этого машина переходит к

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

Теперь дадим точное определение

Машина Тьюринга полностью определяется следующими данными:

а) внешним алфавитом ;

б) внутренним алфавитом ;

в) программой: совокупностью выражений , , , каждое из которых имеет вид , где , и .

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

Как и ранее, будем называть словом любую конечную последовательность букв соответствующего алфавита. Будем говорить, что непустое слово w в алфавите воспринимается машиной Тьюринга в стандартном положении, если это слово записано в последовательных ячейках ленты, все другие ячейки пусты (содержат ) и машина обозревает крайнюю справа ячейку из тех, в которых записано слово w. Стандартное положение называется начальным (или, соответственно, заключительным), если машина, воспринимающая слово в стандартном положении, находится в начальном состоянии (соответственно, в состоянии остановки ). Будем говорить, что слово w перерабатывается машиной в слово v, если от слова w, воспринимаемого в начальном стандартном положении, машина после выполнения конечного числа команд приходит к слову v, воспринимаемому в положении остановки.

Пример. Имеется машина Тьюринга с внешним алфавитом , внутренним алфавитом и программой , . Программу удобно задать таблицей:

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

A Q


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

Решение. Для наглядности обозначим , . Изобразим схематически начальное положение машины: ( рис. 1).

Схема означает, что все ячейки справа и слева от перерабатываемого слова пусты. Машина находится в состоянии и обозревает ячейку, в которой записана буква 1, в соседней слева ячейке тоже записана буква 1, а соседняя справа ячейка пуста.

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

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

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

Создавшееся положение имеет вид: ( рис. 3).

Таким образом, из данного начального положения слово перерабатывается машиной в слово .

Задачи

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

а) (обозревается четвертая слева ячейка);

б) (обозревается вторая слева ячейка);

в) (обозревается третья слева ячейка);

г) (обозревается четвертая слева ячейка);

д) (обозревается третья слева ячейка);

е) (обозревается четвертая слева ячейка);

ж) (обозревается пятая слева ячейка);

з) (k единиц; обозревается k-я слева ячейка).

2. Имеется машина Тьюринга с внешним алфавитом , внутренним алфавитом и программой, заданной таблицей: (рис. 4).

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

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) .

Конструирование машин Тьюринга

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

Приведем пример такой программы (т.е. создадим машину Тьюринга).

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

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

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

положения, т.е. когда в состоянии обозревается крайняя правая единица из n записанных на ленте.

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

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

Запишем составленную программу построенной машины Тьюринга в виде таблицы: (рис. 5).

В заключение отметим, что созданная нами машина Тьюринга может применяться не только к словам алфавита , представляющим собой записанные подряд n единиц (решите задачи 1 и 2 ниже).

Задачи

  1. В какие слова перерабатывает описанная выше машина Тьюринга следующие слова (исходя из стандартного начального положения): 101, 11101, 11011, 10101, 100111, 11001011?

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

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

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

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

Вычислимые по Тьюрингу функции

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

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

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

.

Здесь полезно ввести следующие обозначения:

, .

Дополнительно полагаем: – пустое слово. Таким образом, слова , , , , … будут рассматриваться как изображения чисел 0, 1, 2, 3, … соответственно. Предыдущее слово можно представить следующим образом: . Начинать переработку данного слова будем из стандартного начального положения. Если функция определена на данном наборе значений аргументов, то в результате на ленте должно быть записано подряд единиц, в противном случае машина должна работать бесконечно.

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

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

Тезис Тьюринга

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

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

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

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

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

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

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

Литература

  1. Ю. Л. Ершов, Е. А. Палютин. Математическая логика. - М.: Наука, 1979 (недавно переиздана).

  2. С. К. Клини. Математическая логика. - М.: Едиториал УРСС, 2005.

  3. А. Н. Колмогоров, А. Г. Драгалин. Введение в математическую логику. - М.: изд-во МГУ, 1982. Этот учебник вошел как первая часть в книгу: А. Н. Колмогоров, А. Г. Драгалин. Математическая логика. - М.: УРСС, 2005.

  4. В. И. Игошин. Математическая логика и теория алгоритмов. М.: Изд. Центр «Академия», 2004.

В. И. Игошин. Задачи и упражнения по математической логике и теории алгоритмов. М.: Изд. Центр «Академия», 2005.