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

Брошюра FLOGOL-2

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

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

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

d -отношения – единственно.

Обозначим через (S ) множество всех связанных подсетей связан-

ной сети S . Построить его можно, например, выбирая в качестве мно-

жеств точек этих подсетей всевозможные подмножества точек сети S , со-

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

вольное подмножество элементов S (включающее, как минимум, все те элементы S , которые имеют в качестве своей некоторой входной либо выходной точки хотя бы одну точку, не включенную в выбранное под-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

множество). Очевидно, что

 

( S (S ))

S S . Более того, любая связанная

сеть

 

 

имеет единственную связанную безэлементную подсеть

 

0 , при-

S

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чем

 

(S )

представляет собой решетку по отношению порядка

 

 

с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 .

 

 

 

 

 

 

 

наименьшим элементом

S

 

и наибольшим элементом S

 

 

 

 

 

 

 

Т е о р е м а

2.11. Необходимым и достаточным условием сильного реля-

ционного включения

 

 

 

 

 

является существование для всякой сети

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

из

такой сети

S

в

 

 

, что

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(S ) , т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( S

)( S

 

)S

 

(S ) .

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Достаточность. Очевидно, что если для всякой сети из

 

в

 

 

суще-

ствует сеть, не меньшая ее в сильном реляционном смысле, то

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Необходимость. Если связанные безэлементные основные подсети

 

S 0

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S 0

сетей

S и

S , соответственно, не совпадают, то,

согласно теореме

 

 

 

 

 

 

 

 

 

0 ,

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0 ,

 

 

 

 

2.9, S 0 S

и,

 

т.к.

 

S

 

S

и

S S

 

то

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. Отсюда для этого случая следует и

S

S

 

для всех

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

условие

необходимости,

т.к. для любой безэлементной сети

S 0

S 0

. Если же

 

0

 

0 , то для доказательства необходимости нам

S

S

потребуется понятие интерпретации, индивидуальной для произвольной связанной сети S . Обозначим задающую ее интерпретацию элементов ба-

зиса через . Пусть

 

 

 

S

P, I ,O, E,G , где

G – полный dif -граф.

 

S

 

 

 

О п р е д е л е н и е 2.22.

S R { Ie ,Oe | R, IeOe E} для всех сор-

 

 

 

 

 

тов R

элементов базиса, полагая, что в качестве носителя выбрано мно-

жество

P точек сети

S .

 

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

Пусть

Pл – подмножество либеральных точек сети

S .

Л е м м а 1 .

S { (I ), (O) | для всех перестановок на P }.

 

S

л

Доказательство. Полагая, что для любой разметки (см. определение ре-

ляционной интерпретации сети) ( p) p для всех p P \ Pл , а проекция

 

на подмножество

либеральных точек – произвольная перестановка

на

P , получим, что

(I ), (O) S . Для всех других разметок

 

л

S

условия в определении реляционной интерпретации сети не выполняются,

и, следовательно,

выполняется утверждение леммы.

Л е м м а

2 .

Для произвольной связанной сети

S той же арности, что и

 

 

 

 

 

 

S ,

S

 

S , если и только если

S – подсеть S .

S

 

S

 

 

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

Очевидно, что для выполнения условия леммы необхо-

 

 

 

 

 

 

димо, чтобы в S

было не меньше точек, чем в

S , иначе при мощности

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

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

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

носителя, равной

 

| P |,

S

а

 

 

S

. Так как

S

свя-

 

 

 

 

 

 

 

S

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

занная сеть, то равенство разметок точек

 

p1

 

и

p2 означает, что и

 

p1 и

p2 – одна и та же точка, а неравенство разметок – что

p1

и p2

– различ-

ные точки. Отсюда следует, что для того, чтобы

d -отношение

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

не оказалось пустым, все элементы сети

 

 

S должны быть элементами се-

 

(с точностью до точечного изоморфизма). Это означает выполнение

ти S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

первого условия того, что S – подсеть

 

 

