Научная статья на тему 'Алгоритм проверки эквивалентности линейных унарных рекурсивных программ на упорядоченных полугрупповых шкалах'

Алгоритм проверки эквивалентности линейных унарных рекурсивных программ на упорядоченных полугрупповых шкалах Текст научной статьи по специальности «Математика»

CC BY
92
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОВЕРКА ЭКВИВАЛЕНТНОСТИ / РЕКУРСИВНЫЕ ПРОГРАММЫ / ПОЛУГРУППЫ / EQUIVALENCE CHECKING / RECURSIVE PROGRAMS / SEMIGROUPS

Аннотация научной статьи по математике, автор научной работы — Подымов В. В.

В работе предложен метод решения проблемы эквивалентности линейных унарных рекурсивных программ. Основная его идея состоит в сведении проблемы эквивалентности к известным задачам на графах и задачам теории групп. Выделен класс программных семантик, для которых проблема эквивалентности рассматриваемых программ разрешима за полиномиальное время с использованием предложенной методики.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The equivalence checking algorithm for linear monadic recursive programs defined by means of ordered semigroup frames

The equivalence checking technique for solving monadic recursive programs equivalence problem. The key idea is to reduce this problem to well-known graphand group-theoretical problems. The class of program semantics based on the ordered semigroups is described for which the equivalence problem is decidable in polynomial time.

Текст научной работы на тему «Алгоритм проверки эквивалентности линейных унарных рекурсивных программ на упорядоченных полугрупповых шкалах»

УДК 519.6

В. В. Подымов1

АЛГОРИТМ ПРОВЕРКИ ЭКВИВАЛЕНТНОСТИ ЛИНЕЙНЫХ УНАРНЫХ РЕКУРСИВНЫХ ПРОГРАММ НА УПОРЯДОЧЕННЫХ ПОЛУГРУППОВЫХ ШКАЛАХ

В работе предложен метод решения проблемы эквивалентности линейных унарных рекурсивных программ. Основная его идея состоит в сведении проблемы эквивалентности к известным задачам на графах и задачам теории групп. Выделен класс программных се-мантик, для которых проблема эквивалентности рассматриваемых программ разрешима за полиномиальное время с использованием предложенной методики.

Ключевые слова: проверка эквивалентности, рекурсивные программы, полугруппы.

1. Введение. В широком смысле проблема эквивалентности программ формулируется следующим образом: требуется выяснить, имеют ли заданные программы одинаковое поведение при одинаковых условиях работы. Формализуя различными способами понятия программы, поведения и условий работы, можно получить множество различных постановок проблемы эквивалентности.

В данной работе в качестве формализации понятия программы используется модель рекурсивных программ, предложенная в неопубликованных заметках к семинару IBM в 1969 г., о чем упоминается, например, в [1]. В этой модели поведением программы считается процесс построения цепочек базовых операторов и применение этих операторов к состояниям данных. Условия работы задаются детерминированными динамическими шкалами, определяющими множества состояний данных и интерпретацию базовых операторов. Две программы считаются эквивалентными, если в результате их работы в одинаковых условиях совпадают конечные состояния данных, вычисляемые этими программами. В работе [1] была показана разрешимость проблемы сильной эквивалентности линейных унарных рекурсивных программ. Сильная эквивалентность программ подразумевает совпадение результатов их вычислений на любой динамической шкале.

В работе [2] была обоснована взаимная сводимость проблем эквивалентности унарных рекурсивных программ и детерминированных магазинных автоматов. Однако вопрос о разрешимости проблемы эквивалентности программ на произвольных шкалах и тем более о ее алгоритмической сложности оставался открытым.

В работе [3] был предложен метод исследования проблемы эквивалентности унарных рекурсивных программ, предоставляющий полиномиальные алгоритмы, разрешающие проблему эквивалентности для семантик, определяемых уравновешенными шкалами. Цель данной работы — обобщение метода, предложенного в [3], на более широкий класс семантик, определяемых упорядоченными полугрупповыми шкалами.

2. Основные понятия. В данном разделе вводятся синтаксис и семантика унарных рекурсивных программ. Содержательный смысл определений и их соответствие реальным функциональным программам подробно обсуждается в работах [1, 3-5].

Записью S*, где S — произвольное множество, будем обозначать множество всех слов в алфавите S, включая пустое слово А. Записью \h\, где h — слово в некотором алфавите, будем обозначать длину этого слова.

