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

Брошюра FLOGOL-1

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

1.ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

Взаключение этого параграфа покажем эквивалентность задания ре-

курсивных схем с использованием оператора рекурсии и в форме системы уравнений.

Пусть A – рекурсивная схема d -отношений. Произведем переиме-

нование операторных переменных в A так, что для всех операторов они

будут попарно различны и не будут совпадать со свободными переменны-

ми схемы A . Не ограничивая общности, будем считать, что входящие в

A операторы имеют вид {x1 A1 },...,{xk Ak } . Полагая A0 A, преобра-

зуем A к эквивалентной форме задания в виде конечной системы уравне-

ний вида xi

A'i ,i 0..k , такой, что

A'i – результат замены в

Ai каждого

внешнего (т.е. не являющегося частью другого входящего в Ai

оператора)

вхождения в нее оператора

{xi Ai }

на соответствующую операторную

переменную

xi . Очевидно, что для любой интерпретации

свободных

переменных значение переменной

x0

в минимальном решении этой си-

стемы уравнений в интерпретации

 

 

A .

 

 

 

 

 

 

 

 

 

 

Пусть,

наоборот, теперь задана

система

 

уравнений вида

xi Ai ,

i 0.. k, где переменная x0

представляет интересующую нас схему

A d -

отношений, причем в правых частях уравнений не используется оператор рекурсии. Полагая, что Ai(k ) Ai , последовательно, для всех j k, k 1,...,1, осуществим исключение из системы j -х уравнений:

каждая новая система уравнений будет иметь вид

xi Ai( j 1) , i 0.. j 1,

где

Ai( j 1) [{x j Aj ( j ) } / x j ] Ai( j ) (результат

подстановки схемы

{x j

Aj ( j ) } в правые части первых ( j 1) уравнений системы вместо всех

 

 

 

3

Здесь и далее мы предполагаем следующий порядок убывания приоритета

 

операций композиции: {}, , , ,#, , , , что позволяет опускать некоторые скобки в задании схем d -отношений.

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

вхождений переменной x j ). Наконец, искомую рекурсивную схему A

определим как {x0 A0(0) }.

1.6.Комбинаторные d -отношения.

О п р е д е л е н и е 1.6 . d -отношение R

называется комбинаторным, ес-

ли оно является фиксированной точкой

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

 

на

носителе

D : (R) R для любого всюду определенного на

D взаимно-

однозначного отображения

. Класс комбинаторных

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

носителе

D обозначим R к , полагая, что сам носитель ясен из контекста

(фактически нас интересует только его мощность).

 

 

 

 

 

Т е о р е м а 1.1. Всякое комбинаторное

d -отношение

R Rк

арности

 

 

определяется множеством Com пар Eq, Dif , где

Eq – не-

n , n

 

 

 

 

 

 

 

 

 

 

ин-

которое отношение эквивалентности на множестве Ind 1..(n

n )

дексов, а

Dif – множество ребер графа на факторе множества

Ind

по от-

ношению

Eq ( Dif (Ind /

Eq){2} ):

 

 

 

 

 

 

R

{ 1... n' , n' 1... n' n" | ( i Ind) i D &

 

 

 

 

 

 

( Eq,Dif ) Com

 

 

 

 

 

 

 

 

( i, j Ind)((Eq(i, j) i j ) & ({i / Eq, j / Eq} Dif

i

j ))}.

 

Пустое множество Com задает пустое комбинаторное d -отношение.

Комбинаторное d -отношение, индуцированное одноэлементным множе-

ством Com , назовем простым. Класс простых комбинаторных d -

отношений на D обозначим R кп .

Среди простых комбинаторных d -отношений особо выделим следу-

ющие d -отношения 4:

4 Здесь и далее мы не будем, если это не приводит к недоразумениям, различать обозначения констант (символов языков) и соответствующих d -отно- шений (денотатов этих констант).

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

1) тождественные n, n -арные,

n 0 , d -отношения

{ , |

Dn }. Очевидно, что

n

 

 

 

 

 

 

 

 

 

 

– правая и левая единица операции последо-

 

 

 

 

 

 

 

n'

 

 

n"

 

 

 

 