S . Второе условие – совпадение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

входов и, соответственно, выходов сетей

 

S

 

и

S – также будет выпол-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

S 0

S 0 .

 

 

 

 

 

 

 

Из леммы 2 следует и требуемое доказательство необходимости для

рассматриваемой теоремы 2.11. Действительно,

для каждой сети

 

 

 

 

S

 

 

 

следует рассмотреть индивидуальную интерпретацию

 

. В соответствии

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S '

 

 

 

 

 

 

с леммой 1, для любой перестановки

 

 

на множестве либеральных точек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сети

 

S

 

 

 

 

 

S

 

 

и,

следовательно,

 

 

 

(I ),

(O )

 

 

 

 

 

 

 

 

 

 

 

 

S '

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(I ), (O ))

 

. Так как

 

, то (I ), (O ) " , а

 

 

 

 

S '

 

 

 

 

 

 

 

 

 

 

 

 

 

S '

 

 

 

 

согласно лемме 2, это возможно только в случае, если существует сеть

 

 

 

 

 

 

 

 

S

 

, являющаяся подсетью

S

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

 

 

 

С л е д с т в и е. Исчисление

R I C полно на множестве ациклических

схем.

 

 

 

 

 

Обобщенные правила вывода второго исчисления – сильного реляци-

онного включения произвольных сетевых языков – формулируются в гра-

фической (сетевой) форме. Первое правило равносильно аксиомам 18,19

RIC:

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

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

Если S1 и S 2 – сетевые языки одинаковой арности, то

( S1 S 1 )( S2 S 2 )S1 S2 .

S 1 S 2

Второе правило равносильно аксиоме 17:

 

 

 

 

 

 

{p , p } G

 

.

 

 

 

 

 

{S} S {[ p

/ p ]S, P, I ,O, E,G {p , p } } S

 

Аксиома 16 «работает» в процессе отождествления точек сети при выполнении операций последовательной композиции сетей и подстановки сети в сеть вместо ее некоторого элемента.

'

ci

 

ci

"

 

 

 

для всех

c(0,1)

B ;

 

 

 

 

 

i

т

 

 

 

 

 

для всех

c(mi ,1)

B , m 0 ,

 

 

 

 

 

 

 

 

i

т

 

 

 

(для всех

 

 

 

 

 

'

 

 

"

x(0,1)

B

т

B

x j

 

x j

 

 

j

 

 

н

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

сi

xmi

'

 

 

 

 

x1

сi

xmi

"

)

'

 

"

 

 

 

Рис. 2.19. Правило вывода по индукции для сетевых языков в конструктивном базисе.

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

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

2.11.Примеры индуктивных доказательств эквивалентности сетевых языков в конструктивных базисах.

Пусть и – сетевые языки в некотором конструктивном базисе,

заданные с помощью сетевых КС-грамматик с аксиомами

и , соот-

ветственно, и нам требуется доказать, что

 

для эрбра-

э

э

 

новской интерпретации э элементов терминального базиса этих грамма-

тик. Так как деструкторы выразимы в рекурсивном языке с основной сиг-

натурой { ,#, } с помощью конструкторов и комбинаторных констант,

то можно считать, что терминальный базис содержит только элементы, ин-

терпретируемые как конструкторы:

B {с(n1 ,1)

,c(n2 ,1) ,...}.

Не ограничивая

 

 

т

1

2

 

общности, будем считать, что

и

 

имеют арность

1,n . Так как

комбинаторная константа

 

 

может быть

определена как

{x(1,1) (сi x сi )}, то, согласно правилу вывода по индукции (прави-

ci C

ло П4 для языков рекурсивных схем), для сетевых представлений получим следующие правила для отношений и (рис. 2.19):

Воспользуемся этим правилом для доказательство коммутативности сложения, определенного в примере 1 (рис. 2.7) в базисе {N (0,1) , S (1,1) }.

Вначале докажем равенство (задача 1), показанное на рис. 2.20.

Доказательство иллюстрирует рис. 2.21, откуда непосредственно следует

N

A

 

=

Рис. 2.20. Задача 1.

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

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

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

торов (тотальность, функциональность, функциональность деструкторов,

ортогональность разных конструкторов) и рекурсивная подстановка пра-

вых частей правил грамматики вместо элементов нетерминальных сортов.

Докажем также, что имеет место эквивалентность, представленная на рис. 2.22 (задача 2). Доказательство представлено на рис. 2.23.

N

а)

