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

Брошюра FLOGOL-2

.pdf
Скачиваний:
18
Добавлен:
28.06.2014
Размер:
1.25 Mб
Скачать

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

F

S

 

N

 

F

 

S

M

F

 

A

N

M

N

M

 

A

 

M

 

S

 

 

 

S

A

A

S

 

 

 

Рис. 2.7. Пример 1.

 

 

A

M

Рис. 2.8. Пример 2.

P

N

P

P

S

S

P

S

N

P

 

 

A

S

 

Рис. 2.9. Пример 3. Конструктор упорядоченной пары.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 21

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

С

 

С

N

S

S

 

 

С

 

 

N

S

S

 

С

A

С

Рис. 2.10. Пример 4.

App

Nil

App

Cons

Cons

App

Рис. 2.11. Пример 5.

X

Y

Y

 

Y

Y

A

 

 

 

B

 

 

C

Рис. 2.12. Пример

С

 

С

 

С

 

 

 

 

 

 

 

 

 

 

С

 

 

 

a1

d1

 

 

 

 

 

 

 

 

С

 

 

a2

d2

С

N

 

 

 

 

 

 

 

 

 

m { a1 , d1

, a2 , d2

,..., an , dn },

 

 

ai ' ai"

при i' i".

an

 

dn

Рис. 2.14. Представление состояний памяти типа «куча».

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 22

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

IR

F

F

/

2

I

 

2

I

U

U

 

 

 

 

 

 

 

F

 

 

 

 

| |

 

 

 

 

 

 

 

 

2

 

 

U

 

2

I

I

 

I

Рис. 2.13. Пример 7.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 23

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

R

C

C

R

C

C

R

W

C

C

W

C

C

C

C

C

W

New

New

 

 

C

 

 

Ad

C

 

 

C

 

N

C

C

New

Рис. 2.15. Пример 8. Операции с памятью типа «куча».

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 24

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

R

P

PS

W

P

PS

P

PS

R

P

PS

I

R

I

S

I

S

W

P

PS

I

W

PS

I

 

PS

New

Nat

P

 

 

PS

 

N

N

S

P

S

Рис. 2.16. Пример 9. Операции над памятью типа «куча» в универсуме натуральных чисел.

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 25

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

New

I

Nat

P

P

PS

P

PS

Рис. 10. Пример 4.

 

PS

 

New

P

 

PS

PS

New

I

Рис. 2.16. Пример 9 (продолжение).

2.10. Формализация отношений реляционного включения и эквива-

лентности сетевых языков.

 

 

 

 

О п р е д е л е н и е 2.18. Если

S 1 и

S 2 – сетевые языки одинаковой арно-

сти в базисе B , то язык S 2

включает язык

S 1

в сильном смысле, обо-

значается S1 S 2 , (соответственно,

язык

S 1

эквивалентен в сильном

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 26

 

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

 

смысле языку

S 2 , обозначается

S1 S 2 ), если

для любой интерпретации

 

сортов

 

элементов базиса

B

 

S

1

S

2

(соответственно,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

1

 

 

 

S

2

, т.е. выполняется

включение в обе стороны). В случае,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

когда

 

S 1

и

 

S 2

 

содержат в точности по одной сети: S1 {S1} и S 2

{S2 },

будем писать

S1 S2

и S1 S2 .

 

 

 

 

 

 

 

 

 

 

Т е о р е м а

 

2.5. Если

S 1 и

S 2

b -языки, то

S1 S 2 , тогда и только то-

гда,

когда для всех сетей

S1 S1

существует сеть

 

S2 S 2 , такая,

что

S1 S2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т е о р е м а 2.6. Если

S 1 и

S 2

l -языки, то

S1 S 2 , тогда и только то-

гда,

когда

 

для всех сетей

S1 S1

существует сеть

 

S2 S 2 , такая,

что

S1 S2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т е о р е м а 2.7. Если

S1 и

S2 – сети одинаковой арности в базисе

B , то

S1 S2 , тогда и только тогда, когда

S1 S2 .С л е д с т в и е . Если S1

и

S2

b -сети, то

 

S1 S2 , тогда и только тогда, когда

S2 – подсеть сети S1 .

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

( # ) ( #

)

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.17. Проверка аксиомы 15.

 

 

 

Вернемся теперь к описанному в первой части статьи исчислению

RIC

 

сильного включения схем

d -отношений. Введение сетевой интер-

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

27

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

претации схем d -отношений позволяет раздельно рассмотреть два

существенно более простых исчисления – исчисление сетевой эквивалент-

ности (включения) схем d -отношений и исчисление сильного реляцион-

ного включения сетевых языков. Первое из этих исчислений обозначим

NEC ( Net Equivalence Calculus). В него войдут аксиомы RIC , кроме аксиом