Считаем заданными конечное множество базовых функций 21, конечное множество логических условий С, бесконечное множество заголовков множество термов Term = (21U5) *, множество базовых термов BTerm = 21*.

2.1. Синтаксис унарных рекурсивных программ. Унарной рекурсивной программой (далее — просто программой) будем называть систему и = (F,D,T), где F С § — конечное множество заголовков, D : F х С —> Term — описание функций, Т € Term — запрос программы. Сложность

1 Факультет ВМК МГУ, асп., e-mail: valdusQyandex.ru

|-7г| программы тг = (F,D,T) определим следующим образом: |-rr| = \Т\ + ^ \D(f,8)\. Программу

feF,se<c

тг = (Р, Р,Т) будем называть линейной, если термы Т и D(f,8) для всех / G Р, 8 G С содержат не более одного вхождения символов из Терм i! будем называть 5-преемником терма t в программе тг = (Р,Р>,Т), где 5 G С, если t = hft2, t' = hD(f,6)t2, где / G P, tut2 G Term.

Будем говорить, что заголовок f € F непосредственно ссылается на заголовок /' (на терм А), если для некоторого 8 из множества С выполнено соотношение /' G Р>(/, 5) (соответственно 7г(/, 5) G G BTerm). Бинарное отношение на множестве 5U {А} определим следующим образом: /' Г' тогда и только тогда, когда Р является заголовком и непосредственно ссылается на Р'. Запись f* означает транзитивное замыкание отношения | -. Положим /= [Р\ / Р}, /f* = {/| / f* P}. Заголовок f € F будем называть:

• автореферентным, если верно соотношение / G /f*;

• существенно рекурсивным, если множество /f* содержит хотя бы один автореферентный заголовок;

• завершаемым, если верно соотношение A G /f*;

• граничным, если множество /f* не содержит ни одного автореферентного заголовка;

• крайним, если множество ffw содержит хотя бы один существенно рекурсивный заголовок и либо хотя бы один граничный, либо А.

Также для краткости формулировок будем считать А граничным завершаемым заголовком. Если при этом из контекста ясно, какой программе принадлежит функциональный символ, упоминание этой программы при классификации будет опускаться.

2.2. Семантика унарных рекурсивных программ. Шкалой будем называть систему Т = = (S,sq,R), где S — непустое множество состояний данных, s0 G S — начальное состояние, R : S х Ш S — функция преобразования данных. Функцию R можно естественным образом расширить с множества 21 на множество BTerm следующим образом: R*(s, А) = s, R*(s, ah) = R*(R(s, a),h). Если для состояний данных si, s2 шкалы Т и некоторого базового терма h выполняется соотношение S2 = R*(s\,h), будем говорить, что S2 достижимо из si- Если при этом состояния si и s2 различны, будем записывать этот факт как si s2- Записью [/г]^-, где h G BTerm, будем обозначать состояние данных Р*(«о, К). Если шкала Т ясна из контекста, вместо записи [h]j: будем использовать запись [h). Шкалу Т = (S, «о, R) будем называть упорядоченной, если отношение является отношением строгого частичного порядка, и полугрупповой, если множество S с бинарной операцией о ([/ii]o[/i2] = [/ii/i2]) образует конечно порожденный моноид с множеством образующих 21 и нейтральным элементом [А]. Описанный моноид будем обозначать записью М

Динамической моделью (далее — просто моделью) будем называть всякую систему М. = (J7, £), где Т = (S, so, Р) — шкала и £ : S ^ С — оценка логических условий. Будем говорить, что модель М. базируется на шкале J7, если М = для некоторого

Трассой Тг программы и = (Р, Р, Т) называется последовательность термов, начинающаяся с запроса Т и такая, что каждый следующий терм последовательности является преемником предыдущего в программе ж. Записью Тг(7г, 8), где 8 = 8\, 82, ■ ■ ■ — последовательность логических условий, обозначим трассу программы тг, в которой (i + 1)-й терм является ^-преемником г-го. Также будем говорить, что последовательность 8 задает трассу Тг(7г, 8) программы тг. Конечную трассу программы, оканчивающуюся базовым термом, будем называть терминальной, а оканчивающуюся небазовым термом, не имеющим преемников в этой программе, — тупиковой.

Вычислением программы тг = (Р, Р,Т) в модели Л4 = будем называть терминальную, ту-

