Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NikitchenkoNEWNEW.doc
Скачиваний:
26
Добавлен:
08.11.2019
Размер:
2.99 Mб
Скачать

5.6 Властивості оператора найменшої нерухомої точки

Операцію взяття нерухомої точки можна трактувати як оператор , де – множина неперервних відображень. Доведемо, що оператор lfp – неперервний. Але спочатку покажемо, що він – монотонний.

Лема 5.10. Відображення – монотонне відображення, тобто для .

Доведення. Нехай . Розглянемо наступні співвідношення:

D

g( )

D

h( )

(Умова )

g(g( ))

D

g(h( ))D h(h( ))

(Монотонність g та умова )

g(k)( )

D

…D g(k-m)(h(m) ( ))…D h(k) ( )

(Монотонність g та умова )

D

Оскільки lfp(g)= та lfp(h)= , то .

Теорема 5.3 (неперервність lfp). Якщо – -область, то відображення - неперервне, тобто .

Доведення. Неперервність означає, що для довільного ланцюга має виконуватись співвідношення

.

Спочатку доведемо, що . Оскільки , то за лемою 5.10 для довільного , а отже .

Тепер доведемо, що . Для цього покажемо, що – нерухома точка для (тобто, ). Дійсно

.Позначимо , . Неважко довести, що засновки леми 5.2 виконуються, тому

= .

Оскільки – найменша нерухома точка, то вона менша за будь-яку нерухому точку для . Тому .

Отже ми довели, що .

Таким чином, досліджено основні властивості оператора найменшої нерухомої точки, який може вважатися одним із уточнень рекурсії.

5.7. Застосування теорії ннт

Найважливішими способами визначення нескінченних об’єктів (множин, послідовностей, функцій і таке інше), є рекурентні, індуктивні та рекурсивні способи. Оскільки перші два способи є частковими випадками рекурсії, то звідси випливає важливість теорії найменшої нерухомої точки (ННТ), як одного із способів уточнення рекурсії, в різних застосуваннях. Тут ми розглянемо застосування ННТ для уточнення синтаксису та семантики мов програмування.

5.7.1. Уточнення синтаксису мов програмування

Синтаксис мов програмування переважно задається за допомогою БНФ, граматик та інших подібних формалізмів. Сама структура правил БНФ говорить про можливість застосування теорії ННТ для уточнення формальних мов, що задаються БНФ.

У попередньому розділі було розглянуто приклад подання породжуючої граматики як системи рівнянь.

Так, правила задають мову, яка є розв’язком рівняння . Але для того, щоб стверджувати існування розв’язку, необхідно дослідити область, на якій задаються такі рівняння.

Розглянемо слабку алгебру формальних мов, в якій задано наведене рівняння (відображення ):

, де

– множина мов, та  – операції об’єднання та конкатенації.

Достатніми умовами існування розв’язків рекурсивних рівнянь в алгебрах наведеного типу є умови для множини бути -областю, та для операцій об’єднання та конкатенації буди неперервними. Доведемо виконання цих умов.

Лема 5.11. Множина – -область

Доведення. Щоб множина була -областю треба визначити на ній частковий порядок та показати його повноту та вказати найменший елемент.

Для множини частковим порядком буде включення, порожня множина буде найменшим елементом, а об’єднання множин буде супремумом, тобто є така відповідність:

1) –

2) –

3)

Очевидно, що всі необхідні умови -області виконуються для так введеного часткового порядку.

Лема 5.12. Операції об’єднання та конкатенації – -неперервні.

Доведення. Розглянемо операцію об’єднання . Згідно леми 5.5 досить довести неперервність об’єднання за кожним аргументом. Не обмежуючи загальності, доведемо неперервність за першим аргументом.

Нехай – ланцюг з множини ,  , . За визначенням, . Щоб довести неперервність, треба показати, що . Дійсно, для довільного елемента x маємо:

.

Отже, – неперервна операція.

Розглянемо тепер операцію . За визначенням,

.

Доведемо, що . Маємо, що

.

Отже, операція також неперервна.

Таким чином, множина формальних мов над певним алфавітом є -областю, а операції слабкої алгебри формальних мов – неперервними. Похідні операції також будуть неперервними. Тому рекурсивні визначення (рівняння) над цією алгеброю завжди мають найменший розв’язок. Цей розв’язок, за теоремою КТК, можна знайти методом послідовних наближень.

Доведемо, що якщо за КВ-граматикою побудувати відповідну систему рекурсивних визначень, то розв’язок цієї системи співпаде з мовою, породженою граматикою.

Отже, нехай G = (N, Т, Р, S) – КВ-граматика, (NT)*. Задамо відображення s:(NT)(N2T), вважаючи, що s(A)=A, AN, та s(a)={a}, aT. Це відображення розповсюджуємо на послідовності символів з алфавіту (NT), вважаючи, що s(x1x2xn)=s(x1)s(x2)s(xn). Тепер маємо, що s:(NT)*(N2T)*. Сукупність усіх правил A1,A2,…, Ak з граматики G з одним і тим же нетерміналом у лівій частині замінюємо на рекурсивне визначення A= s(1)s(2)…s(k). Такі визначення будуємо для всіх нетерміналів. Отриману систему рекурсивних визначень над слабкою алгеброю формальних мов позначимо E(G). Відображення, що задається правими частинами цієї системи позначимо G, його складову за нетерміналом A позначимо A, а найменшу нерухому точку цього відображення за змінною (нетерміналом) S позначимо lfpS(G).

Приклад 5.1. Для граматики G = ({S, A, B, C, D}, {a, b, c), P, S), де P складається з наступних правил:

SAB | CD | 

A| aA

B| bBc

C| aCb

D| cD,

отримуємо наступну систему рекурсивних визначень:

S=ABCD  {}

A={}  {a}A

B={}  {b}B{c}

C={} {a}C{b}

D={}  {c}D.

Доведемо тепер, що мова, породжена КВ-граматикою, співпадає з найменшим розв’язком системи рекурсивних визначень (рівнянь), побудованих за цією граматикою.

Теорема 5.4. Для КВ-граматики G = (N, Т, Р, S)

L(G)= lfpS(G).

Доведення. Нехай L(k)A(G) – множина термінальних ланцюжків породжених з нетермінала A деревами виводу глибини не більше k. Індукцією за k доводимо, що

L(k)A(G)=(k)A().

Дійсно, для виводів довжини 0 маємо, що L(0)A(G)= та (0)A()==.

Припускаючи, що індуктивна гіпотеза вірна для k, доведемо її справедливість для k+1. Дійсно, мова L(k+1)A(G) складається з термінальних ланцюжків t, які виводяться з A деревами виводу глибини не більше k+1. Такі дерева породжуються деяким правилом Ax1x2xnP, а виводи з нетермінальних символів з x1, x2, , xn мають глибину не більшу k. Термінальні ланцюжки, що породжуються з таких нетерміналів x входять у мову (k)x(). З побудови (k+1)A() випливає, що ланцюжок t буде належати цій мові. Також є вірним і зворотне: якщо t(k+1)A(), то tL(k+1)A(G). Індуктивна гіпотеза доведена. Звідси випливає справедливість теореми. ▄

Таким чином, для подання формальних мов можна використовувати формалізм рекурсивних визначень та теорію ННТ. Правда, цей формалізм є більш потужним, якщо допускається використання нескінченних мов у визначеннях. Разом з тим неважко довести, що для слабко рекурсивних визначень (із скінченними мовами у визначеннях), найменшими розв’язками будуть лише КВ-мови.

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

Тепер розглянемо використання теорії ННТ для подання семантики мов програмування.

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