16,17,18,19, и те же правила вывода. Доказательство правильности аксиом,

связанных с константами (остальные, определяющие схемы как множества

сетей, очевидны), легко осуществляется путем рассмотрения r - и n -

представлений схем d -отношений. Например, аксиома RIC

15. ( # ) ( # )

проверяется согласно рис. 2.17 (в центре изображена сеть, представляющая правую и левую части равенства).

Полнота NEC на подмножестве одноэлементных сетевых языков

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

Перейдем теперь к доказательству полноты исчисления

RIC эквива-

лентности ациклических схем

d -отношений.

 

 

Т е о р е м а 2.8. Если

| D | Chr(G) 4 , то

для любого

 

S – пустое

 

 

 

 

 

 

 

d -отношение, иначе

 

S S ( S

– основа сети

S ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Напомним, что для связанной сети S

P, I ,O, E,G

Chr(G) | P | .

Т е о р е м а 2.9. Две различные связанные основные безэлементные сети одинаковой арности представляют ортогональные d -отношения.

4 Chr(G) – хроматическое число графа G .

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 28

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

Доказательство.

Если

основные

сети

S

 

 

 

 

 

 

 

 

 

 

и

 

P , I ,O , ,G

 

 

 

S

 

 

 

,G

 

 

одинаковой арности m,n

различны, то суще-

 

P , I ,O ,

 

ствуют разные индексы

i1 ,i2

(i1 i2 ) , такие, что

pri

 

 

 

 

 

 

 

 

и

(I O ) pri

(I O )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

pri

 

 

 

,

 

 

 

 

 

 

 

и

pri

 

 

 

 

 

 

 

(I O ) pri (I O )

либо pri (I O ) pri

(I O )

 

(I O ) pri (I O ) .

 

1

 

2

 

 

 

 

 

 

1

2

 

 

 

1

 

 

 

2

 

 

 

Так как сети

S

 

 

и

S

 

– связанные, то

 

любая

пара

 

 

 

 

 

,

 

 

 

 

d ,d

 

d ' Dm ,d Dn

не может быть одновременно и элементом

d –отношения

S , и элементом

d -отношения

S , что и требовалось доказать.

 

 

Пусть

и

 

– конечные множества сетей, представляющие ацик-

лические схемы

d -отношений

 

 

 

 

 

 

 

 

 

 

. Базис

A

и A

:

A ,

A

этих сетей есть

 

 

 

 

 

 

 

и так как в ациклических схемах нет

FV (A ) FV ( A ) ,

связанных переменных, то переменные этих схем одновременно являются

и сортами элементов рассматриваемых сетей.

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

ционную интерпретацию при любой реляционной интерпретации базиса,

множество связанных сетей (напомним, что, по определению, связанные сети имеют полные dif -графы на множествах точек этих сетей).

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

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

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 29

2. СЕТЕВЫЕ ЯЗЫКИ ФУНКЦИОНАЛЬНОГО И ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ

точек, не связанных ребром в d i f -графе, в сетях

 

S и

S

на единицу

меньше, чем в сети

S .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

S '

 

 

S "

 

 

 

 

 

 

 

 

p'

 

 

p"

 

 

 

 

 

 

p'

 

p"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{p', p"} GS

 

 

p' p"

 

 

 

{p', p"} G

 

 

 

 

 

 

 

 

 

 

 

{S} {S ', S "}

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.18. Приведение множества сетей к канонической форме.

 

 

Т е о р е м а

2.10. Для любого сетевого языка S 1

существует эквивалент-

ный ему в сильном смысле

b -язык S 2 .

 

 

 

 

 

 

 

 

 

Доказательство следует по индукции из существования нормализован-

 

ного представления конечных сетевых языков.

 

 

 

 

 

 

О п р е д е л е н и е

2.20.

Нормализованным представлением

ацикличе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

ской схемы

A

d -отношений назовем эквивалентную ей схему A

Ai ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где все

Ai

– простые схемы, такие, что

Ai – различные сети – эле-

менты нормализованного представления

A .

 

 

 

 

 

 

С л е д с т в и е

1 (теоремы 2.9). Все возможные пары простых комбина-

торных

d -отношений

 

 

в нормализованном представлении комбина-

Ai

 

торного d -отношения A

либо сравнимы (по отношению сильного вклю-

чения), либо ортогональны.

 

 

 

 

 

 

 

 

 

 

О п р е д е л е н и е

2.21. Каноническим представлением комбинаторного

d -отношения

назовем

такое его нормализованное

представление

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A Ai

, что все

Ai попарно ортогональны (существование такого пред-

i 1

ставления непосредственно выводится из следствия 1).

FLOGOL: ЯЗЫК И СИСТЕМА ФУНКЦИОНАЛЬНО-ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ 30