пиковую или бесконечную трассу этой программы, в которой i-ш терм t и (i + 1)-й терм i! связаны следующим соотношением: если t = ¿1/^2, где t\ G BTerm, / G Р, i2 G Term, то t' = t\D{f, £([ii]))i2- Заметим, что у любой программы в любой модели существует ровно одно вычисление. Если вычисление программы тг в модели Л4, базирующейся на шкале Т, является терминальным и оканчивается термом t, то результатом вычисления объявляется состояние данных [tj. В противном случае вычисление безрезультатно.

Будем говорить, что трасса Тг программы ж реализуется в модели Л4, если она является префиксом вычисления данной программы в данной модели. Трассы Tri, Тг-_. программ ж\, ж 2 соответственно будем называть совместными на шкале Т, если они обе реализуются в некоторой модели Л4, базирующейся на шкале Т.

2.3. Эквивалентность унарных рекурсивных программ. Программы ж\, Ж2 считаем эквивалентными в модели Л4, если либо вычисления обеих программ в данной модели безрезультатны, либо результаты вычислений обеих программ в данной модели определены и совпадают.

Программы 7Ti, 7Г2 считаем эквивалентными на шкале Т (обозначается ж\ ж 2), если они эквивалентны в каждой модели, базирующейся на этой шкале.

2.4. Нормальная форма. Будем говорить, что программа ж = (F,D,T) представлена в нормальной форме или нормализована, если

• Т G F,

• для всех / € F, 8 € С терм D(f, 5) либо является базовым, либо представим в виде D(f, 5) = af't,

где а G 21, /' G F, t G (2t U F)*,

• в множестве F выделен такой заголовок f-mf, что для любого 8 € С верно равенство D(f-mf, 6) =

= o/inf, где а € 2t, и

• все заголовки, содержащиеся в множестве F \ {/inf}, являются завершаемыми.

Заметим, что трасса нормализованной программы не может быть тупиковой.

В работе [3] были доказаны свойства программ, которые переформулируются во введенных обозначениях следующим образом.

Утверждение 1. Существует полиномиальный по времени работы алгоритм, строящий по программе ж эквивалентную ей на любой шкале нормализованную программу ж', имеющую сложность, не превосходящую квадрата сложности исходной программы. Кроме того, если программа ж линейна, то и программа ж' также линейна.

Данное утверждение позволяет без ограничения общности рассматривать только нормализованные программы.

Утверждение 2. Пусть Тг — трасса нормализованной программы и Т — упорядоченная шкала. Тогда трасса Тг реализуется в некоторой модели Л4, базирующейся на шкале Т.

Утверждение 3. Пусть Т— упорядоченная шкала, Л4 = — модель, Tri, Ti'-j — трассы