N

A

N

=

б)

 

N

A

x

 

 

 

 

=

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

N

 

A

 

N

 

 

 

S

 

A

 

 

 

x

S

 

 

S

 

 

 

 

 

 

x

S

N

A

 

 

x

 

S

 

x

S

Рис. 2.21. Решение задачи 1.

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

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

S

A

 

A

S

 

 

=

 

 

Рис. 2.22. Задача 2.

 

 

S

A

 

 

A

а)

 

S

S

N

 

 

 

N

б)

Пусть

 

S

A

 

A

 

 

 

=

 

S

 

 

x

x

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

S

A

S

A

 

 

 

 

 

x

S

 

x

S

=

 

 

 

A

S

x

S

 

x

S

A

S

Рис. 2.23. Решение задачи 2.

Наконец мы уже можем доказать коммутативность сложения (задача

3, рис.2.24). Доказательство иллюстрирует рис. 2.25. Приводить сети к од-

ному входу в явном виде нет необходимости – просто доказательство по

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

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

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

дальнейшем может потребоваться индукция еще по одному входу или вы-

A

A

 

=

Рис. 2.24. Задача 3.

A

а)

N

б) Пусть

 

 

A

 

=

N

 

 

согласно решению задачи 1

A

 

A

x

=

x

 

 

Тогда

 

 

 

 

 

A

 

 

A

 

x

S

 

S

 

 

 

x

S

S

по предположению

A

x

S

x

A

=

 

S

=

 

согласно решению задачи 2

x

=

S

A

 

S

Рис. 2.25. Решение задачи 3.

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

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

ходу сети и т.д.

ЛИТЕРАТУРА

1.Кутепов В.П., Фальк В.Н. Функциональные граф-схемы алгоритмов и их эквивалентные преобразования // Киев: Труды Первой Всесоюзной конференции по программированию. Изд. Института Кибернетики АН УССР, 1968.

2.Фальк В.Н. Исследование эквивалентности схем программ средствами языка схем отношений // Программирование, 1982. №6.

3.Фальк В.Н. Формальная модель языков программирования FALGOL – тридцать лет спустя // Изв. РАН. Теория и системы управления. 2009. №1.

4.Фальк В.Н. Языки схем отношений // Формальные модели параллельных вычислений. Новосибирск, 1988.

5.Кутепов В.П., Фальк В.Н. Направленные отношения: теория и приложения // Изв. РАН. Техническая кибернетика, 1994. №4,5.

6.Фальк В.Н. Теория направленных отношений и ее приложения // Автореф. дисс. … докт. техн. наук. -М: МЭИ. -2001.-40 с.

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

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

ОГЛАВЛЕНИЕ

 

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

ПРОГРАММИРОВАНИЯ ...............................................................................

1

2.1. Графические представления схем d -отношений. ...........................

1

2.2. Базисы и сети. ..........................................................................................

4

2.3. Элементарные сети.................................................................................

7

2.4. Операции композиции сетей. ...............................................................

7

2.5. Свободные и связанные сети. Вложение сетей. ................................

9

2.6. Сетевые языки.......................................................................................

11

2.7. Сетевая интерпретация рекурсивных схем d -отношений..........

14

2.8. Реляционная интерпретация сетевых языков................................

16

2.9. Примеры задания сетевых языков и их реляционной

 

интерпретации..............................................................................................

17

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

 

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

26

ЛИТЕРАТУРА .................................................................................................

39

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