Шилов Н.В.1, Шилова С.О.2 Бернштейн А.Ю.3
1 Институт систем информатики им. А.П. Ершова СО РАН, г.Новосибирск, к.ф.-м.н., старший
научный сотрудник, [email protected] 2 Институт систем информатики им. А.П. Ершова СО РАН, г.Новосибирск, программист,
3Новосибирский государственный университетб г.Новосибирск, студент механико-математического факультета, [email protected]
Обобщенная тотальность недетерминированных схем Янова и разрешимость программной логики с неподвижными точками
КЛЮЧЕВЫЕ СЛОВА
Программные логики, неподвижные точки, разрешающая процедура, недетерминированные схемы Янова, обобщенная проблема тотальности.
АННОТАЦИЯ
В статье описан обновленный вариант разрешающей процедуры для пропозициональной программной логики с неподвижными точками, основанный на использовании недетерминированных схем Янова и методе верификации формул этой логики в конечных моделях.
Работа выполнена в рамках проекта РФФИ № 13-01-00645-а.
1. Пропозициональное ц-исчисление
Определим синтаксис и семантику пропозиционального ц-исчисления (^C - от ^-Calculus) [9,14].
Определение 1. Пусть {true, false} - это булевские константы, а Var и Act - это непересекающиеся счётные алфавиты пропозициональных и программных переменных. Синтаксис пропозиционального цС состоит из формул, которые определяются по индукции следующим образом.
Булевские константы и все пропозициональные переменные являются формулами;
любые пропозициональные комбинации формул являются формулами: отрицание (-ф), конъюнкция (ф л ф) и дизъюнкция (ф v ф) любых формул тоже формулы;
для любой программной переменной aeAct и формулы ф модальные конструкции (^>ф) и (Иф) тоже являются формулами;
для любой пропозициональной переменной xeVar и формулы ф, в которой нет ни негативных (т.е. в области действия нечётного числа отрицаний), ни связанных (т.е. в области действия nx и/или vx) вхождений x, конструкция наименьшей (^x. ф) и наибольшей (vx. ф) неподвижных
точек тоже являются формулами (в которых все вхождения x становятся связанными).
Как обычно, самые внешние скобки вокруг формул и некоторые внутренние скобки (в соответствии со стандартным приоритетом пропозициональных операций) могут быть опущены. В дальнейшем нам так же понадобится операция синтаксической подстановки: s(o/t) будет обозначать подстановку выражения o в выражение s вместо всех вхождений t; пусть также so(o/t) обозначает само выражение s, и для любого n>0, если Sn(o/t) уже определено, то пусть sCn+i)(o/t) = s(Sn(o/t)/t). Таким образом, Sk(o/t) обозначает k-кратную подстановку выражения o в s на место t.
Семантика цС определяется в моделях, которые в теории программирования называются помеченными системами переходов (labeled transition systems), а в модальной логике и философии - моделями и/или системами Крипке. В рамках данной статьи мы будем просто говорить модель и употреблять программистскую терминологию.
Определение 2. Каждая модель M - это тройка (D, R, E), в которой
• множество D = 0 называется носителем и/или областью модели, а его элементы называются состояниями;
• функция R:Act—>2DxD называется интерпретацией, она сопоставляет каждой программной переменной aeAct бинарное отношение R(a)cDxD;
• функция E:Var—>2D называется оценкой или означиванием, она сопоставляет каждой пропозициональной переменной xeVar предикат E(x)CD.
Если M - это модель (D,R,E), scd - множество состояний, а xeVAR -пропозициональная переменная, то обозначим посредством Ms/x модель (D, R, Es/x), где Es/x = upd(E, x, S) то есть оценка, которая отличается от E только (может быть) на x: Es/x(x)=S.
Определение 3. Семантика цС определяется посредством распространения функции означивания в моделях с пропозициональных переменных на все формулы цС индукцией по структуре формул следующим образом. Пусть M - это произвольная модель (D, R, E). Тогда
• M(true)=D, M(false)=0, а M(x)=E(x) для любой пропозициональной переменной xeVar;
• M(-^)= D\Mfa), M^A^)=Mfa)nM(^),M^v^)=Mfa)UM(^);
• M(<a^)=(seD: teD((s,t)eR(a) и teMfa)},
• M([a^)=(seD: teD((s,t)eR(a) ^>teMfa)};
• M(^x^) - это наименьшее (по с) множество состояний scd, что
Ms/x^)=S;
• M(vx.ф) - это наибольшее (по с) множество состояний scd, что Ms/x(ф) = S.
Часто удобно использовать тернарное отношение
выполнимости/истинности | между состояниями, моделями и формулами: s |мф ^ seM(ф).
В отдельном комментарии нуждается определение семантики конструкции наибольшей и наименьшей неподвижной точки. Корректность определения (т.е. существование наименьшего и наибольшего решений уравнения Ms/x(ф)=S над 2В) следует из теоремы Кнастера-Тарского о неподвижных точках монотонных (неубывающих) отображений на полных решётках [12, 9, 14]. За недостатком места мы не можем приводить эту теорему целиком, но сформулируем только её следствие.
Следствие 1 (из теоремы Кнастера-Тарского). Для любой пропозициональной переменной xeVar, любой цС-формулы ф в которой нет негативных и связанных вхождений х, для любого п>0, для любой модели М имеют место следующие включения: М(фп^а^е/х)£М(^ х.ф) и М(у х.ф)с М(фпОгие/х).
Определение 4.
• цС-формула ф называется истинной в модели М (обозначение |м ф), если М(ф)=Бм, где Бм - это область модели М; формула называется истинной (обозначение |ф), если она истинна в любой модели.
• цС-формула ф называется выполнимой в модели М, если существует такое состояние s в этой модели, что s |м ф; формула называется выполнимой, если она выполнима в какой-либо модели. Определение 5. Язык формул называется исчислением, если он
снабжён аксиоматической системой доказательства (синтаксического вывода) некоторых формул этого языка, которые в таком случае называются доказуемыми или выводимыми в этом исчисления. Если в языке формул семантически определено понятие истинных формул, то будем говорить, что этот язык
• разрешим, если существует алгоритм проверки истинности формул этого языка;
• аксиоматизируем, если существует алгоритм перечисления всех истинных формул этого языка.
Исчисление (и его аксиоматическая система), в котором выделены истинные формулы, называется
• корректным, если все доказуемые формулы являются истинными;
• полным, если все истинные формулы являются доказуемыми.
Язык формул, в котором семантически определено понятие истинных формул, называется (синтаксически) аксиоматизируемым (или аксиоматизируемым в узком смысле) если для него существует полное и корректное исчисление.
Легко видеть, что синтаксически аксиоматизируемый язык формул автоматически является аксиоматизируемым.
В первоначальной работе [9] было определено ^-исчисление и
доказана его корректность. Первая полная и корректная синтаксическая аксиоматизация для цС была построена в работе [14], а полнота и корректность исходной аксиоматизации была доказана только спустя 7 лет в работе [14]. Разрешимость цС с экспоненциальной верхней оценкой сложности была доказана независимо в работе [11] (с использованием трансляции формул цС в недетерминированные схемы Янова на основе разрешающего алгоритма для обобщенной тотальности таких схем из работ [4, 10]) и работе [8] (методом сведения к проблеме непустоты автоматов на бесконечных деревьях).
2. Специальные классы формул и моделей
Определение 6. Пусть М - класс моделей, а ф и ф - формулы цС. Будем говорить, что эти формулы эквивалентны в классе М, если для любой модели М из этого класса М(ф)=М(ф). В частности, если М - это класс всех моделей, то будем говорить просто об эквивалентности формул; если же М состоит из единственной модели М, то эти формулы эквивалентны в модели М.
Определение 7. цС-формула нормализована, если в ней отрицание -применяется только к пропозициональным переменным.
Легко доказать следующее обобщение законов де Моргана.
Утверждение 1. Для любой пропозициональной переменной х и любых цС-формул ф и ф имеем:_
-(-ф)эквивалентна ф
-(флф) эквивалентна (-ф)у(-ф) -(фуф) эквивалентна (-ф)л(-ф)
-(<а>ф) эквивалентна [а](-ф) -([а]ф) эквивалентна <а>(-ф)
-(ц х.ф) эквивалентна V х.(-ф(-х/х)) -(V х.ф) эквивалентна ц х.(-ф(-х/х))
Поэтому всякая цС-формула эквивалентна некоторой нормализованной цС-формуле, которую можно построить по исходной формуле за линейное время (от размера формулы).
Определение 8. Пусть ф - цС-формула, а х - переменная; будем говорить, что переменная х защищена в ф, если любое вхождение х в ф находится в области действия хотя бы одной модальности [...]/<...>. Формула называется защищённой если в ней все связанные вхождения переменных защищены.
В [13, 14] доказано следующее
Следствие 2 (из теоремы Кнастера-Тарского). Всякая цС-формула эквивалентна некоторой защищенной цС-формуле, которую можно построить по исходной формуле за экспоненциальное время (от размера формулы).
Определение 9. Строгая модель - это произвольная модель М=фД,Е) такая, что для любой программной переменной аеА^ её интерпретация R(a) - это всюду определённая функция R(a):D—Вариант ^-исчисления с тем же синтаксисом, что у цС, но в семантике которого используются
только строгие модели, будем называть строгим ^-исчислением (^s - от ц-strict). Определения истинности и выполнимости ^s-формул аналогично определению 4, но использует только строги модели.
Утверждение 2. Следствие 1, утверждение 1 и следствие 2 переносятся на строгое ^-исчисление; кроме того, для любой программной переменной aeAct и любой ^s-формулы ф следующие ^s-формулы [а]ф и <а>ф эквивалентны. Поэтому всякая ^s-формула эквивалентна некоторой защищенной нормализованной ^C-формуле без [...]-модальности, причём эту формулу можно построить по исходной за экспоненциальное время (от размера формулы).
Определение 10. Формулы (возможно, разных логик) называются равноистинными если они или одновременно истинны, или одновременно не являются таковыми; аналогично, формулы называются равновыполнимыми, если они или одновременно выполнимы, или одновременно не являются таковыми.
Известно, что импликацию —» и эквивалентность ^ можно ввести как макросы (сокращения) в формулах: для любых формул ф и ф выражение ф—>ф - это сокращение для (-ф) v ф, а выражение ф^ф - это сокращение для (ф—>ф)л(ф—>ф). Аналогично, для программных переменных f и g, для пропозициональной переменной p будем использовать выражение (f;p?)*;g в качестве следующего макроса в формулах:
[(f;p?)*;g^ - это сокращение для v x.([g]ф л [f](p —» x)), <(f;p?)*;g^ - это сокращение для ц x.(<g^ v <f>(p л x)), где ф - произвольная формула, а new обозначает каждый раз новую (нигде ранее не использованную) пропозициональную переменную. В [11] доказано следующее
Утверждение 3. Пусть ф - произвольная ^C-формула, и пусть для каждой программной переменной aeAct, которая встречается в ф, fa, ga и pa -новые программные и пропозициональная переменные; пусть ^s-формула ф получается из ф в результате замены вех вхождений каждой программной переменной aeAct на (fa;pa?)*;ga; тогда ^C-формула ф равноистинна и равновыполнима с ^s-формулой ф. Поэтому по всякой ^C-формуле за линейное время (от размера формулы) можно построить равноистинную и одновременно равновыполнимую ^s-формулу.
Доказательство проходит в два этапа. Во-первых, каждая ^C-формула ф истинна тогда и только тогда, когда она истинна во всех счётных древовидных моделях для ф. Каждая древовидная модель - это ориентированное дерево, в котором рёбра помечены программными переменными, которые встречаются в ф, а вершины помечены множествами пропозициональных переменных, которые тоже встречаются в ф. Область такой модели - это вершины дерева; интерпретация любой программной переменной (встречающейся в ф) - это все рёбра этого дерева, помеченные этой переменной; означивание любой
пропозициональной переменной (встречающейся в ф) - это все вершины, содержащие эту переменную в своей пометке. Для перехода к древовидной модели от некоторой исходной модели достаточно сначала в исходной модели сначала «склеить» все состояния, в которых истинны одни и те же цС-формулы, а потом «совершить» бесконечный обход этой модели (как графа) в ширину, начиная с произвольно выбранной вершины (развернуть её в бесконечное дерево). При этом истинность всех цС-формул в состояниях сохраняется после склейки состояний и после копирования при обходе в ширину.
Во-вторых, от любой счётной древовидной цС-модели для цС-формулы ф можно перейти к цS-модели для построенной цS-формулы ф, «промоделировав» интерпретацию каждой программной переменной аеАс^ встречающейся в ф, при помощи (см. рис. 1)
• введения в дерево после каждой вершины дополнительных промежуточных вершин,
• конструкции (в которой новые программные переменные fa и ga интерпретируются функциями) для недетерминированного последовательного перебора всех а-наследников этой вершины,
• и пропозициональной переменной ра для «контроля» на дополнительных вершинах конечно ли множество а-наследников.
В этой построенной цS-модели ф истинна в тех и только тех состояниях исходной счётной древовидной цС-модели, в которых истинна цС-формула ф. ■
Следствие 3 (из теоремы Кнастера-Тарского). Для любой пропозициональной переменной xeVar, любой цS-формулы ф в которой нет негативных и связанных вхождений х, для любой строгой модели М имеют место следующие равенства: М(ц х.ф)= ип>о М(фп^аке/х)) и М^ х.ф)= П п>о М(фпОгие/х)).
Доказательство. Оба равенства доказываются одновременной индукцией по числу конструкторов неподвижных точек в формуле ф. Так как доказательство базы индукции и шага для обоих равенств проходят аналогично, то дадим набросок доказательства только базы индукции только для первого из равенств - для М(ц х.ф)= ип>о М(фп(£а^е/х). База индукции когда ф не имеет конструкторов неподвижных точек
доказывается следующим образом. Во-первых, для любого n>0 включение M^n(false/x)£M(^ x^) верно в любой модели (см. следствие 1). А во-вторых, обратное включение M(^ x^)£Un>oM^n(false/x) можно доказать от противного.
Обозначим Un>oM^n(false/x) через s и предположим, что Ms/x^)^s. Тогда существует такое состояние seDM, что se(Ms/x^)\s). Так как ф -формула без неподвижных точек, то существует конечное множество sfln£s такое, что seMsnn/xfa). Но тогда seUn>o M(фn(false/x) в силу конечности множества sfln. - Пришли к противоречию. Следовательно сделанное предположение неверно и имеет место равенство Ms/x^)=s. ■
Определение 11. Эрбранова модель [11] или свободная интерпретация [2, 3] - это строгая модель, в которой область D - это множество Act* всех слов, построенных из программных переменных (включая пустое слово О), а интерпретация R задаётся следующим образом: R(a)(w)= wa для любой программной переменной aeAct и любого слова weAct*.
Если внимательно проанализировать первый этап доказательства утверждения 3, то можно доказать следующее
Утверждение 4. ^s-формула истинна тогда и только тогда, когда она истинна во всех эрбрановых интерпретациях.
3. Недетерминированные схемы Янова
Схемы Янова [5, 6] - классическая модель программ, обладающая хорошими алгоритмическими свойствами [2, 3]. Определим, следуя [4, 10, 11] синтаксис и семантику недетерминированных схем Янова.
Определение 12. Метка - это произвольное натуральное число. Присваивание (помеченный оператор присваивания) - это произвольное выражение вида l: f goto L, где l - метка, f - программная переменная, а L -конечное множество меток (возможно, пустое). Выбор (помеченный оператор выбора или условный оператор) - это произвольное выражение вида l: if p then L+ else L-, где l - метка, p - пропозициональная переменная, а L+ и L- - конечные множества меток (возможно, пустые). Недетерминированная схема Янова (н.с.я.) - это произвольное конечное множество помеченных операторов.
Легко видеть, что классические схемы Янова - это н.с.я. в которых все множества меток (т.е. все L, L+ и L- в операторах) являются одноэлементными.
Семантика («работа») н.с.я. определяется в строгих интерпретациях в терминах конфигураций, срабатываний операторов и траекторий. Неформально говоря, работа схемы в интерпретации начинается с оператора, помеченного меткой 0 (ноль), состоит в исполнении операторов в соответствии с командами передачи управления и заканчивается при переходе на любую метку, которая не метит ни одного оператора в схеме.
Определение 13. Выберем и зафиксируем произвольную н.с.я. s и произвольную строгую модель M=(D, R, I). Конфигурация - это
произвольная пара (l, s), где l - метка, а s - состояние. Срабатывание оператора l: f goto L - это произвольная пара конфигураций (l, s)(l', s') такая, что s'=f(s) и l'eL. Срабатывание оператора l: if p then L+ else L- - это произвольная пара конфигураций (l, s)(l', s) такая, что l'eL+, если seE(p), и l'eL- в противном случае. Трасса (S) - это произвольная последовательность состояний (lo, so) ... (lk, sk)(lk+i, sk+i) ... такая, что каждая пара конфигураций (lk, sk)(lk+i, sk+i) является срабатыванием какого-либо оператора (S). Полная трасса (S) - это такая трасса, которая начинается с метки 0, и, или заканчивается меткой, которая не метит ни одного оператора в S, или бесконечна.
Любая (классическая) схема Янова в любой строгой модели для любого состояния имеет ровно одну полную трассу, которая начинается в этом состоянии. Схема Янова называется тотальной, если все ее полные трассы во всякой строгой модели являются конечными. Проблема тотальности для схем Янова - это алгоритмическая задача определения по произвольной входной схеме Янова, является ли эта схема тотальной. Хорошо известно, что проблема тотальности разрешима для схем Янова, причём, для проверки тотальности достаточно проверить во всех эрбрановых моделях конечность полных трасс, которые начинаются с конфигурации (0, О) (где О - пустое слово) [2, 3]. Понятие, которое вводится в следующем определении, является обобщением понятия тотальности схем Янова.
Определение 14. Пусть FinçVar - произвольное множество пропозициональных переменных; эрбранова модель M=(D,R,E) называется подходящей для Fin, если для любой пропозициональной переменной peFin множество E(p) является конечным; н.с.я. S называется тотальной относительно Fin, если в любой подходящей для Fin модели S имеет конечную полную трассу, начинающуюся в конфигурации (0, О ). Проблема обобщённой тотальности - это алгоритмическая задача определения по произвольной н.с.я. S и множеству пропозициональных переменных Fin, является ли эта схема S тотальной относительно этого множества Fin.
Договоримся характеризовать размер н.с.я. количеством операторов присваивания Па и операторов выбора ne в схеме. В работах [4, 10] разработана и обоснована процедура проверки обобщенной тотальности со сложностью exp(nA+nc). Ниже мы опишем новую процедуру проверки обобщенной тотальности, но только для класса так называемых защищенных н.с.я.
Определение 15. Н.с.я. называется защищённой, если любой путь (по графу блок-схемы этой н.с.я.) ненулевой длины от какого-либо условного оператора к какому-либо условному оператору (возможно к тому же) с одной и той же пропозициональной переменной обязательно содержит оператор присваивания.
Вообще говоря, можно так обобщить для н.с.я. понятие функциональной эквивалентности классических схем Янова [2, 3], что
каждая н.с.я. окажется эквивалентной некоторой защищённой н.с.я. Однако, с точки зрения исследования разрешимости и аксиоматизируемости цС, это свойство не представляет интереса. Для исследования разрешимости и аксиоматизируемости цС важно, что защищённую н.с.я. можно превратить в модель.
Определение 16. Пусть S - защищенная н.с.я. Для каждой пропозициональной переменной p, которая встречается в S, пусть plsp и minp - пара новых (различных) программных переменных. Обозначим через Ms модель (Ds, Rs, Es), где
• DS - это объединение следующих множеств
o {(l, f) : l - метка, f - программная переменная такие, что в S есть
оператор присваивания l: f goto ...}; o {(l, p), {(l, -p) : l - метка, p - пропозициональная переменная
такие, что в S есть оператор выбора l: p then ... else ...}; o { (l, stop) : l - метка, которая встречается в S, но не метит ни одного оператора};
• для любой программной переменной f, которая встречается в S, Rs(f) = { ((l, f), (k, m)) : (l, f) и (k, m) - состояния из Ds, а в S есть оператор присваивания l: f goto L где keL};
• для любой пропозициональной переменной p, которая встречается в S, Rs(plsp) = { ((l, p), (k, m)) : (l, p) и (l', m) - состояния из Ds, а в S есть оператор выбора l: if p then L else ..., где keL};
• для любой пропозициональной переменной p, которая встречается в S, RS(minp) = { ((l, -p), (k, m)) : (l, -p) и (l', m) - состояния из DS, а в S есть оператор выбора l: if p then ... else L, где keL};
• для любой пропозициональной переменной p, которая встречается в S, Es(p) = { (l, p) : (l, p) - состояние из Ds}.
Определение 17. Пусть FunCAct - произвольное конечное множество программных переменных, ф - произвольная цС-формула, M=(D,R,E) -модель, а s - состояние этой модели. Для произвольной бесконечной последовательности состояний so, si, ...cd будем говорить, что она порождается Fun из s в M, если so=s, и для любого k>0 существует aeFun что (sk, sk+i)eR(a). Будем также говорить, что
• формула ф неизбежна при Fun в M из s, если любая бесконечная последовательность состояний so, si, ...cd порождённая Fun из s содержит состояние sj [мф;
• Fun справедливо к ф в М из s, если любая бесконечная последовательность состояний so, si, ...cd порождённая Fun из s содержит бесконечную подпоследовательность состояний to, ti, ..., в которой tj [мф для любого состояния tj, j>0.
Утверждение 5. Для любой защищенной н.с.я. S, произвольного конечного множества пропозициональных переменных Fin, если Fun - это множество всех программных переменных S и новых программных
переменных, соответствующих пропозициональным переменным, которые встречаются в S, имеем: S тотальна относительно Fin ^ Fun справедливо к
VpgFinP в Ms.
Доказательство: Схема Янова называется свободной, если любой путь по графу её блок-схемы реализуется в некоторой модели (для некоторых состояний) [2, 3]. Это определение можно распространить на н.с.я. Так как S - защищенная н.с.я., то она является свободной. В силу свободы S и конечности Fin имеем: S не является тотальной относительно Fin ^ существует бесконечная полная трасса в Ms в которой формула VpeFinP выполняется только конечное число раз. ■
Определение 18. Пусть FunÇAct - произвольное конечное множество программных переменных, а ф - произвольная цС-формула. Обозначим через AF(Fun, ф) (от Always in Future, одна из связок Computation Tree Logic CTL [1]) следующую цС-формулу ц y. (ф v AaeFun[a]y), а через fair(Fun, ф) - цС-формулу v x. (AF(Fun, ф a AaeFun[a]x)).
Утверждение 6. Для любой модели M=(D, R, E), для любого состояния seD, для любых конечного множества программных переменных Fun и цС-формулы ф имеем:
• s f=M AF(Fun, ф) ^ ф неизбежна при Fun в M из s;
• s f=M fair(Fun, ф) ^ Fun справедливо к ф в M из s.
Доказательство первой части утверждения очевидно. Для
доказательства второй части выберем произвольную бесконечную последовательность состояний so, si, ...ÇD, порождённую Fun из s в M такую, что so h«fair(Fun, ф); в силу первой части утверждения среди её элементов есть состояние to, что to [тиф a AF(Fun, x), то есть такое, что to [мф и to h«AF(Fun, fair(Fun, ф)); поэтому среди членов этой последовательности, следующих за to, есть такое состояние t1, что t1 [мф a AF(Fun, x), и так далее. ■ Из утверждений 5 и 6 следует
Утверждение 7. Для любой защищенной н.с.я. S, произвольного конечного множества пропозициональных переменных Fin, если Fun - это множество всех программных переменных S и новых программных переменных, соответствующих пропозициональным переменным, которые встречаются в S, имеем: S тотальна относительно Fin ^ s [м fair(Fun, VpeFinP).
Определение 19. Задача верификации в моделях (model checking) [1] формул (варианта) ^-исчисления - это задача вычисления М(ф) по входной модели М (из класса моделей для данного варианта) и ^-формуле ф (данного варианта).
Утверждение 8. Проблема обобщенной тотальности для защищённых н.с.я. разрешима за время O(nA+nc)2.
Доказательство этого утверждения следует из утверждения 7 и того факта [1], что верификацию ^-формулы ф в конечной модели M=(D,R,E) можно выполнить за время 0(|ф|х|М|а11(ф)), где |ф| - число связок и модальностей в формуле, ак(ф) - число альтернаций (перемен)
вложен^ных неподвижных точек ц/v, а |M| - размер модели (равный сумме числа состояний и ребер в интерпретации R). 4. Разрешимость ц-исчисления
Опишем рекурсивный алгоритм F2s (Formulas To schemes) трансляции строгих защищенных нормализованных ^s-формул в защищенные недетерминированные схемы Янова. В описании этого алгоритма мы будем использовать стандартные структурированные конструкции s';s'' для последовательной композиции, if q then s' else s'' для детерминированного выбора и недетерминированного выбора s'Us'' н.с.я. s' и s''; эти структурированные конструкции легко представимы в терминах и средствами н.с.я. Кроме того мы будем использовать конструкции stop для завершения работы (перехода на метку, которая ничего не метит) и loop для бесконечного цикла.
• Для любой пропозициональной переменной
o F2s(p) = {0: if p then stop else loop}, o F2s(-p) = {0: if p then loop else stop}.
• F2S(флф) = if q then F2s^) else F2s^), где q - новая пропозициональная переменная.
• F2S(фvф) = F2s^) U F2s^).
• Для любой пропозициональной переменной
• F2S(<a>ф) = {0: a goto stop} ; F2s^).
• F2s(^x^) получается из F2s^) в результате замены всякого условного оператора if x then stop else loop на оператор безусловного перехода goto {0}.
• F2s(vx^) получается из F2s^) в результате замены всякого условного оператора if x then stop else loop на условный оператор if p then {0} else stop.
Утверждение 9. В результате применения алгоритма F2s к защищенной нормализованной ^s-формуле за линейное время получается защищенная н.с.я.
Утверждение 10. Пусть ф - произвольная нормализованная ^s-формула, Gfp (Greatest fix points) - множество всех пропозициональных переменных этой формулы, связанных в этой формуле посредством v. ^s-формула ф тождественно истинна в эрбрановой модели M тогда только тогда, когда н.с.я. F2s^) останавливается во всяком подходящем для Gfp расширении M.
Доказательство можно провести индукцией по структуре формулы. База индукции (случай, когда формула - это пропозициональная переменная или ее отрицание) и шаг индукции для дизъюнкции и модальности <...> являются очевидными.
Шаг индукции для конъюнкции следует из возможности интерпретировать новую пропозициональную переменную q в if q then F2s^) else F2s^) произвольным образом и тем самым «проверить» обе
н.с.я. F2s^) и F2s(^).
Идея доказательства шага индукции для ^ф.ф состоит в следующем. Согласно следствию 3, M(^x^) = Un>0 M(фn(false/x)). Но F2s(^x^) получается из F2S(ф) в результате замены всякого условного оператора if x then stop else loop на оператор безусловного перехода goto {0}, т.е. F2s(^x^) есть как бы F2s(vn>0 фn(false/x)).
Идея доказательства шага индукции для vp^ состоит в следующем. Согласно следствию 3, M(vx^) = Пп>0 M^n(true/x)). Но F2s(vx^) получается из F2s^) в результате замены всякого условного оператора if x then stop else loop на условный оператор if p then {0} else stop, т.е. F2s(vx^) есть как бы F2s^n>0 фn(true/x)), причем p может быть истинным любое (но только) конечное число раз (т.к. peGfp). ■
На основании утверждений 2-4 и 8-10 мы получаем следующую теорему.
Теорема. Пропозициональное ^-исчисление разрешимо с экспоненциальной верхней оценкой сложности посредством сведения проблемы тождественной истинности ^-формул к проблеме обобщенной тотальности недетерминированных схем Янова.
Литература
1. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ. Model Checking. - М.: МЦНМО, 2002.
2. Котов В.Е. Введение в теорию схем программ. - Новосибирск: Наука, Сиб. отд-ние, 1978.
3. Котов В.Е., Сабельфельд В.К. Теория схем программ. - М.: Наука, 1991.
4. Непомнящий В.А., Шилов Н.В. «Недетерминированные схемы программ и их отношение к программным логикам» // Кибирнетика. - 1988, №3. - Стр.12-18, 28.
5. Янов Ю.И. «О логических схемах алгоритмов» // Проблемы кибернетики, вып. 1. М.: Физматгиз, - 1958. - Стр.75-127.
6. Подловченко Р.И. «От схем Янова к теории моделей программ» // Математические вопросы кибернетики, вып. 7. - 1998. - Стр.281-302.
7. Emerson E.A. «Model Checking and the Mu-calculus» // Proceedings of a DIMACs Workshop Descriptive Complexity and Finite Models, American Mathematical society. - P.185-214.
8. Emerson E.A. and Jutla C.J. «The Complexity of Tree Automata and Logics of Programs» // siAM J. Comput., v. 29. - 1999. - P.132-158.
9. Kozen D. «Results on the Propositional Mu-Calculus» // Theoretical Computer science, v.27. -1983. - P.333-354.
10. Nepomniaschij V.A., shilov N.V «Non-deterministic program schemata and their relation to dynamic logic» // Mathematical logic and its applications, Proc. Adv. Int. summer sch. &Conf., Druzhba/Bulgaria, 1986. Plenum Press. - 1987. - P.137-147.
11. snilov N.V «Program schemata vs. Automata for Decidability of Program Logics» // Theor. Comput. sci., v.175. - 1997. - P.15-27.
12. Tarski A. «A lattice-theoretical fixpoint theorem and its applications» // Pacific Journal of Mathematics, v.5. - 1955. - P.285-309.
13. Walukiewicz I. «A Complete Deductive system for the mu-Calculus» // Proceedings of IEEE LICs'93. - 1993. - P.136-147.
14. Walukiewicz I. «Completeness of Kozen's axiomatisation of the propositional Mu-calculus» // Information and Computation, v.157. - 2000. - P.142-182.