вательной композиции

d -отношений: R n',n" R R

;

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

2)

{ , }. – правая и левая единица операции парал-

лельной композиции: # R R R# ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

n

.

3) пустые n , n

-арные d -отношения, n ,n

0, обозначаются

 

 

n n – правые и левые единицы для операции объединения

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

n' n" R n ,n R R n n ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4) универсальные n ,n

-арные

d -отношения, n ,n

0, обозначают-

ся n n . n n

– правые и левые единицы для операции пересечения

d -

отношений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n n R n ,n R R n n

 

 

 

 

 

 

 

 

 

 

Т е о р е м а 1.2. Количество различных комбинаторных

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нечно для любой арности n ,n

, n ,n

0 .

 

 

 

 

 

 

 

Выделим в множестве простых комбинаторных d -отношений следу-

ющее подмножество R кпэ

элементарных d -отношений:

 

 

 

 

 

 

R кпэ { , , , , , , } 5,

где { , },

{ , | D}

{ , | D},

5 Хотя в определении этих d -отношений участвует носитель D , мы не отражаем его в изображении соответствующих констант, полагая, что D известен из контекста.

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

{ , | D},

{ , | D},

{ , | D & D & },

{ ' ", " ' | ' D & " D}.

Т е о р е м а 1.3. R кп K (A

) , где

 

00

(R кпэ ,{ ,#}) .

 

 

00

 

 

 

Т е о р е м а 1.4. R к K (A

) , где

0

(R кпэ ,{ ,#, }).

 

0

 

 

 

Комбинаторные d -отношения из

R кпэ являются независимыми по

операциям последовательной и параллельной композиции, если не ставит-

ся никаких ограничений на мощность

N носителя D . Однако, например,

при

N 0 класс

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

D

включает только

 

 

 

и пустые

d -отношения

n

 

n

для всех

 

 

0

, и поэтому

 

1

 

0

,

0

1

 

 

n ,n

 

 

 

,

1 2 ,

2 1 , 1 1

 

, 2 2 . Напротив, для

N 0

 

 

не

является

независимой

константой: .

 

Константа

 

эквивалентна 1 1

для

N 2 ,

для

 

N 2 и

 

1 1

(см.1.6) для

N 2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

1.7.Дефинициональные расширения.

Согласно теоремам 1.3 и 1.4 мы можем вводить в рассмотрение любые комбинаторные d -отношения путем задания их по определению. Пока-

жем,

например, каким образом через элементарные комбинаторные d -

отношения из

 

R кпэ

с помощью операций композиции могут быть опреде-

лены

аналогичные

им комбинаторные d -отношения любой арности

 

 

 

 

0.

 

n , n

 

, n ,n

 

 

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

 

 

 

Пусть

n 0.

Определим сначала тождественное

n, n -арное

d -

 

 

 

 

 

 

n

 

 

0

 

 

 

 

n 1

n

 

отношение

 

 

: a)

, b)

 

# ,

где

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

n

 

 

 

 

d -Отношения

 

{ , | Dn }

 

и { , | Dn }

определим так:

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

n 1

n

 

n 1

n

 

 

 

, # ,

# .

 

 

 

 

Универсальное

 

 

 

 

 

 

 

d -отношение

 

 

 

 

n ,n -арное

 

n

 

n

{

 

 

| ' D

n

&

 

D

n

}

определяется

так:

 

 

,

 

 

 

 

n

n

n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

Остальные константы:

n

{ , | Dn },

n

{ , | Dn },

n

{ , | Dn & Dn & },

n' n" { , | Dn & Dn }

могут быть определены следующим образом:

 

 

 

n

 

n

1)

0 n n 0

, n 1 n

( # 1 n ) ( n n # ) ,

 

 

 

 

n

 

 

1 n 1 (1 n # ) ( # ) ;

 

0

 

n 1

n

n

2)

 

 

, ( # ) ( # n 1 # ) ,

 

0

 

n 1

n

n

3)

 

 

, ( # 1

n # ) ( # ) ,

 

0

 

n 1

 

n

4)

 

n n

#

# .

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

 

Нижеследующее дефинициональное расширение определяет

n,1 -

арное комбинаторное

d -отношение выделения

i -го компонента кортежа:

|n

 

 

i 1

 

 

n i

 

 

 

 

 

 

 

 

 

 

# #

.

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обратное ему отношение обозначается так:

n |

1

.

 

 

 

|n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

 

Константа

n

 

n

 

 

0

 

 

 

d -отношение

арности

 

 

 

, n ,n

 

 

 

 

 

) определяется

через пустое

(0,0) -арное

d -отношение

n , n

 

: n

 

n

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

, причем

 

 

 

 

 

 

и-

нимальное решение уравнения

{x x} , где

x

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

(0,0) .

может

 

быть выражено

и

без

применения

оператора

рекурсии:

 

 

 

 

 

 

для

пустого

 

носителя

и

(

#

) , в противном случае.

 

1.8.Основные сигнатуры.

Помимо сигнатуры 0 , определим также как основные: сигнатуру

1 ({ , ,

, ,

}, { , #, , }), и производные от них сигна-

'

'

, полученные исключением константы

 

и добавле-

туры 0 и

1

нием константы к 0

и 1 , если в соответствующем языке не исполь-

зуется оператор рекурсии.

 

 

 

 

 

 

 

 

Т е о р е м а

1.5 .[R баз ] ? [R баз ] ? и

[R баз ]

?

[R баз ]

?

для

? { , }.

 

 

D

0

D

1

D

'0

D

'1

 

 

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

 

 

 

 

 

 

 

 

 

1. Переход от

0 к

1 :

 

 

 

 

 

 

 

 

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

?

?

a) очевидно, что R1 R2 (R1 # R2 ) для любых d -

отношений R1 , R2 (здесь и далее ?

может использоваться при изображе-

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

мого по контексту натурального числа. Например, в данном случае уточ-

 

n

 

n

нение могло быть таким: R(n ,n ) R(n ,n ) (R # R ) );

1

2

1

2

b) константа выражается в 0

так: . Таким об-

разом, все компоненты сигнатуры 1 выразимы в

0 .

2. Переход от 1 к 0 :

 

 

( # ) ( # ) ,

 

 

( # ) ( # ) ,

 

 

( # ) ( # ) ( # ) ( # )

.

Для сигнатур '0 и '1 доказательство аналогично. Теорема доказа-

на.

Основные сигнатуры в определенном смысле полны (с учетом сфор-

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

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

ные нами операции композиции d -отношений:

?

R1 R2 (R1 # R2 ) ,

?

R1 R2 (R1 # R2 ) ,

 

?

 

?

 

 

 

 

 

R1 R2

(R1 # R2 ) ,

 

 

 

 

n

 

n

n

n

n

n

n

n

R 1 ( #

) (

# R #

) (

 

#

) .

Т е о р е м а 1.6.

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

{R 1 | R [{R ,...,R }] ?

} [{(R ) 1,..., (R ) 1}] ? .

 

 

 

 

 

 

1

k

0

1

k

0

 

 

 

 

 

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

осуществляется

определением отображения

Inv :

A ?0

A ?0

, применяемого к схемам индукцией по синтаксической слож-

ности. Пусть : X X – взаимно-однозначное отображение на множе-

стве переменных, такое, что для всех

x X

арности

 

 

(x)

тоже

n , n

 

 

 

 

 

:

 

 

 

 

 

 

 

имеет арность n , n

 

 

 

 

 

 

 

 

1) для базисных комбинаторных констант сигнатуры

0 :

 

 

 

Inv( ) ,

Inv( ) , Inv( ) ,

 

 

 

Inv( ) ,

Inv( ) , Inv( ) ,

 

 

 

 

2)Inv (x) (x) ,

3)Inv (E1 E2 ) Inv(E2 ) Inv(E1 ) ,

4)Inv (E1 # E2 ) Inv(E1 ) # Inv(E2 ) ,

5)Inv (E1 E2 ) Inv(E1 ) Inv(E2 ) ,

6)Inv ({x E }) { (x) Inv(E )}.

Очевидно, что для всякого R

 

E

 

'

Inv (E) R 1

, где для

 

 

 

 

 

 

всех x X

' (x) ( x ) 1 . Применяя те же построения в обрат-

ную сторону, получим доказательство теоремы.

1.9.Конструктивные d -отношения.

В этом разделе вводится класс так называемых конструктивных d -

отношений. Для общего случая многосортного носителя D Dt каждое

t T

Dt определяется как индуктивный класс объектов, построенный из неко-

торого конечного множества исходных объектов применением конечного числа операций к другим, уже построенным, объектам. Причем для всяко-

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

го d Dt можно сказать, является ли он исходным, а если это неверно, то применением какой единственной операции и к каким объектам он полу-

чен. Указанные операции будем называть конструкторами. Очевидно, что всякий построенный таким образом класс объектов будет конструктивным и рекурсивно-перечислимым. Можно также показать, что введенные выше операции композиции d -отно-шений обладают тем свойством, что, бу-

дучи примененными к рекурсивно-перечислимым d -отношениям ( d -

отношениям, графики которых рекурсивно перечислимы), они порождают

также рекурсивно-перечислимые

 

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

 

 

 

 

1.9.1. Определение класса конструктивных

 

d -отношений. Пусть зада-

но множество символов конструкторов С {ci

| i 0..k},

k 0 ,

и множе-

 

 

 

 

 

ство C

символов парных им деструкторов –

операций, обратных кон-

структорам. C каждым конструктором

ci

 

(деструктором

 

ci ) связана его

арность

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

1, ni

),

ni 0. Без ограничений общно-

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

что среди конструкторов

 

существует хотя бы один

(0,1) -арный конструктор

c0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

Конструкторы и деструкторы интерпретируются как

d -отношения,

заданные на носителе D э

– эрбрановском универсуме, определенном как

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

индуктивный класс:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) если

n 0 , то

c Dэ

, 2) если ,

2

,...,

n

Dэ ,

c C

и n 0 ,

 

 

 

i

 

 

 

 

 

 

 

i

C

 

 

 

 

1

 

 

 

 

C

 

i

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

то c

...

n

Dэ

, 3) других элементов в

D э

, кроме определенных в п.1

1 2

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и п.2, нет.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Положим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c {

 

...

n

,c

...

n

|

j

Dэ

, j 1..n }

,

 

 

 

i

1 2

 

 

 

 

 

i 1 2

 

 

 

C

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

c { c

 

...

n

,

...

n

|

j

Dэ

, j 1..n }.

 

 

 

i

i 1 2

 

 

 

1 2

 

 

 

C

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

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

1. ВВЕДЕНИЕ В ТЕОРИЮ НАПРАВЛЕННЫХ ОТНОШЕНИЙ

О п р е д е л е н и е 1.7. Класс

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

C

K (A

) , где

 

C

(C

 

 

 

 

 

C

 

 

 

 

,{ , #, }), назовем классом

d -отношений, конструктивных относитель-

С

но C .

 

 

 

 

 

 

 

1.9.2. Основные результаты. Вначале докажем теорему о комбинаторной полноте С .

Т е о р е м а 1.7. Комбинаторные константы: ,

,

,

,

,

, , , принадлежат RC .

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

{x

((x#...#x) ci )},

 

 

 

 

ci C

n раз

 

 

 

 

i

 

 

 

 

 

 

 

 

 

{x

(сi (x#...#x))},

 

 

 

 

ci C

ni раз

 

 

 

 

 

 

 

 

 

(сi

сi ) ,

 

 

 

 

ci C

 

 

 

 

 

 

{x ((ci #

ni 1

ni 2

 

 

 

) ( # x ) ( # x # ) ...

 

ci C

 

 

 

 

 

 

 

ni 2

ni 1

 

 

 

 

... ( # x #

) ( x # ) ( # ci ))} ,

 

 

{x (сi (x#...#x) ( #

 

 

2

 

#... # # ) ( # # ...

ci C

 

ni раз

 

 

 

 

 

 

 

 

 

 

2

 

ni 1

ni 1

 

 

 

# # ) ... ( # ) (ci #ci ))}

,

 

 

 

ni 1

ni 1

ni 2

ni 2

 

{x ((сi #ci ) ( # )

(

# # )

...

ci C

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