Теорія алгоритмів та математична логіка:Іспит
Матеріал з USIC Wiki
Формальні мови. Числення предикатів, як формальна мова.
Формальна мова складається з таких елементів:
- 1) Алфавіт A - довільна скінченна або зліченна множина, яка розбивається на дві підмножини A =
, де елементи множини A0 називають термінальними (основними) символами, а елементи множини AS службовими символами;
- 2)У множині А* всіх слів в алфавіті А , яка є зліченною, виділяється підмножина
, яка називається підмножиною слів (речень, формул) формальної мови, крім того, якщо F
W, тобто є правильно побудованим реченням (формулою), то і його заперечення ¬F є також правильно побудованим. Сукупність правил, які визначають W, називають синтаксисом формальної мови.
Інтерпретатором формальної мови на множині Т називають функцію І : W
Т, таку, що для довільної формули має місце I(F)
I(¬F), а сукупність правил, які її визначають, називають семантикою формальної мови
Висловлювальна форма - це твердження, в якому пропущені певні слова; після заповнення порожніх місць назвами елементів з певної множини D висловлювальна форма стає висловлюванням. Кількість змінних від яких залежить висловлювальна форма називається її арністю. Визначити дію інтерпретатора Іс на висловлювальній формі А(х1,х2,...,хn) означає описати інтерпретацію всіх висловлювань, які вона задає.
Тобто слід співставити кожному набору d1,d2,...,dn, di
D, елемент I(A) d1,d2,...,dn
{0,1}.
Отже, результатом дії інтерпретатора Іс на висловлювальну форму А є предикат Іс(А) – функцiя яка приймає значення в області істинності {0,1}.
Функція, яка ставить у відповідність кожному набору d1,d2,...,dn, di
D елемент з множини {0,1} називається n-містним (n- арним) предикатом визначеним на множині D.
Таким чином, щоб проінтерпретувати висловлювальну форму А(х1,х2,...,хn) як предикат треба обрати область інтерпретації - множину D і співставити цій формі предикат Іс(А) відповідної арності, визначений на цій множині.
Операції над висловлювальними формами (предикатами):
- операції над висловлюваннями(
)
- квантування(
).
Синтаксис. Формальна мова має алфавіт А, який включає в себе множину термінальних сим¬волів А0, яка складається з елементів: a, b, с ... - прості висловлювання, f, g, h ... - функціональні константи, А, В, С ... - предикатні константи, х, у, z, ... – змінні,
та множини спеціальних символів:
АS={
}
Введемо поняття терму або функціональної форми індуктивно:
- База: а, b, с, х, у, z - найпростіші терми;
- Індукційний крок: якщо t1,t2,..,tk - терми, а f - функціональна константа, то f(t1,t2,...,tk) - теж терм.
Поняття формули числення предикатів вводиться також індуктивно. Нехай t1,t2,...- довільні терми, А - деяка предикатна константа.Тоді формула A(t1,t2,...) називається атомарною.
- База: Атомарні формули - формули числення предикатів.
- Індукційний крок: F1,F2- формули числення предикатів, тоді:
F1
F2, F1
F2,F1
F2, ¬(F1),
(F1),
(F1) - теж формули
Семантика. Інтерпретатором формули числення предикатів називається трійка {D,IC,IV), яка складається з множини D - області інтерпретації, та двох інтерпретаторів (відображень) IC – інтерпретатор констант, IV – інтерпретатор змінних.
Областю значень відображення IC є множина Т предикатів, а областю значень композиції І = IV(IC) є область істинності Т0 = {0,1}. Для даного набору формул, які підлягають інтерпретації, відображення IC та IV однозначно визначені, якщо:
1) кожному простому висловлюванню (константі) з даного набору формул співставлено її значення істинності або 1, або 0 a
IC(a)
{0,1}
2) кожній функціональній константі з даного набору формул співставлено функцію від певної кількості змінних, яка визначена на множині D і набуває значень в цій же множині f
IC(f):D
D
D
3)кожній предикатній константі А з даного набору формул співствлено предикат певної арності A
IC(A):D
D
{0,1}
4) інтерпретатор змінних присвоює кожній вільній змінній формули певне значення IV(x):x
dx
D
Формальні теорії. Числення предикатів, як формальна теорія.
Формальною теорією називається формальна мова (A,W), в якій виділена певна підсукупність (пгдмножина) слів Axioms
W, елементи якої називаються аксіомами, і сформульовані правила виводу одних формул або слів з інших.
При цьому запис F1, F2, ..., Fk
F означає: формула отримана з шляхом застосування правил виводу формальної теорії.
Якщо формули F1, F2, ..., Fk
Axioms, то формула називається теоремою формальної теорії.
Послідовність формул U1, U2, ..., US називається формальним виводом формули F множини формул Г={F1, F2, ..., Fk} якщо:
1) кожна формула Ui або Ui
Axioms, або Ui
Г , або Ui
Axioms
Г
{ U1,...,Ui − 1 }
2)US = F
Якщо F є теоремою теорії, то відповідний вивід будемо називати доведенням теореми. Формальна теорія називається несуперечливою, якщо не існує формули F такої, що F та ¬F є теоремами. Моделлю формальної теорії називається модель множини її теорем, тобто така інтерпретація І множини її формул, що
F \Rightarrow I(F) = 1
Лема. Якщо формальна теорія допускає принаймні одну модель, то вона несуперечлива.
Числення висловлювань як формальна теорія
Приймається синтаксис числення висловлювань, як формальної мови, де формули
Зображення:TAML 1.GIF
приймаються за означення зв’язок
Аксіоми числення предикатів:
- A1:
- A2:
- A3:
- A4:
, де t - терм вільний для х у формулі F(x);
- A5:
Правилами виводу в численні предикатів є modus ponens F, F
G
і правило узагальнення Gen
, де t - терм вільний для х у формулі F(x)
Будь-яка теорема числення предикатів, як формальної теорії є тотожно-істинною формулою числення предикатів, як формальної мови, тобто
Наслідок. Будь-яке числення предикатів є несуперечливою теорію.
Метатеорема дедукції в численні предикатів. Нехай Г- деяка множина формул числення висловлювань і А деяка формула. Нехай Г, А├F (формула F виводиться з множини формул Г і формули А), і при цьому не застосовується правило Gen по вільним змінним формули А, тоді Г├ А→F.
Доведення. Доведення теореми проведемо методом математичної індукції по довжині виводу формули F.
Нехай U1, U2, ..., US
F- вивід формули F з множини формул Г,A.
- База індукції: s = 1. У цьому випадку U1
F і це можливо лише за одної з трьох умов:
а) F
Г;
б) F- аксіома;
в) F
А.
У випадку а) маємо: 1)F(гіпотеза);2)F->(A->F)(A1,де A=G);3)A->F(MP 1,2).
У випадку б) доведення дослівно повторюється, а у випадку в) попередньо доведена теорема F->F. Цим базу індукції доведено.
Припустимо, що метатеорема дедукції має місце для формул F, довжина виводу яких з множини формул Г, А менша за s.
Тоді, за припущенням індукції, для довільного к : 1 < к < s, має місце: Г
А->Uk,
а для формули US є такі можливості:
- а) F
Г
- б)F- аксіома
- в)F = А
- г)існують i,j : 1 < i,j < s такі, що Uj= Ui ->Us, тобто Us отримана за правилом modus ponens;
- д)F=
і отримано застосуванням правила Gen.
У перших трьох випадках міркування, проведені при доведенні бази індукції, дослівно повторюються.
У випадку г), користуючись припущенням індукції, отримуємо Г
А->Ui, Г
А->(Ui->US). За схемою аксіом А2, отримуємо (A->(Ui->US))->((A->Ui)->(A->US)
Застосувавши два рази modus ponens отримуємо Г
А-> US, а US=F.
У випадку д) за припущенням індукції маємо Г
А->Ui.
За зробленим припущенням х не є вільною змінною формули А. Тоді за А5
.
Оскільки Г
A-> Ui , то за правилом Gen: Г
x (A-> Ui) Звідки застосувавши М.Р. маємо потрібний результат.
Теорії першого порядку. Теорема К. Гьоделя про повноту числення предикатів.
Формальна теорія Т, список аксіом якої містить в собі аксіоми А1,А2,АЗ,А4,А5 і правилом виводу якої є modus ponens і правило узагальнення називається теорією 1-го порядку; аксіоми цієї теорії відмінні від А1, А2, A3, А4, A5 називаються спеціальними аксіомами теорії.
Лема. У суперечливій теорії будь-яка формула є теоремою.
Лема 2.5. Якщо тотожно-істинна формула числення предикатгв отримана шляхом підстановки у тавтологію числення висловлювань формул числення предикатів, то вона є теоремою числення предикатів.
Теорія Т1 називається розширенням теорії Т, якщо множина формул теорії Т1 містить множину формул теорії Т і кожна аксіома теорії Т входить в список аксіом теорії. Умовно це буде записуватися Т
Т1.
Лема. Якщо замкнена формула
F не є теоремою в теорії Т, то її розширення, яке отримано додаванням формули F до списку аксіом теорії Т є несуперечливим.
Теорія Т називається повною, якщо для будь-якої замкненої формули Т або вона або її заперечення є теоремою, тобто
або
x F або
x
F.
Лема Лінденбаума. Якщо теорія першого порядку Т є несуперечливою, то існує несуперечливе повне її розширення.
Теорема. Будь-яка несуперечлива теорія 1-го порядку має зліченну модель
Теорема. В довільній теорії першого порядку Т будь-яка тотожно-істинна формула є теоремою цієї теорії.
Теорема Гьоделя про повноту числення предикатів. Для довільної формули F будь-якого числення предикатів має місце
Алгоритмічна мова К. Гьоделя. Примітивно рекурсивні, загально-рекурсивні та частково-рекурсивні функції, множини, предикати. Теза Черча.
Нехай N+ - множина натуральних чисел з нулем. Визначимо деякий клас функцій f= f(x1,x2,...,xk) :
N+(k)=N+
N+
N+, k=0,1,2,..., індуктивно.
1. Базові функції:
- 1А. Z(x) = 0 для всіх х
N+
- 1B. N(x) = х+1 -функція, що видає наступний номер(next)
- 1С. Ink(x1,x2,...,xk,...,xn,)= хк –проектори, які з кортежів змінних "вирізають"певну координату, n = 1, 2, 3,... , k = 1, 2,... , n
2. Правила побудови нових функцій
- 2А. Оператор підстановки (суперпозиції) дозволяє з даних n + 1 функцій - g(y1, y2, ..., ym), hi(x1, x2, ..., xn), i=1, ..., m утворювати нову функцію f(x1, x2, ..., xn)=g(h1(x1, x2, ..., xn), h2(x1, x2, ..., xn), hm(x1, x2, ..., xn))
- 2Б. Оператор примітивної рекурсії дозволяє з функцій g(x1, x2, ..., xn) та h(x1, x2, ..., xn, xn+1, xn+2) будувати функції від n + 1 змінних, які визначаються таким чином
- f(x1, x2, ..., xn,0)=g(x1, x2, ..., xn)
- f(x1, x2, ..., xn, y+1)=h(x1, x2, ..., xn, y, f(x1, x2, ..., xn,y))
Базові функції є примітивно рекурсивними; функції, які отримані застосуванням операторів підстановки або примітивної рекурсії до примітивно-рекурсивних функцій є примітивно-рекурсивними. Для даної примітивно-рекурсивної функції f, Послідовність, що складається з базових функцій, операторів підстановки, та примітивної рекурсії, які потрібні для отримання функції f, будемо називати програмою для обчислення значень цієї функції.
Введемо в розгляд ще один оператор для утворення нових функцiй.
- 2С. Обмежений оператор мiнiмiзацiї або µ- оператор.
Нехай f(x1,x2,..., xn,y)- деяка частково-визначена функцiя вiд n + 1- ї змiнної i x*1,x*2,..., x*n деякий набiр значень змiнних x1,x2, ...,xn.
Можливi такi випадки:
1)f(x*1, x*2, ..., x*n,y) не приймає значення 0 ні при яких значеннях y
2)f(x*1, x*2, ..., x*n,y) приймаэ значення 0 і y* є мінімальним значенням, при якому )f(x*1, x*2, ..., x*n,y)=0, але існують значення y: y<y*, такі, що значенням, при якому )f(x*1, x*2, ..., x*n,y*)=0, то для всіх y: y<y*, значення f(x*1, x*2, ..., x*n,y) э визначеним відмінним від нуля числом.
Оператор мінімізації дiє наступним чином. Отримавши частково-визначену функцiю f(x1, x2, ..., xn, y), він повертає частково-визначену функцію.
Базові функції є частково-рекурсивними; функції, які отримані застосуванням операторів підстановки, примітивноїре-курсії або мінімізації до частково-рекурсивних функцій є частково-рекурсивними. Частково-рекурсивна функція, яка визначена для всіх значень змінних називається загально-рекурсивною. Згідно концепції К. Гьоделя алгоритм це програма обчислення значень деякої частково-рекурсивної функції.
Теза Чорча. Клас алгоритмічно (механічно) обчислювальних функцій збігається з класом частково-рекурсивних функцій.
Якщо частково-визначена на множині Nn функція А(х1 ...,хn) є примітивно-рекурсивною (загально-рекурсивною, частково-рекурсивною) і приймає лише значення 0 та 1, то , А(х1 ...,хn) називається примітивно-рекурсивним (загально-рекурсивним, частково-рекурсивним) предикатом. n- арне відношення R визначене на множині N+ називається примітивно-рекурсивним (загально-рекурсивним), якщо таким є його характеристичний предикат.
Лема. Нехай f(x1,x2,... ,хn)- примітивно-рекурсивна (загально-рекурсивна, частково-рекурсивна) функція, тоді множина розв’язків рівняння f(x1,x2,... ,хn) = 0 є примітивно-рекурсивною (загально-рекурсивною, частково-рекурсивною) множиною.
Лема. Графік примітивно-рекурсивної (загально-рекурсивної, частково-рекурсивною) функції є примітивно-рекурсивної (загально-рекурсивної, частково-рекурсивною) множиною.
Лема. Якщо А(x1,x2,... ,хm) таВ(x1,x2,... ,хn)- примітивно-рекурсивні (загально-рекурсивні) предикати, то такими є
А, A
В, А
В; якщо R1, R2
Nk примітивно-рекурсивні (загально-рекурсивні) відношення, то такими є R1
R2, R1
R2.
Введемо операції обмеженого квантування предикатів
А: В1(у, х2, ...,хn) =
х(х < у)А(х,х2, ...,хn), В2(у, х2, ...,хn) =
х(х < у)А(х,х2, ...,хn), при цьому В1(у,х2, ...,хn) = 1 тоді і лише тоді коли для будь-якого z* : z* < у має місце A(z,x2,...,xn) = 1, а В2(у,х2,...,хn) = 1 тоді і лише тоді коли знайдеться z* : z* < у таке, що A(z : *, х2,... , хn) = 1.
Лема. Якщо А примітивно-рекурсивний (рекурсивний) предикат, то примітивно-рекурсивними (загально-рекурсивнимиб частково-рекурсивними) є також і предикати B1(y, x2, . . . , xn), В2(у, х2,...,хn).
Теорема Робінсона. Всі примітивно-рекурсивні функції від однієї змінної можуть бути отримані з функцій N(x),q(x)=х-[
] застосуванням скінченної кількості операцій додавання +, суперпозицій * і оператора примітивної рекурсії J(ітерування функцій) g(х) -> J[g](x), дія якого визначається наступним чином J[g](0)=0, J[g](n+1)=g(J[g](n)) , де g - примітивно рекурсивна функція.
Множина R
N називається рекурсивно зліченною, якщо існує така примітивно рекурсивна функція f= f(x,у), така, що рівняння f(a,x) = 0 (а -параметр, х - невідоме) має розв’язок тоді і лише тоді, коли a
R.
Теорема. Довільна примітивно-рекурсивна (рекурсивна) множина є рекурсивно зліченною. Теорема. Множина R рекурсивно злгченна тоді і лише тоді, коли вона збігається з областю значень деякої примітивно рекурсивної функції.
Теорема. Об’єднання i перетин скінченного числа рекурсивно зліченних множин є рекурсивно зліченною множиною.
Поняття універсальної функції для класу рекурсивних функцій. Довести, що універсальна функція для класу примітивно-рекурсивних функцій однієї змінної не є примітивно-рекурсивною.
Нехай К - деякий клас функцій (наприклад клас примітивно-рекурсивних функцій). Частково визначена функція U(y,x1,x2,... ,xk) називається універсальною функцією для класу К , якщо:
- 1)
a
N+ U(a,x1x2,...,xk)
К
- 2)для довільної функції f
K існує a
N+: U(a,x1x2,...,xk)=f(x1x2,...,xk).
При цьому, число n називають номером функції f(x1x2,...,xk). В якості прикладу, побудуємо універсальну функцію для класу примітивно рекурсивних функцій від однієї змінної. Для спрощення побудови скористаємося теоремою Робінсона.
Згідно цієї теореми довільна примітивно рекурсивна функція є значенням певного терму (функціональної форми), складеного з символів N, q і функціональних символів + , *, J. Визначимо нумерацію v термів індуктивно: v(N) = 1, v(q)=3, v(t1+t2)=2*3v(t1)*5v(t2), v(t1*t2)=4*3v(t1)*5v(t2), v(Jt)=8*3v(t1). Визначимо нову функцію U(n,x)=fn(x), де fn - примітивно-рекурсивна функція, яку обчислює програма, що має номер n, тобто v(fn(x))=n. Оскільки, не всі натуральні числа є номерами термів, то ця функція є частково визначеною. З означення випливає, що
Доозначимо функцію U поклавши: U(n,x) = Z(x). для всіх n, які мають дільники відмінні від 2, 3, 5, а також діляться на 40. Для зручності введемо в розгляд предикат δ(х), який приймає значення 1 саме для таких n. Тоді маємо таке рекурентне означення
де exi(n) - функція, яка повертає степінь, з яким просте число з номером i входить в розклад числа n. Для того щоб за цими формулами можна було вираховувати значення функції U для довільних n та x,треба її визначити в точках (n, 0), n > 0 і в точках (0,x). Покладемо
Теорема. Універсальна функція класу примітивно рекурсивних функцій від однієї змінної не є примітивно рекурсивною.
Доведення.
- Доведення проведемо від супротивного. Припустимо, що U(y,x)- універсальна функція вказаного класу і вона сама є примітивно рекурсивною функцією. Тоді функція від однієї змінної g(x)=U(x,x)+1 також буде примітивно рекурсивною. За означенням універсальної функції п. 2) існує а*
N+: U(a*,x)=g(x)=U(x,x)+1.Покладемо в отриманій рівності х=а* і прийдемо до суперечності U(a*,a*)= U(a*,a*)+1
Машина Тьюринга. Теза Черча. Еквівалентність концепцій алгоритму за Гьоделем та Тюрингом.
Машина Тьюринга складається з плівки, рухливого читаючо-записуючого приладу, програми, яка складається з програм виду
- qiaj
qkalS.
Машина Тьюринга працює покроково. Якщо при роботі машина Тьюринга не знаходить відповідної команди, то вона зупиняється і кажуть про неправильну зупинку. Якщо ж машина зупинилася після виконання команди зупинки, то кажуть про правильну зупинку.
Теза Чорча. Клас алгоритмічно (механічно) обчислювальних функцій збігається з класом частково-рекурсивних функцій.
Теорема. Клас функцій, які обчислюються на машині Тьюринга, співпадає з класом всіх частковорекурсивних функцій.
Щоб довести, що всі частково-рекурсивні функції можна обчислити на машині Тьюринга треба навести програми для обчислення на машині базових функцій та операторів суперпозиції, рекурсії та мінімізації.
Схема доведення в інший бік наступна. Визначимо кодування програм наступним чином:
- код(δ)=0, код(L)=1, код(R)=2, код(qiaj
qkalS)=(i,j,k,l,код(S)).
- код(δ)=0, код(L)=1, код(R)=2, код(qiaj
Тоді код програми, яка складається з команд с1,...,сs визначимо як натуральне число (код(с1), ..., код(cs)).
Назвемо кодом конфігурації машини Тьюринга, яка описується словом ai1, ..., qjaip, ..., air число (i1, ..., ip, ... , ir, j, p).
Послідовність конфігурацій ω0, ω1, ..., ωu, в яких послідовно знаходиться машина М, ω0
M, ω1
M, ...
M, ωu назвемо обчисленням, якщо в останній конфігурації міститься команда зупинки. Кодом обчислення ω0, ω1, ..., ωu назвемо число ( код(ω0), код(ω1), ..., код(ωu)).
Далі треба довести, що відношення T'k(e,x1, ..., xk, y)
y - код обчислення на машині Тьюринга програми, номер якої дорівнює е, початку з конфігурації 0q11x10...01xk+10 рекурсивне і існує загальнорекурсивна функція U1(y), яка по будь-якому коду y обчислення, яке закінчується конфігурацією виду 0q01z+10 β видає результат цього обчислення. Тепер залшається відмітити, що б-якій обчислювальній на машині Тьюринга функції f:Nk
N справджується нерівність f(x1, ..., xk)
U1(μ y T'k (e, x1, ..., xk, y))
Алгоритмічно-нерозв’язні проблеми. Проблема застосовності для машин Тьюринга або визначенності чвсткової функції в точці. Класичні алгоритмічно-нерозв’язні проблеми.
Якщо теза Чорча є справедливою, ми повинні визнати наступне.
Якщо вдається довести, що не існує машини Тьюринга(частково-рекурсивної функції), яка могла б вирішити певну проблему, то ця проблема є алгоритмічно нерозв'язною, тобто для неї не існує загального алгоритму вирішення.
Однією з класичних таких проблем є проблема застосовності для машин Тьюринга або визначенності часткової функції в точці.
Припустимо, що такий алгоритм існує. Якщо W(n,x)- універсальна частково-рекурсивна функція класу частково-рекурсивних функцій від однієї змінної, то згідно концепції К. Гьоделя, має існувати частково-рекурсивний предикат А такий, що
Побудуємо частково-рекурсивну функцію B(x)=μ[A(x,x)+t=0] (2).
З означення випливає, що В(х) є визначеним в точці х і приймає значення 0 тоді і тільки тоді, коли А(х,х)=0, для всіх інших х значення В(х) не визначено. Отже
Оскільки В(х) є частково-рекурсивною функцією, то існує номер n* N: W(n*,x) = B(x)(3).
Чи визначено значення функції В(х) в точці n*? Якщо так, то цим значенням може бути лише 0, а тоді 0 = В(n*) = W(n*,n*), звідки, згідно (2), А(n*,n*) = 0, а за означенням (1) предиката А, маємо що значення W в точці (n*,n*) не є визначеним. Але тоді (див. (3)) і значення функції В в точці n* також є невизначеним.
Таким чином припустивши існування алгоритму, що відповідає на питання чи визначена дана частково-рекурсивна функція в даній точці ми прийшли до суперечності.
Деякі інші класичні алгоритмічно-нерозвязні проблеми: визначення по формулі числення предикатів чи є вона тотожно-істинною; на вхід подається поліном
a(x,y)
Z[x,y] , чи існує алгоритм, який би по коефіціентам поліном визначав би чи є у нього цілі корені(10-та проблема Гільберта).

