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

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

CC BY
232
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММА / ПЕРЕСТАНОВОЧНЫЕ ОПЕРАТОРЫ / ПОДАВЛЯЕМЫЕ ОПЕРАТОРЫ / ЭКВИВАЛЕНТНОСТЬ ПРОГРАММ / КОНЕЧНЫЙ АВТОМАТ / РАЗРЕШАЮЩИЙ АЛГОРИТМ / ПОЛИНОМИАЛЬНАЯ СЛОЖНОСТЬ / PROGRAM / COMMUTING INSTRUCTIONS / ABSORBING INSTRUCTIONS / PROGRAM EQUIVALENCE / FINITE AUTOMATA / DECISION PROCEDURE / POLYNOMIAL TIME COMPLEXITY

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

В статье исследована задача проверки эквивалентности последовательных программ, некоторые операторы которых обладают свойствами перестановочности и подавления. Два оператора считаются перестановочными, если результат их последовательного выполнения не зависит от порядка, в котором эти операторы выполняются. Считается, что оператор b подавляет оператор a, если последовательное выполнение операторов a и b дает такой же результат, что и выполнение одного лишь оператора b. Разрешимость проблемы эквивалентности в исследуемой модели программ была установлена в 1971 г. А.А. Летичевским. Однако с тех пор вопрос о сложности проверки эквивалентности таких программ оставался открытым. Основной результат статьи алгоритм, осуществляющий проверку эквивалентности программ с перестановочными и подавляемыми операторами за время, полиномиально зависящее от размеров анализируемых программ.

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

A polynomial algorithm for checking the equivalence in models of programs with commutation and vast operators

In this paper we study the equivalence problem in the model of sequential programs which assumes that some instructions are commutative and absorbing. Two instructions are commutative if the result of their executions does not depend on an order of their execution. An instruction b absorbs an instruction a if the sequential composition a;b yields the same result as the single instruction b. A.A. Letichevskij in 1971 proved the decidability of equivalence checking problem in this model of programs. Nevertheless a possibility of building polynomial time equivalence checking procedures remains an open problem till nowadays. The main result of this paper is the description of a polynomial time algorithm for checking the equivalence of sequential programs with commutative and absorbing instructions. The paper includes 9 sections. In Section 1 we introduce informally the model of programs under consideration, the equivalence checking problem, and give a brief overview of the preceding results in the study of equivalence checking problem for this model. In Sections 2 and 3 the syntax and a semigroup-based semantics of propositional model of sequential programs are formally defined. The algebraic properties of semigroups of commutative and absorbing program instructions are studied in Section 4. In Section 5 we introduce a graph of joined computations which is the key structure in designing our equivalence checking techniques. In Section 6 and 7 we show that the cumulative absorbing effect of finite sequences of commutative instructions can be specified by means of finite automata; this is another key step in building the decision procedure. In Section 8 we show that equivalence checking of two programs is reducible to a traversal of a bounded fragment of the graph of joint computations of these programs; the latter can be performed in time polynomial of the size of programs to be checked.

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

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

