
- •Язык логики предикатов
- •Буквы и символы
- •Термы - константы, переменные, функции
- •Атомарные предикаты
- •Кванторы и связанные переменные
- •Определение правильно построенной формулы
- •Семантика логики предикатов
- •Использование языка логики предикатов для представления знаний
- •Префиксная нормальная форма
- •Сколемовская нормальная форма
- •Клаузальная форма
- •Предложения (дизъюнкты) Хорна
- •Формализация процесса доказательств
- •Метод резолюции для логики высказываний.
- •Принцип резолюции в логике предикатов
- •Наиболее общий унификатор
- •Алгоритм доказательства методом резолюции
- •3) ("X)[шпион(X)®дипломат(X)]
- •Ограничения логики предикатов первого порядка
- •Понятия вычислимости. Счетные и несчетные множества.
- •Машина Тьюринга.
- •Функции, вычислимые на машине Тьюринга
- •Примеры невычислимых по Тьюрингу функций
- •Тезис Чёрча-Тьюринга.
- •Проблема остановки машины Тьюринга.
- •Рекурсивные функции
- •Рекурсивность вычислимых по тьюрингу функций.
- •Нормальные алгорифмы маркова
- •Логика первого порядка неразрешима
- •Теорема о корректности.
- •Теорема о компактности.
- •Теорема Лёвенгейма-Сколема
- •Список литературы.
Рекурсивность вычислимых по тьюрингу функций.
Предположим, что f некоторая функция, вычисляемая на машине ТьюрингаM. Мы должны доказать, что функцияfрекурсивна. Предположим для определенности, что наша функция зависит от двух переменных. Для другого числа аргументов будет аналогичное доказательство.
Алфавит нашей машины состоит из символов 0и1. Пусть x1,x2- произвольные натуральные числа. Перед началом вычислений на ленте находятся друг за другом через один0два блока1. В левом блоке присутствуетx1+1 единица. В правом блоке находитсяx2+1 единиц. Все остальные клетки ленты в начальный момент времени содержат0. Машина считывает самую левую1 на ленте. После остановки машина также считывает самую левую1, а на л ленте находится блок изf(x1,x2)+1 единиц. Все остальные клетки ленты содержат0. Из нашего описания начальной конфигурации следует также, что в произвольный момент времени слева и справа от считываемой клетки находится лишь конечное число1.
Поэтому, бесконечную часть ленты слева от считываемой клетки можно представить как запись некоторого числа в двоичной системе счисления. Младший разряд этого о числа будет находится слева от считываемой клетки. Бесконечная последовательность нулей слева от самой левой единицы представляется незначащими разрядами этого числа. Назовем это число левым числом
Бесконечную часть ленты справа от считываемой клетки и саму эту клетку также представим в виде числа в двоичной записи, но в обратном порядке. Младший разряд этого числа будет записываться в считываемой клетке. Последовательность нулей справа от самой правой единицы будет незначащими разрядами этого числа. Назовем это число правым числом.Таким образом содержание ленты машины в произвольный момент времени однозначно кодируется двумя неотрицательными числами.
Пусть, например, лента машины имеет следующий вид
0000000000000111011011101100000000
Тогда левым числом будет двоичное число 111011, а правым числом будет число 1101110.
Если на ленте нет ни одной единицы, то левое и правое число равны нулю. Если символ, находящийся в считываемой клетке меняется с 0на1 (или с1на0), то правое число увеличивается (уменьшается) на 1.
Рассмотрим теперь, как меняются левое и правое число при движении машины направо или налево. Пусть l- значение левого числа до перемещения машины ,r- старое значение правого числа,l¢- новое значение (после перемещения) левого числа, r ¢- новое значение правого числа. Здесь необходимо рассмотреть четыре случая.
Случай 1. Машина сдвигается на клетку влево, а l нечетно. В этом случае в двоичном представлении в младшем разряде левого числа записана 1. Поэтому при движении влево к новому правому числу (в двоичной записи) мы должны добавить младший разряд, в котором будет записана 1. Следовательно r ¢=2r+1. Новое левое число получается из старого левого числа удалением младшего разряда, в котором содержится единица. Поэтомуl¢=(l-1)/2.
Случай 2. Машина сдвигается на клетку влево и l четно. Аналогичными рассуждениями получаемr ¢=2r иl¢=l/2.
Случай 3. Машина сдвигается вправо и r нечетно. Тогдаr ¢=(r-1)/2 иl¢=2l+1.
Случай 4. Машина сдвигается вправо и r четно. Тогдаr ¢=r/2 иl¢=2l.
Когда машина начинает работу, слева от считываемой клетки нет единиц и поэтому левое чиcло равно 0. Правое число имеет вид
1...101...1
x2+1 x1+1
Последовательность из m единиц обозначает в двоичной записи число 2m-1. Последовательность изm единиц со следующими за ними nнулями обозначает число (2m-1) 2n. Последовательность изm единиц, за которой следует один ноль и ещеpединиц после него обозначает число (2m-1) 2p+1 +(2p-1). Итак правое число в момент начала вычислений равно (2x2+1-1) 2x1+2 +(2x1+1-1). Введем примитивно рекурсивную функцию s(x1,x2)=dif(2x2+1,1) 2x1+2 +dif(2x1+1,1). Для любого неотрицательногоx верно 2x³1, поэтому правый нумерал в момент начала вычислений равен s(x1,x2).
В момент остановки левое число снова равно нулю, правое число равно 2f(x1,x2)+1-1 (последовательность изf(x1,x2)+1 единиц).
Введем функцию lo(x)= “наибольшееwтакое, чтоw£xи 2w£x“. Функцияlo(x) примитивно рекурсивная функция, так какlo(x)=Mxx[d](x), гдеd(x,y)- характеристическая функция условия 2w£x.(см. пункт 19 из примеров рекурсивных функций). По определению нашей функции имеемlo(2z+1-1)=z. Поэтому lo(2f(x1,x2)+1-1)=f(x1,x2)= lo(r), где r -значение правого числа в момент остановки.
Представим теперь граф переходов и машинную таблицу машины Тьюринга с помощью примитивно рекурсивных функций aиq. Будем считать интерпретациями машинных состоянийq1 ,q2 и так далее натуральные числа 1,2 и так далее , интерпретациями символов0и1 числа 0 и 1 и интерпретациями действий0,1,L,Rчисла 0,1,2,3. Если машинаM, считывая в состоянииqiсимвол0, совершает действие j(j=0,1,2,3) и переходит в состояниеqk, то мы полагаемa(i,0)=j иq(i,0)=k. Если же машинаM, считывая в состоянииqiсимвол1, совершает действиеj(j=0,1,2,3) и переходит в состояниеqk, то мы полагаемa(i,1)=jиq(i,1)=k. Для всех пар чиселx,y, не связанных таким образом,a(x,y)=yиq(x,y)=0. Поскольку машинная таблица содержит лишь конечное число четверок, функцииa(x,y)иq(x,y) допускают определение путем перебора случаев. Следовательно - это примитивно рекурсивные функции.
Рассмотрим пример. Для машины изображенной на следующем рисунке, вычисляющей функцию следования, определим функции a(x,y)иq(x,y).
{ 1, если x=1 и y=0 { 2, еслиx=1 и y=0
{ 3, если x=1 и y=1 { 1, еслиx=1 и y=1
a(x,y)={ 3, еслиx=2 и y=0q(x,y)={ 3, еслиx=2 и y=0
{ 2, если x=2 и y=1 { 2, еслиx=2 и y=1
{ yв противном случае. { 0 в противном случае.
Для доказательства рекурсивности функции fнам понадобится функцияtpl(x,y,z)=2x3y5z, которая позволяет кодировать тройки натуральных чисел, а также в некотором смысле “обратные” функцииtplфункции lft,ctrиrgt, которые по коду тройки чисел вычисляют соответственно первое, второе и третье число тройки. По определениюlft(w) равно наибольшемуx такому, что x£w и 2x делитw нацело без остатка, ctr(w) равно наибольшемуxтакому, что x£w и 3x делитw нацело без остатка иrgt(w) равно наибольшемуx такому, что x£w и 5x делитw нацело без остатка. Если w= tpl(x,y,z), тоx= lft(w),y= ctr(w),z= rgt(w).Для краткости вместоtpl(x,y,z) будем писать <x,y,z>.
Определим теперь функцию g, которая будет обладать следующим свойством, Пусть t0- шаг , на котором машина останавливается. Еслиt £ t0, тоg(x1,x2,t)=<левое число на шаге t, состояние машины на шагеt, правое число на шаге t>. В начальный момент вычислений машина находится в состоянии 1, левое число равно нулю, правое число равноs(x1,x2). Поэтомуg(x1,x2,t)=<0,1, s(x1,x2)> . Определим примитивно рекурсивную функциюe:e(r)=0, еслиr- четно иe(r)=1, еслиr- нечетно (примитивная рекурсивность функцииeследует из формулыe(x)=rm(2,x)). Введем сокращения: lºlft(g(x1,x2,t)), cºctr(g(x1,x2,t)), rºrgt(g(x1,x2,t)), qº q(c,e(r)). Завершим теперь определение функцииg. Будем вычислять её значение в точкеt+1 через значение в точке tследующим образом
{<l,q,r>, еслиa(c,e(r))=0 иe(r)=0. (пишем символ 0
{<l,q,dif(r,1)>, еслиa(c,e(r))=0 иe(r)=1.в считываемую клетку).
{<l,q,r+1>, еслиa(c,e(r))=1 иe(r)=0.(пишем символ 1
{<l,q,r>, еслиa(c,e(r))=1 иe(r)=1.в считываемую клетку)
g(x1,x2,t+1)= {<l/2,q,2r>, еслиa(c,e(r))=2 иe(l)=0.(сдвигаемся на
{<dif(l,1)/2,q,2r+1>, еслиa(c,e(r))=2 иe(l)=1.одну клетку влево)
{<2l,q,r/2>, еслиa(c,e(r))=3 иe(r)=0.(сдвигаемся на
{<2l+1,q,dif(r,1)/2>, еслиa(c,e(r))=1 иe(r)=1.одну клетку вправо)
{ 0 в противном случае.
В эту формулу входят функции, примитивную рекурсивность которых мы уже доказали. Поэтому функция gоказывается примитивно рекурсивной. Наши определения гарантируют, что наша машина впервые попадает в воображаемое состояние 0 в следующий после остановки моментt0+1. Таким образом,ctr(g(x1,x2,y))¹0 для всехy£.t0. Машина M остановится в момент времениt0, вычислив при этом функциюf(x1,x2), тогда и только тогда, когдаt0 - наименьшее из такихy, чтоctr(g(x1,x2,y+1))=0. Введем функциюh(x1,x2)= ctr(g(x1,x2,y+1)). Эта функция примитивно рекурсивна. Тогда момент остановки машины вычисляется с помощью формулы:t0=Mn[h]. Отсюда следует, чтоf(x1,x2)=lo(rgt(g(x1,x2,t0)))=lo(rgt(g(x1,x2, Mn[h]( x1,x2))))
для всех x1,x2.
Из последней формулы следует, что функция f(x1,x2) рекурсивна. Примитивно рекурсивной она в общем случае не является.
Из этой формулы следует также теорема Клини о нормальной форме для рекурсивных функций:
При построении произвольной рекурсивной функции из базисных с помощью композиции, примитивной рекурсии и минимизации операция минимизации может быть использована не более одного раза.
Обозначим множество вычислимых по Тьюрингу функций через T, множество вычислимых на абаках функций черезA, множество рекурсивных функций черезR. Сейчас мы доказали, что функции вычислимые по Тьюрингу рекурсивны, то естьT ÌR. До этого мы доказали, что рекурсивные функции вычисляются на абаках , то естьR ÌA. А функции вычисляемые на абаках вычисляются на машинах Тьюринга, то естьA ÌT. То есть RÌAÌTÌR.
Поэтому R=A=T и все наши понятия вычислимости эквивалентны.
Рассмотрим еще одно понятие вычислимости, введенное советским математиком Андреем Андреевичем Марковым, сыном русского математика Андрея Андреевича Маркова.