нормализованных программ. Тогда трассы Tri, Ti'-j являются совместными в том и только в том случае, если для любых элементов t\ = t^fit", ¿2 = ¿2/2^2 трасс Tri, Ti'-j соответственно и следующих за ними элементов t\ = t[D(fi, 6i)t'{, ¿2 = t'2D(f2, ^2)^2 из равенства = [t'2] следует равенство 81 = 82-

Заметим, что данное утверждение в [3] сформулировано только для конечных трасс, однако его доказательство остается верным и для случая бесконечных трасс.

4. Разрешимость проблемы эквивалентности линейных унарных рекурсивных программ. В данном разделе приводится метод исследования проблемы эквивалентности линейных унарных рекурсивных программ на упорядоченных полугрупповых шкалах. Основная идея метода состоит в следующем. Для заданной шкалы Т предполагается наличие полугруппы W, ставящей в соответствие паре состояний данных шкалы их "степень различия". С использованием этой полугруппы для пары программ ж\, ж2 строится ориентированный помеченный граф TWli7T2, описывающий всевозможные совместные вычисления программ в моделях, базирующихся на шкале Т. Затем показывается, что для проверки отношения ж\ Ж2 достаточно рассмотреть лишь конечный фрагмент графа ГЖ17Ж2.

Рассмотрим произвольную упорядоченную полугрупповую шкалу Т.

Критериальной системой для шкалы Т назовем четверку К = (W,U,w+,w*), где W — конечно порожденный моноид с бинарной операцией * и нейтральным элементом е, U — подмоноид моноида W, w+,w* fr И' и выполнены следующие условия:

1) существует такой гомоморфизм (р (определяющий гомоморфизм критериальной системы) моноида

М? х М? в моноид U, что равенство ад+ *cp(si, s2) *w* = e выполнено в том и только в том случае,

если si = s2;

2) уравнения w+*w*X = ей X*w*w* = е, где ад G U, имеют не более одного решения относительно X.

В дальнейших построениях считаем заданными упорядоченную полугрупповую шкалу Т, критериальную систему К = (W,U,w+,w*) для этой шкалы, определяющий гомоморфизм (р этой системы, операцию * и нейтральный элемент е моноида W и нормализованные линейные программы

7ri = (Fi,Di,Ti),7r2 = (F2,D2,T2).

Утверждение 4. Пусть si, s2, S3, S4 — такие состояния шкалы Т, что ад+ * 9?(si,s2) = = ад+ * (p(s3, s4). Тогда si s2 s3 s4 и s2 si s4 s3.

Справедливость утверждения вытекает из определения достижимости состояний шкалы и свойств гомоморфизма (р. Данное утверждение позволяет разбить элементы класса смежности w+*U на четыре подкласса: U= = {ад+ *<p(si, s2)| si = s2}; U< = {ад+ *<p(si, s2)| si^jrs2}; Uy = {ад+ *<p(si, s2)| s2^jrsi}; U± — все остальные элементы класса смежности.

Опишем граф совместных вычислений TWuW2 программ 7Г2.

Вершинами графа являются четверки вида (Gi, G2, ад, го), где Г, G /•", U {A}, i G {1, 2}, w G w+ * U, w G U *w*. Корнем графа объявляется вершина (Ti,T2,w+ ,w*).

Разобьем множество вершин графа ТЖ1уЖ2 на пять непересекающихся классов:

V= = {(GuG2,w,w)\ (Gi G Fui G {1, 2}) k (ад G 17=) & (ад G U *ад*)};

V± = {(Gi,G2, (Gi € Fui G {1,2}) k (ад G U±) k (ад G U *ад*)};

V4 = {(Gi, G2, ад, го)| (Gt G Fui G {1,2})&(ад G U^) k (ад G ?7*ад*)}и

U{(Gi, G2, ад, го)| (Gi G Fx) k (G2 = A) k (ад G ад+ * U) k (ад G U *ад*)};

Vy = {(Gi, G2, ад, го)| (Gj б^.гб {1,2})&(ад G Uy ) k (w G ?7*ад*)}и

U{(Gi, G2, ад, го)| (Gi = A) k (G2 G F2) k (ад G ад+ * U) k (ад G ¿7* ад*)}; — все остальные вершины графа.

Дуги графа TWuW2 помечены парами (di,d2), где di,d2 G £U {е}. Различные дуги, исходящие из одной вершины, помечены различными парами. Множество меток дуг, исходящих из вершины v = (Gi, G2, ад, го), имеет следующий вид: {(<5, <5)| б G £}, если v G F=; {(5i,52)| 61,82 G £}, если v G VI; {(5,e)| 5 G €}, если v G {(e,5)| 5 G €}, если v G V"^; 0, если v G V®. Дуга, исходящая из v и помеченная парой (di, d2), ведет в вершину (G[, G2, ад * s2), 9?(si, s2) * ад), где

• G\ = Gj, Si = Si = e, если dj = А, г G {1, 2};

• G- = f, Si = [a], Si = [t], если d* G С и dj) = aft, f G Fj, % G {1, 2};

• G\ = X, Si = [h], Si = e, если dj G С и /1 = Dj(Gj, dj) G BTerm, г G {1, 2}.

Маршрут в графе будем называть корневым, если он начинается в корне графа. Записью

П„, где v — вершина графа будем обозначать выбранный произвольным образом корневой

маршрут графа TWli7T2, подводящий к вершине v.

Вершину (Gi, G2, ад, го) графа TWliW2 будем называть опровергающей в двух случаях: 1) ад * го ф е (терминальная опровергающая вершина); 2) Gi и G^-i — соответственно существенно рекурсивный и граничный заголовки (нетерминальная опровергающая вершина). Бесконечный корневой маршрут в графе TWliW2 будем называть опровергающим, если почти все вершины маршрута имеют вид (Gi, G2, ад, го), где Gi ф /inf, G2 ф /inf и либо ад G U< (для всех вершин маршрута), либо ад G Uy. Как будет показано далее, неэквивалентность программ равносильна наличию опровергающих вершин и маршрутов в графе совместных вычислений.

Рассмотрим произвольный корневой маршрут П в графе TWu7r2. Пусть метки дуг этого маршрута, выписанные в порядке следования, имеют вид (df,d2) (df,d2) .... Тогда ¿-проекцией маршрута, где i G {1,2}, назовем подпоследовательность последовательности {d^}^, из которой удалены элементы е. Проекцией маршрута П назовем пару (Pri,Pr2), где Рг, — ¿-проекция этого маршута.

Лемма 1. Пусть П — конечный корневой март,рут графа TWuW2, оканчивающийся в вершине (Gi, G2, ад, го). Тогда проекция маршрута П есть пара (5i,52), где Tr(7ri,5i) и Тг(7г2,52) — совместные трассы программ и\ и 7Г2 соответственно, оканчивающиеся термами tiGit[, i2G2i2, где ад = ад+ * (p(ti,t2), w = 9?(ii,i2) * ад*.

Лемма 2. Пусть fi — бесконечный корневой маршрут графа TWli7r2. Тогда проекцией маршрута fi является пара (<5i, <5э), где Tr(7ri, <5i), Tr(7r2,52) — совместные трассы программ и\ и и2 соответственно.

Доказательства лемм 1, 2 проводятся индукцией по длине маршрута с использованием утверждений 2, 3 и определения графа совместных вычислений.

Лемма 3. Пусть Tri = Tr(7ri, <5i) и Tr2 = Тг(7Г2, 82) — совместные вычисления программ и\ и Ж2 соответственно. Если оба вычисления Tri, Тг-_. конечны, то в графе TWuW2 существует конечный корневой маршрут, проекцией которого является пара (ii,^)- Если вычисление Тг, бесконечно, а вычисление Tr3_j конечно, то в графе TWuW2 существует корневой маршрут, проекцией которого является пара (8[,8'2), где 8[ = 8i, а ö'3_i является префиксом последовательности 5з_г-

Доказательство леммы 3 состоит в индуктивном построении искомого маршрута. На каждом шаге построения к маршруту добавляется вершина таким образом, чтобы 1- и 2-проекциями маршрута были префиксы последовательностей 5i, 82 соответственно.

Теорема 1. Соотношение и\ ц2 выполняется тогда и только тогда, когда в графе TWuW2 нет ни одного опровергающего маршрута и из корня не достижима ни одна опровергающая вершина.

Доказательство. Необходимость. Если из корня графа )7Г2 достижима терминальная опровергающая вершина v, то по лемме 1 проекции маршрута fi„ задают совместные вычисления программ 7Ti, ж2, имеющие различные результаты. Если из корня графа TWliW2 достижима нетерминальная опровергающая вершина и, то маршрут fi„ можно продолжить до бесконечного маршрута fi, проекции которого по лемме 2 задают совместные терминальное и бесконечное вычисления программ ж2. Если в графе TWliW2 содержится опровергающий маршрут, то по лемме 2 для некоторого г G {1,2} его ¿-проекция Tr(7Tj, 8i) и (3 — г)-проекция Tr3_j задают совместные конечную и бесконечную трассы программ iii, кз-i соответственно. При этом трасса Tr(7Tj,5j) оканчивается термом tGt', где G — завершаемый заголовок. Используя утверждения 2, 3, несложно убедиться, что найдется терминальное вычисление Tr(7Tj,5j5), совместное с вычислением Tr3_j.

Достаточность. Предположим, что соотношение 1x1^^1x2 не выполняется. Это означает, что существуют такие совместные вычисления программ ТТ2, что либо оба они конечны и имеют различные результаты, либо одно из них конечно, тогда как другое бесконечно. По лемме 3 в первом случае в графе TWliW2 из корня достижима терминальная опровергающая вершина, во втором случае либо из корня достижима нетерминальная опровергающая вершина, либо в графе содержится опровергающий маршрут. Теорема доказана.

Перейдем к утверждениям, позволяющим ограничить число рассматриваемых вершин графа r^j )7Г2.

Лемма 4. Если из корня графа TWuW2 достижима вершина v = {G\,G2,w,w), где Gi — завершаемый заголовок и G^-i = fmf-, "то и\ тт2.

Лемма 5. Если из корня графа TWuW2 достижима вершина v = {G\,G2,w,w), где Gi, G^-i — существенно рекурсивный и граничный заголовки соответственно, то и\ ж2.

Справедливость лемм 4, 5 обосновывается тем, что можно согласно утверждению 3 продолжить проекции маршрута fi„ до последовательностей, задающих совместные терминальное и бесконечное вычисления.

Лемма 6. Если из корня графа TWliW2 достижимы вершины v' = (Gi, G2, w, iii), v" = = {G\,G2,w,W2), где G\, G2 — существенно рекурсивные завершаемые заголовки и w\ ф W2, то

ТЦ00:РТХ2.

Доказательство. Пусть (8i,82) — проекция маршрута Qv>. Для некоторых <5^, 8'2 последовательности 5i5'i и 8282 задают совместные терминальное и произвольное вычисления. Если последовательность 82 конечна, то, так же приписывая 8[, 82 к проекциям маршрута можно получить две пары совместных терминальных вычислений. Согласно пункту 2 определения критериальной системы, результаты хотя бы одной из пар будут различны.

Лемма 7. Пусть из корня графа TWuW2 достижимы вершины Vj = (Gi,G2,Wj,Wj), где j G G {1, 2,..., n2 + 1}, n = max{|7Ti|, 17Г21 j-), элементы Wj попарно различны и G\, G2 суть существенно рекурсивные завершаемые заголовки. Тогда и\ ж2.

Доказательство. Пусть A/JA, t2f2t2,... — кратчайшая последовательность, в кото-

рой /1 = Gi, fl_ — крайний заголовок и (i + 1)-й терм является ^-преемником г-го. Заметим, что

к\,к2 < п. Составим матрицу размера (к\к2) х (п2 + 1); столбцы которой отвечают парам натуральных чисел (рьрг); Pi < к\, р2 < к2. В j-й строке столбца, отвечающего паре (рьрг); стоит элемент Wj * ip([tp J, [tp2]) * w*. Согласно пункту 2 определения критериальной системы, в каждом столбце матрицы может быть не более одного нейтрального элемента. Так как число строк матрицы больше числа столбцов, одна из строк с номером jQ не содержит ни одного нейтрального элемента. Это значит, что продолжения 1- и 2-проекций маршрута fi„jo на логические условия S} ... и S2 ... S%2_1 соответственно задают совместные трассы. Если Wj0 * ], [í|J) G U^ U U±, то можно совместным образом продолжить полученные трассы до конечного и бесконечного вычислений программ ж2 соответственно. Иначе выполняется Wj0 *ip{[t\i], [í^J) G Uy, и трассы можно продолжить до бесконечного и конечного вычислений программ ж2. Лемма доказана.

Теорема 2. Пусть Т — полугрупповая упорядоченная шкала, К = (W, U, w+, w*) — критериальная система для этой шкалы, и проблемы достижимости состояний шкалы ([hi] -<^[h2}) и равенства элементов W разрешимы за время в(п). Тогда проблема эквивалентности и\ ц2 разрешима

за время o(N(n) • 0(P(n))), где N(n) = 2°(n), Р(п) = 0(п5), п = тах{|тп|2 , |тг2|2}.

Доказательство. Первым шагом работы разрешающего алгоритма является нормализация программ 7Ti, тт2. Затем производится построение связного подграфа графа ГЖиЖ2, начиная с корня. При добавлении очередной вершины в подграф происходит проверка: является ли вершина опровергающей, добавляет ли она в подграф цикл, позволяющий построить опровергающий маршрут, и удовлетворяет ли она с уже добавленными ранее вершинами условиям лемм 4-7. В любом из этих случаев алгоритм останавливается и констатирует неэквивалентность программ. Все описанные проверки

можно сделать за время . По достижении N(n) вершин условие хотя бы одной из лемм 4-

7 будет выполнено, и алгоритм останавливается, констатируя неэквивалентность. Если в подграф нельзя добавить ни одной вершины и нельзя констатировать неэквивалентность, алгоритм останавливается и признает программы эквивалентными. Теорема доказана.

5. Полиномиальная разрешимость проблемы эквивалентности линейных унарных рекурсивных программ. Алгоритм, предоставляемый теоремой 2, в общем случае имеет сложность не менее экспоненциальной. В данном разделе показано, что если моноид W критериальной системы является группой, то можно построить полиномиальный по времени работы разрешающий алгоритм. Далее полагаем, что моноид W является группой.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Лемма 8. Пусть из корня графа TWlíW2 достижимы вершины v:¡ = (Gi,G2,Wj,Wj), где j = = {1, 2,..., п2 + 2}, п = max{|7Ti| , (^гЦ; элементы w~ *w~ попарно различны и G i uG2 — граничные заголовки. Тогда и\ ж2.

Доказательство. Продолжим 1- и 2-проекции маршрута QVl кратчайшим способом до последовательностей, задающих терминальные вычисления. Продолжим 1- и 2-проекции остальных маршрутов QVj теми же логическими условиями. С помощью построения той же матрицы, что и в лемме 7, можно показать, что хотя бы для двух номеров ji, j2 полученные пары вычислений совместны. При этом характеристиками результатов пар вычислений с номерами ji, j2 будут соответственно элементы Wjr * w * Wj1 и w:¡2 * w * w:¡2. По условию леммы полученные характеристики не могут одновременно равняться нейтральному элементу. Лемма доказана.

Лемма 9. Пусть из корня графа TWlíW2 достижимы вершины v:¡ = (Gi,G2,Wj,Wj), где j € G {1,2,...,п2 + 2}, п = max{|7Ti|, l^l); G\ и G2 — граничные заголовки, элементы wj1 * w~l совпадают и из всех вершин, кроме (п2 + 2)-й, не достижима ни одна опровергающая вершина. Тогда из вершины vn2+2 также не достижима ни одна опровергающая вершина.

Доказательство. Предположим, что существует маршрут fi, проходящий через вершину vn2+2 и оканчивающийся в опровергающей вершине, и проекции fi получаются из проекций ílv¡n2+2 дописыванием логических условий <5i, S2. С помощью построения той же матрицы, что и в лемме 7, можно показать, что продолжение проекций маршрута fi„jo на те же <5i, 82 для некоторого jо < п2 + 2 задает совместные трассы. Если при этом опровергающая вершина терминальна, имеем Wj0 * w * Wj0 = е, wn2+2*w*wn2+2 ф е. По условию леммы такого быть не может. Полученное противоречие доказывает лемму.

ТеоремаЗ. Пусть Т — упорядоченная полугрупповая шкала и К = (W, U, w+ ,w*) — критериальная система для этой шкалы. Предположим также, что моноид W является группой и проблемы

достижимости состояний шкалы ([hi] [h2]) и равенства элементов W разрешимы за полиномиальное время. Тогда и проблема и\ ц2 разрешима за полиномиальное время.

Доказательство. Последние две леммы позволяют ограничить полиномом число рассматриваемых вершин вида (Gi, G2, w, w), где Gi, G2 — граничные заголовки. Леммы 4-7 ограничивают полиномом число вершин вида (Gi,G2,w,uj), в которых хотя бы одна из компонент Gi, G2 является существенно рекурсивным заголовком. В остальном разрешающий алгоритм дословно повторяет алгоритм, описанный в теореме 2. Теорема доказана.

СПИСОК ЛИТЕРАТУРЫ

1. Garlend S. J., Luekham D.C. Program schemes, recursion schemes and formal languages // J. Computer and System Sci. 1973. 7. N 2. P. 119-160.

2. Friedman E. P. Equivalence problems for deterministic languages and monadic recursion schemes //J. Computer and System Sci. 1977. 14. N 3. P. 342-359.

3. Захаров В. А. Об эффективной разрешимости проблемы эквивалентности линейных унарных рекурсивных программ // Математические вопросы кибернетики. Вып. 8. М.: Наука, 1999. С. 255-273.

4. Ashcroft Е., Manna Z., Pnueli A. A decidable properties of monadic functional schemes //J. ACM. 1973. 20. N 3. P. 489-499.

5. Котов В.E., Сабельфельд В.К. Теория схем программ. М.: Наука, 1991.

Поступила в редакцию 12.01.12

THE EQUIVALENCE CHECKING ALGORITHM FOR LINEAR MONADIC RECURSIVE PROGRAMS DEFINED BY MEANS OF ORDERED SEMIGROUP FRAMES

Podymov V. V.

The equivalence checking technique for solving monadic recursive programs equivalence problem. The key idea is to reduce this problem to well-known graph- and group-theoretical problems. The class of program semantics based on the ordered semigroups is described for which the equivalence problem is decidable in polynomial time.

Keywords: equivalence checking, recursive programs, semigroups.

i Надоели баннеры? Вы всегда можете отключить рекламу.