1 В. В. Подымое <valdus(a\yandex.ru > ' В.А. Захаров < zakh (ales. msu.su> 1 Факультет ВАШ, МГУ имели M.B. Ломоносова, 119991 ГСП-1 Москва, Ленинские горы, 2-й учебный корпус 2ПСП РАН, 109004, Россия, г. Москва, ул. А. Солженицына, дом 25

Аннотация. В статье исследована задача проверки эквивалентности последовательных программ, некоторые операторы которых обладают свойствами перестановочности и подавления. Два оператора считаются перестановочными, если результат их последовательного выполнения не зависит от порядка, в котором эти операторы выполняются. Считается, что оператор b подавляет оператор а, если последовательное выполнение операторов а и b дает такой же результат, что и выполнение одного лишь оператора b . Разрешимость проблемы эквивалентности в исследуемой модели программ была установлена в 1971 г. A.A. Летичевским. Однако с тех пор вопрос о сложности проверки эквивалентности таких программ оставался открытым. Основной результат статьи - алгоритм, осуществляющий проверку эквивалентности программ с перестановочными и подавляемыми операторами за время, полиномиально зависящее от размеров анализируемых программ.

Ключевые слова: программа, перестановочные операторы, подавляемые операторы, эквивалентность программ, конечный автомат, разрешающий алгоритм, полиномиальная сложность.

1. Введение

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

подвергается изменению, необходимо следить за тем, чтобы применяемые преобразования не изменяли функций, вычисляемых программой, и не ухудшали вычислительные характеристики программы, такие как быстродействие, объем используемой памяти, размер и др. Большим подспорьем здесь служат автоматические средства проверки эквивалентности и оптимизации программ. Оптимизирующие компиляторы снабжены эффективными процедурами, которые позволяют обнаруживать и устранять недостижимые и бесполезные фрагменты кода, оптимизировать структуру графов потока управления и линейных участков программ, экономить используемую память и пр.[1] Но все эти средства нуждаются в дальнейшем совершенствовании, поскольку во многих случаях они не способны провести глубокую оптимизацию даже простых фрагментов кода. Например, фрагмент программы я,:

if P(z) then {х = /(х); у = у + zj else {х = д(х); х = v + zj; if ! P(z) then {у = у + zj else {x = v + zj

эквивалентен линейному участку 7Г2 : у = у + z; х = v + z , однако современные компиляторы не способны провести оптимизирующие преобразования подобного вида. Поэтому разработка эффективных алгоритмов глубокого семантического анализа и оптимизации программ по-прежнему остается актуальной задачей теории программирования. Для разработки таких алгоритмов выбирается и строится подходящая математическая модель программы таким образом, чтобы интересующая задача анализа или оптимизация программ сводилась некоторой общеизвестной математической задаче, наподобие задачи выполнимости логической формулы [2], вычисления хроматического числа графа [3] или минимизации автомата [4]. Алгоритмы решения этой задачи служат основой для построения процедуры решения соответствующей задачи системного программирования.

Этот подход был впервые предложен работах A.A. Ляпунова и Ю.И. Янова [5,6]. В них была введена и исследована первая математическая модель программ, получившая название схем Ляпунова-Янова. Используя систему эквивалентных преобразований, предложенную в [6] и усовершенствованную в [7], а также взаимосвязь схем Ляпунова-Янова с конечными автоматами, А.П. Ершов впервые применил оптимизирующие преобразования в трансляторе программ на языке Алгол [8], показав плодотворность такого подхода и придав тем самым мощный импульс развития теории схем программ.

Значительно более развитая алгебраическая модель программ, обобщающая схемы программ Ляпунова-Янова, была предложена в статье В.М. Глушкова и A.A. Летичевского [9]. В рамках этой модели можно, в частности, осуществлять эквивалентные преобразования фрагментов программы 7ГХ И7Г2,

приведенных выше. В статье [9] был также предложен эффективный метод оптимизации программ, в котором задача минимизации программы (как по размеру, так и по быстродействию) сводится к задаче проверке эквивалентности схем программ. К сожалению, рекурсивный алгоритм проверки эквивалентности, предложенный в той же статье для некоторых классов моделей программ, имел экспоненциальную оценку сложность и был непригоден для применения на практике. Отсутствие быстрых и практичных алгоритмов проверки эквивалентности схем программ в моделях программ, учитывающих алгебраические свойства операторов, было главным препятствием дальнейшего внедрения результатов и методов теории схем программ в практику системного программирования [10]. Долгое время задача построения быстрых (полиномиальных по времени) алгоритмов проверки эквивалентности схем программ в алгебраических моделях программ не имела успешного решения. Первый результат в этом направлении был получен в статье [11]. Вскоре были предложены общие методы построения полиномиальных по времени алгоритмов проверки эквивалентности схем программ в моделях программ, учитывающих различные алгебраические свойства операторов [12,13]. Два свойства программных операторов оказались в центре внимания - перестановочность и подавляемость. Операторы а и Ь перестановочны, если результат вычисления программы не зависит от порядка выполнения этих операторов (т.е. а;Ь = Ъ; а); оператор а подавляет оператор Ь, если результат выполнения оператора Ь несущественен, если вслед за ним выполняется оператор а (т.е. а;Ь= Ъ). Интерес к этим алгебраическим свойствам программных операторов обусловлен двумя обстоятельствами.

Во-первых, отношения перестановочности и подавляемости операторов выявляются на основе простого синтаксического анализа операторов. Для каждого оператора а легко вычисляются два множества переменных: множество Used(a), состоящее из всех тех переменных, значения которых используются при выполнении оператора, и множество Mod(a), состоящее из всех тех переменных, значения которых изменяются в результате выполнения оператора. Нетрудно убедиться, что для перестановочности операторов а и Ь достаточно выполнимости равенств Used(a) П Mod(b) = 0 , Used(b) П Mod{a) = 0, Mod{a) П Mod(b) = 0, а для того чтобы оператор а подавлял оператор Ь , достаточно выполнимости равенств ¡Jsed{a) П Mod(b) = 0 , Mod(b) £ Mod(a) . На основании этих соотношений можно быстро проверить, что операторы y=y+znx=v+z из примера, приведенного в начале этого раздела, перестановочны, и при этом оператор х = v + z подавляет операторы х = /(х) и х = h(y).

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

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

Проблема эквивалентности программ в алгебраических моделях, учитывающих каждое из этих свойств по отдельности, уже была исследована ранее. В статье [13] описан алгоритм сложности 0(п3) , проверяющий эквивалентность программ с частично перестановочными операторами. Если в модели программ учитывается только отношение подавляемости операторов, то, как показано в работе [14], задача проверки эквивалентности принадлежит классу NЬ. Однако к комбинированным моделям программ общего вида, в которых учитываются оба эти свойства операторов, известные методы построения быстрых алгоритмов проверки эквивалентности оказались неприменимы (за исключением одного специального случая, исследованного в статье [15]).

Основной результат данной работы - описание полиномиального по времени алгоритма проверки эквивалентности произвольных программ с перестановочными и подавляемыми операторами. Статья состоит из 9 разделов. В начале статьи вводится модель пропозициональных последовательных программ. В разделе 2 приведены основные определения синтаксиса этой модели программ, а в разделе 3 определяется семантика этого класса абстрактных программ. Семантика программ определяется в алгебраических терминах на основе моноидов (полугрупп) с определяющими соотношениями (тождествами) перестановочности и подавления. В следующем разделе 4 исследованы наиболее важные для решения задачи проверки эквивалентности программ алгебраические свойства моноидов с тождествами перестановочности и подавления. В разделе 5 введен граф совместных вычислений - основная структура, при помощи которой проводится проверка эквивалентности программ. В этом же разделе доказана теорема 1 о необходимых и достаточных условиях эквивалентности программ; эти условия представлены в терминах устройства графа совместных вычислений анализируемых программ. В разделе 6 исследованы особенности применения тождеств подавления операторов а; Ъ = Ь в контексте перестановочности некоторых операторов. Показано, что эффект подавления операторов в операторных цепочках может быть описан при помощи конечных автоматов. Соответствующее утверждение (лемма 8) является ключевым в построении разрешающего алгоритма. В разделе 7 приводятся утверждения, обеспечивающие полиномиальный обход графа совместных вычислений. Существование такого обхода совместно с упомянутой теоремой 1 обеспечивает полиномиальную разрешимость проблемы эквивалентности программ в рассматриваемой модели вычислений. Описанию этого алгоритма и обоснованию его корректности посвящен раздел 8. В заключительном разделе 9 обсуждаются перспективы практического использования результата этой статьи для решения задач системного программирования, а также возможности дальнейших исследований, развивающих полученный результат.

Описание разрешающего алгоритма и Теорема 2 - основные результаты статьи, - являются заслугой первого из авторов статьи.

2. Основные определения

Далее считаем заданными конечные алфавиты операторов 91 и логических условий К. Слова в алфавите операторов 91 будем называть термами. Запись

будет обозначать зеркальный образ терма к. Последовательной программой, или просто программой, будем называть систему 7г = (I, 1т, 1"иЬ, Т, В), состоящую из конечного множества состояний управления Ь , входа 11П 6 Ь , выхода 1"1и 6 Ь , функции переходов Т\ (V \ /£>и/х&->/ и привязки операторов 21. Под размером тг программы тг

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

Пара состояний управления /,, 12 программы тт образуют шаг вычисления

5

/, —> 12 , если Т(1Л, 8) = 12 . Путем в программе 7Г назовем всякую

последовательность шагов вычисления = 1± -> 12 ->... . Путь назовем полным, если он бесконечен или оканчивается в выходе. Путь, начинающийся во входе программы, назовем ее трассой. Полную трассу назовем вычислением. Записью В(рЬ) обозначим терм б(/,)б(/2) ...; для простоты выкладок полагаем В (7т) = б (/""') = Я, где Я — пустое слово. Определим семантику программ, основываясь на детерминированных динамических шкалах и моделях [16]. Шкала Т = (5,5°,Д) задает множество состояний данных 5 , начальное состояние 6 5 и интерпретации операторов Введем следующее обобщение Д* функции Д с

множества 91 на 91* : И*(5,Х) = б , аИ) = И*(И(б, а), К) . Для краткости вместо Я* (5°, К) будем писать [й].

Модель М=(Т,^) задается шкалой Т = (Б, и оценкой логических

условий %: 5 -» К. Будем говорить, что трасса реализуется в модели Ж, если

5

для любого ее префикса £г -> I верно равенство (([¿г]) = 8. Такую трассу для краткости будем называть трассой в модели Ж. Результатом конечного вычисления ср в модели Ж будем называть состояние данных [ср] . Бесконечные вычисления считаем безрезультатными. Заметим, что в любой модели Ж всегда реализуется ровно одно вычисление программы. Трассы , £г2 в произвольных программах я, , п2 будем называть Т -совместными, где Т — произвольная шкала, если они реализуются в какой-либо модели Ж = (Т,^) . Программы я, , п2 назовем Т -эквивалентными ( пг ~Т п2 ), если все их Т -совместные вычисления имеют одинаковый результат.

Свойства перестановочности и подавляемости операторов естественным образом описываются соотношениями перестановочности ( аЬ = Ъа , где а, Ь 6 91) и подавления (аЬ = Ь, где а, Ь 6 91). Рассматриваемые далее шкалы задаются посредством моноидов 9Л = которые порождаются конечным

множеством образующих 91 и определяются разнообразными семействами соотношений перестановочности и подавления. Элементом (/?} моноида Ю1. порожденным термом И 6 91*, является множество всех термов, которые можно получить из И , применив конечное число раз определяющие соотношения этого моноида. Операция умножения элементов моноида определяется следующим образом: (к) * (д) = (Ид). Указанные моноиды с тождествами перестановочности и подавления будем называть СА-моноидами. Терм И , имеющий наименьшую в классе (/?} длину, будем называть минимальным представителем (класса (к)). Нормой ||5|| элемента 5 моноида будем называть длину минимальных представителей этого элемента. Будем говорить, что шкала Т = (5,5°, К) задается моноидом 9Л = (5\ш,+). если верны следующие соотношения: 5 = 5° = (Я); И^Б.а) = б * (а). Шкалу назовем упорядоченной, если [/? , /?2] Ф ] . Далее будут рассматриваться только упорядоченные шкалы Т(С,А), задаваемые моноидами Щ(С,А) с определяющими соотношениями С и А, где С содержит только соотношения перестановочности и А - только соотношения подавления. На множестве состояний данных упорядоченной шкалы введем частичный порядок: состояние предшествует состоянию б2 (обозначение 5, < б2 ), если д ($1( К) = б2 для некоторого терма И 6 91*. Несравнимость состояний 5,. б2 по отношению порядка < обозначим записью ^ 1

Утверждение 1 [13]. Пусть Т - произвольная упорядоченная шкала. Тогда трассы Ьг2 являются ^-совместными в том и только в том случае, если для

любых их префиксов Ьг[ 1Ъ Ьг2 —> 12 верно следующее: если [¿г, ] = [£т2], то 51 = 62.

В работе [13] предложен метод решения проблема эквивалентности пропозициональных последовательных программ на упорядоченных шкалах Т : для заданных программ я, . п2 и заданной упорядоченной шкалы Т выяснить, верно ли соотношение пг ~т п2. Этот метод будет использован в настоящей статье для построения полиномиального по времени работы (относительно размеров программ) разрешающего алгоритма для упорядоченных шкал Т(С, А), задаваемых моноидами 9Л(С, А).

3. Алгебраические свойства СА-моноидов

В данном разделе сформулированы основные свойства моноидов 9Л (С, Л), которые понадобятся далее для построения алгоритма проверки эквивалентности программ с перестановочными и подавляемыми операторами. Обоснование утверждений этого раздела проводится с

использованием традиционной для теории полугрупп техники доказательств; в связи с ограничениями на объем статьи эти доказательства опущены. Утверждение 2 [17]. СА-моноид Щ(С,А) с множеством определяющих соотношений коммутативности С и подавления А упорядочен тогда и только тогда, когда не существует ни одной пары операторов а, Ъ 6 91, для которой выполняется как равенство аЪ = Ъа в моноиде 9Л(С) с соотношениями коммутативности С , так и равенство аЬ = Ъ в моноиде 9Л(Л) с соотношениями подавления А.

Утверждение 3. Пусть СА-моноид Щ(С,А) упорядочен, и И — такой минимальный представитель, для которого верно [аН] Ф [Л] для некоторого оператора а 6 91. Тогда терм а/г — также минимальный представитель. Будем говорить, что моноид 9Л обладает свойством левого сокращения, если для любых его элементов 5, б2 верно следующее: если 5 * 5, = 5 + . то 51 = 52-

Утверждение 4. Всякий упорядоченный СА-моноид Щ(С,А) обладает свойством левого сокращения.

Утверждение 5. Пусть термы Л, д являются минимальными представителями некоторого элемента упорядоченного СА-моноида Ю1(С, А). Тогда терм д может быть получен из терма И применением только соотношений перестановочности.

Автоматом будем называть систему А = ((), ц(), Т, 1к, Вк). где () - конечное множество состояний, - инициальное состояние, Т\ <2 х 91 -»<2 - функция переходов, 1к - множество меток и Вк - разметка состояний. Далее будем использовать следующие обозначения:

• А(<7, К) - состояние, в которое автомат А переводится словом И из

состояния (7; . А(/1) = А(<7°, /I); ВА(/0 = Ва(А(/1)). Будем говорить, что автомат А распознает подавление операторов, если выполнены следующие условия: 1к = 241: если (/? ,) = (Л2). то А(/?7) = А(й^); ВА(/Г) = {а I <аЛ> = т.

Утверждение 6. Пусть моноид Щ(С,А) упорядочен. Тогда существует автомат, распознающий подавление операторов.

4. Граф совместных вычислений

Пусть заданы упорядоченная шкалу Т(С,Л) = (Б, б0, И) и программы ттк = (¿¿.¿Р, 1°и1:, Т^В^, I 6 {1,2}. Рассмотрим пошаговое построение совместных вычислений программ ттъ 7Г2, организованное следующим образом. В начале вычисления программ трассы пусты. Предположим, что для программ уже построены трассы Ьг2. Если [£г, ] = [£г2], то выбирается произвольное логическое условие 5, и обе программы делают шаг вычисления согласно этому условию. Если программа п2 «отстает» от программы я,. т. е. [£г2] <

151

[¿т^], то программа п2 делает шаг вычисления. Иначе программа я, делает шаг вычисления.

В графе Г совместных вычислений программ тт2 сохранена информация о такой совместной работе программ, достаточная для исследования проблемы эквивалентности. Вершинами графа совместных вычислений Г являются четверки вида (¿1(¿2.51.52)- гДе ^ £ и 6 5, I 6 {1,2}. Корнем графа Г объявляется вершина . Вершину и = (/,, /2,5,,б2) назовем

опровергающей, если выполнено одно из трех условий:

1. = 11и\ Б2 Ф

2. 12 = 1°и\ Ф

3. г1 = ггл2 = гг4.(51,52)^(50,5°).

Опровергающие вершины и вершину (1°и>:, 12иЬ, , будем называть терминальными.

Дуги графа Г помечены парами (с^, с12) 6 (К и {е})2 . Из терминальных вершин не исходит ни одной дуги. Различные дуги, исходящие из нетерминальной вершины, помечены различными парами. Метки дуг, исходящих из вершины V = (¿1( ¿2,51,52» )• образуют множество: Е х {е}, если 12 = или 52Фб°: {(8,8) | 8 6 К}, если 12 Ф И51 = 52 = 5°;

{е} х К в остальных случаях. Вершина (/',, 1'2,8'1, б2), достижимая из V по дуге с меткой (йг, (¿2), определяется следующим образом:

ЛI

• если с^ = е, то у[ = г^ и з" = ^, иначе у[ и б" = * [б^и-)], I е {1,2},

• если 5" = 52', ТО — 52 — 5°;

• если я" 1 б'2 , то = 5" и б2 = б2:

• если Я" < 5з_ь то б? = и 5з_г = я" *

Корректность этого описания следует из свойства левого сокращения (утверждение 4).

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

1. этот маршрут оканчивается в опровергающей вершине;

2. существуют натуральное число N и индекс I , такие что при отбрасывании N первых вершин маршрута все I -е компоненты меток дуг равны е и все ¿-е компоненты вершин завершаемы.

Далее мы покажем, что существование опровергающих маршрутов в графе совместных вычислений Г равносильно неэквивалентности программ. Чтобы установить соответствие между корневыми маршрутами графа Г и совместными трассами программ п1, п2. введем понятие проекции рг(П) корневого маршрута П графа Г:

. рг(П) = (ръСПХръСП));

• pri(li1n,li2n,s0,s°) = liin:

( d±,d2 \

• prJ П-> (litl2,sits2) I = рг;(П), если dj = е;

• prt (n^(Z1(Z2,s1(s2)) = pr^D.) ^ lh есш di Ф г.

Лемма 1. Пусть П — корневой маршрут графа Г. Тогда:

1. prt (П) и рг2 (П) — совместные трассы программ л,. п2:

2. если маршрут П оканчивается в вершине (/,, l2, s1( s2), то:

1. для некоторого состояния данных s верны соотношения [рг£ (П)] = s*shie {1,2};

2. s2 £ {[а] | а £ 91} U {s0};

3. если s1 Ф s° и s2 Ф s°, то s1 1 s2.

Лемма 1 легко обосновывается индукцией по длине маршрута П с привлечением утверждения 1. Если маршрут П бесконечен, то совместность его проекций вытекает из совместности любых конечных префиксов его проекций.

Лемма 2. Пусть срх, ср2 — совместные вычисления программ я,. я2. Тогда в графе совместных вычислений Г существует корневой маршрут П, который либо является бесконечным, либо оканчивается в терминальной вершине, такой что рГ;(П) - это префикс вычисления ср1 для i 6 {1,2}. Для обоснования леммы 2 достаточно построить маршрут согласно описанию совместной работы программ и убедиться, что ни на каком шаге построения не нарушается совместность трасс (утверждение 1, лемма 1). Если процесс построения маршрута бесконечен, то в качестве результата берется бесконечный маршрут, префиксами которого являются маршруты на всех шагах построения.

Лемма 3. Пусть П — корневой маршрут графа Г с проекцией (tr,, tr2) и для некоторого i 6 {1,2} трасса trt является префиксом трассы tr. Тогда трассы tr и tr3_i совместны.

Доказательство. Без ограничения общности считаем i = 1. Предположим, что трассы tr и tr2 несовместны. По утверждению 1 равенство [tr,'] = [tr2] выполнено для некоторых собственных префиксов tr[, tr2 трасс tr, tr2. По утверждению 1 трассы tr, и tr2 совместны, а значит, tri = tr, —> pt . Рассмотрим кратчайший префикс П' маршрута П, для которого рг2(П') = tr2. Привлекая утверждение 1, лемму 1 и описание совместной работы программ, легко убедиться в невозможности достроить маршрут П' до П.

Теорема 1. я, ~Т я2 тогда и только тогда, когда в графе Г не содержится ни одного опровергающего маршрута.

Доказательство. Достаточность. Рассмотрим опровергающий маршрут П. По определению он либо бесконечен, либо оканчивается в опровергающей вершине. Если он оканчивается в вершине, содержащей выходы программ пъ 7г2, то по лемме 1 получим совместные конечные вычисления с различными результатами. Если он оканчивается в вершине, содержащей выход 1"и1 ровно одной программы, то, продолжив трассу рг3_;(П) произвольным образом до вычисления и используя утверждение 4 и леммы 1, 3, получим либо совместные конечные вычисления с различными результатами, либо совместные конечное и бесконечное вычисление. Пусть теперь маршрут П бесконечен. По лемме 1 его проекцией являются бесконечное вычисление программы 7Г; и конечная трасса программы 7Г3_;, где I 6 {1,2}, причем по определению опровергающего маршрута и лемме 3 трассу рг3_;(П) можно продолжить до конечного вычисления программы 7Г3_; , совместного с вычислением рг;(П).

Необходимость. Программы я, , п2 имеют либо совместные конечные вычисления с различными результатами, либо совместные конечное и бесконечное вычисления. Пусть это вычисления срх , ср2 . Рассмотрим корневой маршрут П графа Г, подходящий под условие леммы 2. Если маршрут П конечен, то он оканчивается в опровергающей вершине (иначе по лемме 1 результаты вычислений срх , ср2 совпадают). Если маршрут П бесконечен, то, привлекая определение проекции корневого маршрута, получаем, что П — бесконечный опровергающий маршрут. Доказательство теоремы завершено.

5. Эффекты подавления

Все дальнейшие рассуждения строятся на основе существования функции эех, где 5 6 5, определяемой следующим образом: (у,) = б2, где 5, + 5 = + 5 и б2 имеет наименьшую возможную норму. Функцию эех будем называть эффектом подавления, индуцированным состоянием данных 5, или, коротко, -подавлением. Существование 5 -подавления для рассматриваемой нами шкалы вытекает из следующего утверждения.

Лемма 4. Если уравнение X * б = б' имеет решение относительно X, то ровно одно его решение имеет наименьшую среди всех решений норму. Доказательство. Предположим, что 5, и — два различных решения уравнения X * б = б' , имеющие наименьшую среди всех решений норму. Пусть /?,; — минимальный представитель класса 5; , I 6 {1,2} , и И — минимальный представитель класса 5. По утверждению 3 термы /? , /?. /?2Л являются минимальными представителями одного состояния данных. По утверждению 5 терм /?2Л может быть получен из Л) /? применением только соотношений перестановочности. Взяв зеркальные образы двух последних термов, применив утверждение 4 и применив повторно зеркальное

преобразование, получим вывод терма К2 из /?, . Доказательство леммы завершено.

Множество всевозможных эффектов подавлений далее будем обозначать записью Ж. Введем порядок на множестве /Е: ж, < эе2 тогда и только тогда, когда существуют состояния данных 5, 5', такие что 5 < 5'. ж, = и ге2 =

эех/.

Лемма 5. Отношение < на множестве /Е является нестрогим частичным порядком.

Доказательство. Предположим, что существуют два различных эффекта подавления ге1, эе2 , такие что ж, < ге2 и ге2 < ж, . Заметим, привлекая утверждение 3, что если эе(Б) = б' и 1г — минимальный представитель класса 5, то можно получить минимального представителя /?' класса 5 вычеркиванием некоторых символов из И , причем вычеркиваемые символы однозначно определяются эффектом подавления эе. Из определения порядка на множестве Ж следует: если ж < ж'. ж(б) = 5, и ж'= б2 то существуют минимальные представители /?2 классов 5, и соответственно, такие что К2 получается из /?) вычеркиванием некоторых вхождений. Используя последний факт, получаем, что если зе1 < зе2 и эе2 < эеъ то ге-^ = зе2.

Лемма 6. 885(5!) = гек(з2) тогда и только тогда, когда + 5 = *

Лемма 7. Если ае^) = зе(з2) и эе < эе', то эе'(51) = эе'(52).

Лемма 6 следует из леммы 4 и определения эффекта подавления, лемма 7

следует из леммы 6.

Будем говорить, что автомат А с множеством меток Ж распознает эффекты подавления, если выполнены следующие два условия:

автомат А согласован с моноидом: для любой пары термов й1( Ь.2 если [/? , ] = [К21 то А(М = А(й2);

автомат А согласован с эффектами подавления: Вк (/г) = эе^ для любого терма К.

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

Для автомата А, согласованного с моноидом, будем использовать записи А([/г]). бА ([/г]) наравне с А(/г), ВА (И).

Лемма 8. Существует автомат, распознающий эффекты подавления. Доказательство. Приведем явное описание автомата А , распознающего эффекты подавления. Начнем построение с автомата А0 , распознающего подавление операторов (утверждение 6). Состояния цг, ц2 ■ этого автомата объявим эквивалентными, если равенство ВАд(дг,К) = бА(|(ц2,Л) выполнено для всех термов И 6 91* . Переберем классы эквивалентности состояний автомата 510 и назначим 1 -му классу новую метку эе;. В результате такой замены получим автомат Ах. Заметим (утверждение 3), что А, (/? ,) = А2(й2) тогда и только тогда, когда жй| = зеё2, где д1 есть терм , записанное наоборот, I 6 {1,2}. Таким образом, можно считать, что = /Е. Отбросив

метки вершин и назначив вершины с меткой эe¿ , получим автомат-распознаватель А12. Используя известные результаты теории автоматов, можно построить по автомату А2 автомат А13. Можно легко убедиться, что автомат Аз принимает язык [h \ = ae¿] . Рассмотрим декартово произведение автоматов Ад, назначив метку ae¡ состоянию (q¡,...,qk). где qL — финальное состояние автомата А13 (заметим, что по опредлению эффекта подавления индекс i однозначно определен для любого состояния декартова произведения). Описанное декартово произведение и будет искомым автоматом А. Доказательство леммы завершено.

В дальнейших рассуждениях считаем заданным автомат А = (Q, q°, Тк, Lk, Вк). распознающий эффекты подавления.

Пусть s 6 5 и h = аг ... ак 6 91*. Тогда развитием s -подавления вдоль терма h (коротко, (s, К) -подавлением) назовем последовательность ее!?, получаемую из последовательности (aes,aes„[ai], ...,aes„[h]) удалением соседних повторяющихся элементов, (s, pt) -подавлением, где s 6 5 и pt - конечный путь в произвольной программе, будем называть (s, В (pt)) -подавлением. Если путь pt бесконечен, то (s, р1)-подавлением назовем наибольшее по длине (s,pt')-подавление, где pt' — конечный префикс пути pt. Существование (s, pt) -подавления для бесконечного пути pt следует из очевидного факта: любое (s, pt) -подавление является цепью в конечном (лемма 8) частично упорядоченном (лемма 5) множестве JE.

Конечный путь pt в программе назовем s-приведенным, где s 6 5, если для любых его различных префиксов ptí, pt2 они оканчиваются в различных состояниях управления или A(s * [рt}]) Ф Ais * [pt2]). Бесконечный путь pt будем называть ¿-приведенным, если он представим в виде pt, pt2)'". где pt± —> pt2 — конечный s-приведенный путь.

Лемма 9. Пусть I — состояние управления программы п, pt — путь в программе п, начинающийся в состоянии I. и s ES. Тогда существует s-приведенный путь pt' в программе 7г, начинающийся в состоянии управления

I и такой что: ж^ = ж^ . При этом путь pt' конечен тогда и только тогда, когда путь pt конечен; если путь pt' конечен, то он завершается в том же состоянии управления, что и pt.

Доказательство. Опишем алгоритм построения пути pt' по pt. Пусть путь pt конечен. Если он не является s-приведенным, то существуют два различных префикса ptí и ptí —> pt2 этого пути, оканчивающиеся в одном состоянии управления и такие что A(s * [рt}]) = A(s * [рt} —> pt2]). Удалим из пути pt подпуть pt2, и если результат не является s -приведенным, то повторим процедуру. Путь pt конечен, а следовательно, за конечное число удалений будет получен искомый s-приведенный путь pt'.

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

префикс р£" -» I пути р£, такой что эе£1 Ф зе^ и ж^ = ае£1. Применим к нему процедуру удаления подпути. Добавим к результирующему пути бесконечный «хвост», отброшенный перед удалением. Найдем в этом хвосте первое повторение состояния управления и заменим хвост на бесконечное повторение найденного цикла. Результатом будет искомый путь pt' . Доказательство завершено.

Лемма 10. Пусть 5 Е5 и рС — 5 -приведенный путь в программе 7Г , представимый в виде р£ = р^(—> р£")й) (здесь путь р£" считается пустым в том и только в том случае, если путь р£ конечен). Тогда ¡рЬ'] + \pt"\ < \п\ ■ 101.

Справедливость леммы 10 объясняется тем, что существует ровно \п\ ■ |<2| различных пар (I, ц), где I - состояние управления программы п и ц -состояние автомата А.

Пусть 5 6 5 и И = аг ... ак 6 91*. Тогда обобщенным развитием б -подавления вдоль терма И , или, коротко, [я, й] -подавлением, будем называть последовательность эё!? , получаемую из последовательности ((эе5о, аеД (эе[а1], зеИа1]),..., (аеи, эе5,и)) удалением соседних

повторяющихся элементов. [5, р£] -подавлением, где х 6 5 и — конечный путь в произвольной программе, будем называть [5, [рС]] -подавление. Если путь р£ бесконечен, то [5, рС] -подавлением будем называть наибольшее по длине Is.pt'] -подавление, где pt' — конечный префикс пути pt . Существование Is.pt] -подавления для бесконечного пути pt следует из очевидного факта: любое Js.pt]-подавление является цепью в декартовом квадрате конечного частично упорядоченного множества Ж. Конечный путь pt (в какой-либо программе) будем называть приведенным, где 5 6 5, если для любых его различных префиксов pt-i.pt2, оканчивающихся в состояниях управления 12 соответственно, выполнено: (/,, А([р£, ]), * р[1^12,Ар[2,А.<>*р[2. Бесконечный путь pt будем называть я-привеОенным. если он представим в виде pt] (—> pt2)"'. где pt] —> — конечный £ -приведенный путь. £ -приведенный путь будем также называть -

приведенным.

Лемма 11. Пусть I — состояние управления программы Ti.pt — путь в программе п, начинающийся в состоянии I. и 5 6 5. Тогда существует £ -приведенный путь р^' в программе 7Г, начинающийся в состоянии управления

I и такой что: эё^' = эё^' . При этом путь р^ конечен тогда и только тогда, когда путь pt конечен; если путь р^ конечен, то он оканчивается в том же состоянии управления, что и путь pt.

Лемма 12. Пусть б Е Б я pt — -приведенный путь в программе п , представимый в виде pt = pt2)ш (здесь путь pt2 считается пустым в

157

том и только в том случае, если путь pt конечен). Тогда |pt, | + \pt2\ < \л\ ■

\Q\2.

Обоснования лемм 11, 12, по существу, повторяют обоснования лемм 9, 10 с незначительными изменениями и потому опущены.

6. Анализ графа совместных вычислений

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

Лемма 13. Пусть q £ QJ±e Llr 12 £ L2, s2 £ S, m = |Ç|3 • |n^ ■ \n2\2 + 2 и:

• l-L -» pti и l2 —> pt2 — полные пути программ я,. п2. и хотя бы один из этих путей конечен;

. œf1 = (СавЬав?).....(ae^ael));

• ®s22 = О®].' ■■■ ' ^s)-

• 1 < к' < к:

• из корня графа Г достижимы -вершины г?; = (/,, /2, , s2) • где i £ {1.....m}:

• состояния данных эе^/(s{). i £ {1,..., m} попарно различны;

• {эе!.....aes}n{ae£,+1.....ае^} = 0.

Тогда п1 -р п2.

Доказательство. Пусть П, — корневой маршрут, оканчивающийся в вершине Vi , iE {1,2} , и рг( П;) = (tri h> tr2 h) ■ Из леммы 1 получим представления [tri '1] = sL* и \tr2 -» l2] = s1 * s2. Приведем подробное обоснование только для одного случая: состояние управления 12 завершаемо, к' = к, путь pti бесконечен. Остальные случаи обосновываются схожим образом, дополнительно привлекая леммы 10, 11, и потому опущены. Без ограничения общности полагаем, что путь pti q-приведен (лемма 9). Пусть l2 -» pt - кратчайший полный путь в программе п2. Достаточно показать, что хотя бы одна пара вычислений ср[ = tr_lAi -» рt,. ср2 = tr2 -» pt совместна. Предположим, что это не так. Тогда по утверждению 1 для любого индекса

л 51 л j ¿>2

j £ {1,... , m} найдутся собственные префиксы tr' —> l\. tr2 —> 1'2 вычислений ср[, ср2, такие что [tr/] = [tr2 ] и 5, Ф S2. Привлекая утверждение 1 и лемму 3, получим неравенства | tr' | > |tr' |. \tr2\ > \tr2\. Тогда по утверждению 4 для некоторых префиксов pt^, pt2 путей рt,. pt верно равенство s] * [pt^] = s2 * [pt2] • Из неравенства |pt| < \л2| получаем следующие соотношения:

||* [р^] || = 1^2 * [р£2] || < |7г2|. По лемме 12 получим неравенство |р£^| < |(?|2 • 1^1 ■\п2\ . Следовательно, пара длин (|р1\|, |р121) может принимать лишь (гп — 2) различных значений, а значит, найдутся различные индексы р, <7, такие что (р?[\ р?2) = • )• Привлекая леммы 6, 7, получим равенство Ж|; (^С) = , что противоречит условию леммы. Полученное

противоречие завершает доказательство леммы.

Лемма 14. Пусть цЕЧ.^Е 12 Е ¿2, 52 6 5, т = |(?|3 • 1%! • \п2\2 + 2 и:

• 1-1 -» р£х и 12 -> р£2 — полные пути программ я,. я2:

• 1 = (С®!' Ж?)' ■■■ > 0®к<

• = С36!' ■■■ '

• из корня графа Г достижимы -вершины = (/,, /2,52) . где ( 6 {1.....

• 1 < к' < /с, 1 < 5' < 5;

• состояния данных ж^,^}). I 6 {1,... ,ш}, попарно различны;

• состояния данных ж|1;,+ ] (5}). I Е {1,..., гп}, совпадают;

• {«1.....ае5,} П {эе2,+1.....эе£} = 0;

• ае5,+1е {жк'+1' ■■■-аек};

• П — корневой маршрут графа Г, оканчивающийся в вершине Ут:

• ргх(П) —> рЬг и рг2(П) —> р£2 — совместные вычисления программ я,. 7г2, имеющие различные результаты.

Тогда для некоторого у 6 {1, ...,т] из вершины г^ исходит опровергающий маршрут.

Доказательство. Пусть П; — корневой маршрут графа Г, оканчивающийся в вершине I Е {1,2}, и рг(П|) = (¿г,' /,, £г2' /2). По лемме 1 получим представления [¿г,1 -» /,] = 51 + и [£г21 /2] = б1 * б2 . Рассмотрим альтернативные случаи.

Случай 1: одно из состояний управления незавершаемо. Без ограничения общности полагаем I = 1. Тогда вычисление рг, (П) —> pt] бесконечно, и из условия леммы получаем, что путь рЬ2 конечен. По лемме 3 трасса ¿г,1 —> /, и вычисление ср2 = Ьг2 —> 12 —> рЬ2 совместны. Используя утверждение 1, можно продолжить трассу Ьг^ —> /, до бесконечного вычисления, совместного с конечным вычислением ср2.

Случай 2: состояние управления /, завершаемо и существует бесконечный путь 12 —> р£2, такой что ге^2 есть префикс ге^2 длины менее 5'. Рассуждая так же, как и в доказательстве леммы 13, можно получить совместные вычисления Ьг( /, р11 , Ьг2 -> /2 -»р£2 программ я, . я2 . Достроим

маршрут fIj наидлиннейшим образом до маршрута П' так же, как и в обосновании леммы 2. Используя лемму 1, можно легко показать, что маршрут П' является опровергающим.

Случай 3: состояние управления 12 завершаемо и существует бесконечный путь /, -» pt[ , такой что эё^1 есть префикс эё^1 длины не более к' . Рассуждения данного случая аналогичны случаю 2.

Случай 4: состояния управления /, , 12 завершаемы и не существует бесконечных путей, удовлетворяющих условиям случаев 2, 3. Пусть pt'± —> 1'л.

I vtr I I vtr —>Lf I

pt2 -> l2 — префиксы путей pt1, pt2, такие что эё^ 1 = к' Ф эё^ 1 1 и

|ге^2| = s' Ф |œ^2_>i2|. По леммам 10, 12 имеем неравенства \pt[\ < \Q\2 ■ 17T-L|. \pt2\ < |Ç| • \тт21. Рассуждая так же, как в доказательстве леммы 13, получим индекс j £ {1,...,m — 1} , такой что трассы tr{ / , ^ pt[ 1\ и tr2 -> l2 -> pt2 -» 1'2 совместны. Достаточно показать, что вычисления ср[ = tr{ /, ^ pt, и ср2 = tr2 -> l2^> pt2 совместны и имеют различные результаты. Различие результатов может быть легко получено с использованием утверждения 4, леммы 7, представлений [trxl / ,] = s1* и \tr2 l2] = s1 * s2 и того факта, что результаты вычислений ср"1 = tr"1 /, р t,. ср"1 = tr"1 -> l2 ^ pt2 различны. Совместность вычислений ср(, ср2 может быть легко получена из совместности вычислений ср"1 , ср"1 с использованием утверждений 1, 6 и лемм 3,8.

7. Разрешающий алгоритм

Далее полагаем п = maxdirj, |7Г2|) . Опишем алгоритм а, разрешающий проблему эквивалентности последовательных программ на упорядоченной шкале Т(С,А~) . Рассмотрим произвольный обход графа Г (например, обход в глубину или в ширину). Модифицируем этот обход следующим образом. Разобьем рассмотренные при обходе вершины на 0(п2) групп, определяя в одну группу вершины Gi, Ï2<5i<52)- Qi^2>si>sD- если = l2 = l2, A(sx) = A(s{) и s2 = s2 . При рассмотрении очередной вершины v производятся следующие действия. Если v - опровергающая вершина, то алгоритм останавливается и констатирует неэквивалентность программ. Если через вершину v и остальные рассмотренные вершины проходит цикл, являющийся «хвостом» бесконечного опровергающего маршрута, то алгоритм останавливается и констатирует неэквивалентность программ. Если при добавлении вершины v в свою группу число вершин в ее группе оказывается (|Ç|3-n3+2) вершин, то согласно леммам 13, 14 либо программы признаются неэквивалентными, либо дуги, исходящие из вершины v , игнорируются в дальнейшем обходе. Если обход завершен и программы не признаны неэквивалентными, то они признаются эквивалентными.

Лемма 15. Равенство состояний [/?, ] , [к2] шкалы Т(С, А) может быть проверено за время О (т2), где т = шахС!^!,\Ь2\).

Доказательство. По утверждениям 3, 6 минимальные представители дЛ. д2 классов . [к2] могут быть построены за время 0(т). По утверждению 5 достаточно проверить, можно ли получить д2 из дг , применяя только соотношения перестановочности. Если | I ^ 1 • т0 этого сделать нельзя. Пусть теперь 1^1 = \д2\. Если дЛ = X. то достаточно проверить равенство д2 — А.. Иначе рассмотрим самый левый символ а терма дг и самое левое вхождение того же символа в терм д2. Если такое вхождение не найдено, то [/?, ] Ф [й2]. Если это вхождение найдено, но слева от него есть вхождение символа Ъ , такое что а и Ь не перестановочны, то [/?, ] Ф [к2] . Иначе вычеркнем левый символ терма дг и рассматриваемое вхождение в терм д2 и повторим описанную процедуру проверки для полученных более коротких термов. Всего производится не более т процедур проверки, каждая из которых завершается за время О (т).

Лемма 16. Алгоритм а завершает свою работу за время 0(п18). Доказательство. Алгоритм а исследует 0(п5) вершин графа Г (леммы 13, 14). Для хранения состояний данных в каждой вершине достаточно термов длины 0(п5) . При исследовании вершины производится не более 0(п3) сравнений состояний данных (леммы 13, 14). Сравнение двух состояний данных может быть произведено за время 0(п10) (лемма 15).

Лемма 17. я, ~ п2 тогда и только тогда, когда алгоритм а признает программы эквивалентными.

Справедливость леммы 17 следует из лемм 16, 13, 14 и теоремы 1. Леммы 16, 17 подводят итог исследованию, проведенному в данной работе, и позволяют считать обоснованной следующую теорему.

Теорема 2. Пусть шкалам = Т(С,А) упорядочена. Тогда задача проверки Т-эквивалентности программ я, , я2 разрешима за полиномиальное относительно размера программ время.

8. Заключение

Основной результат статьи - теорему 2 - можно оценивать двояко. В работе [9] показано, каким образом, используя алгоритм проверки эквивалентности, можно построить эффективный алгоритм минимизации программ, операторы которых являются образующими элементами упорядоченного левосократимого моноида. Таким образом, полиномиальный алгоритм проверки эквивалентности программ с перестановочными и подавляемымми операторами, предложенный в разделе 8, свидетельствует о том, что оптимизировать программы можно столь же эффективно и просто, как и конечные автоматы. Однако высокая степень полинома, оценивающего сложность этого алгоритма, пока не дает оснований говорить о том, что этот метод оптимизации программ является практически пригодным. Поэтому цель

дальнейших исследований - совершенствование предложенного алгоритма в

стремлении понизить его сложность до величины порядка п2 -н п4. Результаты

работ [13-15] позволяют полагать, что такие ожидания небеспочвенны.

Список литературы

[1]. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий. —2-е издание. —М.: «Вильяме», 2008. — 1184 с.

[2]. Hoare C.A.R. An axiomatic basis for computer programming // Communications of the ACM. - 1969. - v. 12, N 10, p. 576-580.

[3]. Ершов А.П. Сведение задачи экономии памяти при составлении программ к задаче раскраски вершин графа // Доклады АН СССР. - 1962. - т. 142, N 4. - с. 785-787.

[4]. Глушков В.М. Теория автоматов и формальные преобразования микропрограмм // Кибернетика. - 1965. - N 5. - с. 1-9.

[5]. Ляпунов A.A. О логических схемах программ // Проблемы кибернетики, вып. 1. -М.:Физматгиз, 1958.-е. 46-74.

[6]. Янов Ю.И. О логических схемах алгоритмов // Проблемы кибернетики, вып. 1. -М.:Физматгиз, 1958.-е. 75-127.

[7]. Ершов А.П. Операторные схемы (Об операторных схемах Янова) // Проблемы кибернетики, вып. 20. - М.:Физматгиз, 1967. - с. 181-200.

[8]. Ershov А.Р. Alpha - an automatic programming system of high efficiency // Journal of the Association for Computing Machinary. - 1966. - v. 13, N 1. - p. 17-24.

[9]. Глушков B.M., Летичевский A.A. Теория дискретных преобразователей. // Избранные вопросы алгебры и логики: сб.статей. - Новосибирск: Наука, 1973. - с. 5-39.

[10]. Ершов А.П. Современное состояние теории схем программ // Проблемы кибернетики, вып. 27. - М.:Наука, 1973. - с. 87-110.

[11]. Подловченко Р.И., Захаров В.А. Полиномиальный по сложности алгоритм, распознающий коммутативную эквивалентность схем программ // Доклады РАН, серия Информатика. - 1998. - т. 362, N6. - с. 27-31.

[12]. Zakharov V.A. An efficient and unified approach to the decidability of equivalence of propositional program schemes // Lecture Notes in Computer Science. - 1998. - v. 1443. - p. 247-258.

[13]. Захаров В.А. Быстрые алгоритмы разрешения эквивалентности операторных программ на уравновешенных шкалах // Математические вопросы кибернетики, вып.7. - М.:Физматлит, 1998.-е. 303-324.

[14]. Захаров В.А. Проверка эквивалентности программ при помощи двухленточных автоматов // Кибернетика и системный анализ. - 2010. - N 4. - с. 39-48.

[15]. Захаров В.А., Щербина В.Л. Об эквивалентности программ с операторами, обладающими свойствами коммутативности и подавления // Материалы 9-го Международного семинара «Дискретная математика и ее приложения», Москва, 2007.-2007.-с. 191-194.

[16]. Harel D., Kozen D., Tiuryn J. Dynamic logic. MIT Press, Cambridge, MA, USA. -2000.-450 p.

[17]. Подымов B.B., Захаров В.А. Об одной полугрупповой модели программ, определяемой при помощи двухленточных автоматов // Научные ведомости Белгородского государственного университета. Серия История, экономика, политология, информатика, том 14. - № 7. - с. 94-101.

A polynomial algorithm for checking the equivalence in models of programs with commutation and vast operators

1 V. V. Podymov <valdus(a\yandex.ru>

' V.A. Zakharov < [email protected]. su> 1 Lomonosov Moscow State University, Faculty CMC, 2nd Education Building, GSP-1, Leninskie Gory, Moscow ' ISP RAS, 25 Alexander Solzhenitsyn Str., Moscow, 109004, Russian Federation

Abstract. In this paper we study the equivalence problem in the model of sequential programs which assumes that some instructions are commutative and absorbing. Two instructions are commutative if the result of their executions does not depend on an order of their execution. An instruction b absorbs an instruction a if the sequential composition a; b yields the same result as the single instruction b. A.A. Letichevskij in 1971 proved the decidability of equivalence checking problem in this model of programs. Nevertheless a possibility of building polynomial time equivalence checking procedures remains an open problem till nowadays. The main result of this paper is the description of a polynomial time algorithm for checking the equivalence of sequential programs with commutative and absorbing instructions. The paper includes 9 sections. In Section 1 we introduce informally the model of programs under consideration, the equivalence checking problem, and give a brief overview of the preceding results in the study of equivalence checking problem for this model. In Sections 2 and 3 the syntax and a semigroup-based semantics of prepositional model of sequential programs are formally defined. The algebraic properties of semigroups of commutative and absorbing program instructions are studied in Section 4. In Section 5 we introduce a graph of joined computations which is the key structure in designing our equivalence checking techniques. In Section 6 and 7 we show that the cumulative absorbing effect of finite sequences of commutative instructions can be specified by means of finite automata; this is another key step in building the decision procedure. In Section 8 we show that equivalence checking of two programs is reducible to a traversal of a bounded fragment of the graph of joint computations of these programs; the latter can be performed in time polynomial of the size of programs to be checked.

Keywords: program, commuting instructions, absorbing instructions, program equivalence, finite automata, decision procedure, polynomial time complexity.

References

[1]. Alio A., Lam M., Sethi R, Ullman J. D. Compilers: Principles, Techniques, and Tools. Pearson Education, Ltd., 2014, 940 p.

[2]. Hoare C.A.R. An axiomatic basis for computer programming. Communications of the ACM. 1969, v. 12, N 10, p. 576-580.

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

[3]. Ershov, A. P. Axiomatics for Memory Allocation, Acta Inform., Vol. 6, 1976, pp. 61-75.

[4]. Glushkov V.M. Teoriya avtomatov i formalnyie preobrazovaniya mikroprogramm [Automata theory and formal transformations of microprograms], Kybemetika [Cybernetics], 1965, N5.

[5]. Lyapunov A.A. O logicheskih shemah programm [On the logical program schemata], Problemy kibemetiki [Problems of cybernetics], 1958, vol. 1, p. 46-74.

[6]. Yanov Ju. I. O logicheskih shemah algoritmov [On the logical algorithm schemata], Problemy kibemetiki [Problems of cybernetics], 1958, vol. 1, p. 75-127.

[7]. Ershov A.P. Operatomye skhemy (Ob operatornykh skhemakh Yanova) [Operating schemata (On Yanov operator shemata)]. Problemy kibemetiki [Problems of cybernetics], 1967, v. 20, p. 181-200.

[8]. Ershov A.P. Alpha - an automatic programming system of high efficiency // Journal of the Association for Computing Machinary. - 1966. - v. 13, N 1. - p. 17-24.

[9]. Glushkov V.M., Letichevsky A.A. Teoriya diskretnykh preobrazovateley [Theory of discrete transducers], Izbrannye voprosy algebry i logiki: sb.statey.. Izbrannyje voprosy algebry I logiki [Selected problems in algebra and logics: Proceedings], 1973, Novosibirsk: Nauka, p. 5-39.

[10]. Ershov, A. P., Theory of Program Schemata. Proc. IFIP 1971, North-Holland, Amsterdam, pp. 144-163.

[11]. Podlovchenko R.I., Zakharov V.A. Polinomiarniy po slojnosti algoritm raspoznayushchiy ekvivalentost skhem program [Polynomial equivalence checking algorithm for program schemata], Doklady Mathematics (Doklady Akademii Nauk), 1998, vol. 362, N 6, p. 27-31.

[12]. Zakharov V.A. An efficient and unified approach to the decidability of equivalence of propositional program schemes. Lecture Notes in Computer Science, 1998, v. 1443, p. 247-258.

[13]. Zakharov V.A. Byistryie algoritmyi razresheniya ekvivalentnosti operatornyih programm na uravnoveshennyih shkalah [Swift algorithms deciding equivalence of operator schemata on length-preserving frames], Matematicheskie voprosyi kibemetiki [Mathematical Problems of Cybernetics], vol.7. - Moscow PhysMathLit, 1998, p. 303-324.

[14]. Zakharov V.A. Program equivalence checking by two-tape automata. Cybernetics and Systems Analysis. 46, № 4, p. 554-562.

[15]. Zakharov V.A., Shcherbina V.L. Ob ekvivalentnosti programm s operatorami, obladayushchimi svoystvami kommutativnosti i podavleniya [On the equivalence of programs with commutative and absorbing operators], Materialy 9-go Mezhdunarodnogo seminara «Diskretnaya matematika i eye prilozheniya» [Proceedings of the 9-th International Workshop "Discrete mathematics and its application"], Mosocw, 2007, p. 191-194.

[16]. Harel D., Kozen D., Tiuryn J. Dynamic logic. MIT Press, Cambridge, MA, USA. -2000.-450 p.

[17]. Podymov V.V., Zakharov V.A. Ob odnoy polugrappovoy modeli programm, opredelyaemoy pri pomoshchi dvukhlentochnykh avtomatov [On a semigroup model of

programs specified by two-tape automata]. Nauchnye vedomosti Belgorodskogo gosudarstvennogo universiteta. Seriya Istoriya, ekonomika, politologiya, informatika [Scientific Bulletin of Belgorod State University: History, Economics, Politology, Informatics], vol 14. N 7, p. 94-101.

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