Научная статья на тему 'Верификация моделей систем на базе эквациональной характеристики формул LTL'

Верификация моделей систем на базе эквациональной характеристики формул LTL Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
212
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕРИФИКАЦИЯ / MODEL CHECKING / ЭКВАЦИОНАЛЬНАЯ ХАРАКТЕРИСТИКА RLTL / МОДЕЛЬ КРИПКЕ / АВТОМАТ БЮХИ / ФОРМУЛА ВРЕМЕННОЙ ЛОГИКИ / LTL / CTL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кораблин Ю. П., Шипов А. А., Кочергин А. С.

Метод верификации на моделях Model Checking уже давно получил широкое признание в области, связанной с оценкой качества работы программных и технических систем. Такие ключевые компании в области IT-индустрии, как Intel, Microsoft, Amazon и другие, активно применяют его на этапах разработки и сопровождения своих продуктов. Успех Model Checking, безусловно, не является случайным, поскольку именно его появление и развитие позволили решить множество проблем в области верификации, а именно: проблемы унифицированного представления программных и технических систем, формального задания требований, автоматизации этапов верификации, верификации больших распределенных программных систем и другие. Однако постоянное развитие современных технологий и темпы роста сложности современных программных систем ставят перед Model Checking все новые проблемы, которые могут стать непреодолимым препятствием на пути эффективной верификации. Поэтому необходимо постоянное совершенствование теории и инструментов данного метода. В статье авторами подробно рассматривается реализация алгоритма верификации метода Model Checking для формул логики линейного времени LTL на базе новой нотации RLTL (Recursive Linear Temporal Logic), которая является рекурсивным представлением формул логики линейного времени. Поскольку на базе RLTL могут быть заданы как модель верифицируемой системы, так и требования к ней, можно избежать необходимости их предварительного преобразования к автоматам Бюхи и сразу приступать к процессу верификации, что упростит алгоритм метода и повысит его эффективность.

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

For a long time, the Model Checking method has been widely used in the field related with software and technical systems quality evaluation. Such top IT companies as Intel, Microsoft, Amazon, etc. actively use it in the processes of development and maintenance of their products. Such a success of this method is certainly not accidental. It helped to solve a lot of problems in the field of verification, namely: the problems of unified representation of software and technical systems, the problem of formal requirements representation, the automation of verification phases, the verification of large distributed software systems, etc. However, such challenges as the continuous development of modern technologies and the growth rates of modern software sys-tems complexity can become an insurmountable obstacle for effective verification with Model Checking. Therefore, it is necessary to make permanent improvements of its theory and tools. The article demonstrates a new verification algorithm of Linear Temporal Logic formulas by means of Model Checking based on the new RLTL notation (Recursive Linear Temporal Logic), which is a recursive representation of LTL formulas. This algorithm can avoid necessary conversions into Büchi automatons of the system model and verifying statements since RLTL can be used to define both of them. This allows beginning a verification process immediately and increases Model Checking efficiency.

Текст научной работы на тему «Верификация моделей систем на базе эквациональной характеристики формул LTL»

УДК 519.767.2 Дата подачи статьи: 05.06.17

DOI: 10.15827/0236-235X.030.3.456-460 2017. Т. 30. № 3. С. 456-460

ВЕРИФИКАЦИЯ МОДЕЛЕЙ СИСТЕМ НА БАЗЕ ЭКВАЦИОНАЛЬНОЙ ХАРАКТЕРИСТИКИ ФОРМУЛ LTL

Ю.П. Кораблин, д.т.н.., профессор, [email protected]; А.С. Кочергин, аспирант, [email protected];

А.А. Шипов, к.т.н.., [email protected] (Российский государственный социальный университет, ул. Вильгельма Пика, 4, г. Москва, 129226, Россия)

Метод верификации на моделях Model Checking уже давно получил широкое признание в области, связанной с оценкой качества работы программных и технических систем. Такие ключевые компании в области IT-индустрии, как Intel, Microsoft, Amazon и другие, активно применяют его на этапах разработки и сопровождения своих продуктов. Успех Model Checking, безусловно, не является случайным, поскольку именно его появление и развитие позволили решить множество проблем в области верификации, а именно: проблемы унифицированного представления программных и технических систем, формального задания требований, автоматизации этапов верификации, верификации больших распределенных программных систем и другие.

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

В статье авторами подробно рассматривается реализация алгоритма верификации метода Model Checking для формул логики линейного времени LTL на базе новой нотации RLTL (Recursive Linear Temporal Logic), которая является рекурсивным представлением формул логики линейного времени. Поскольку на базе RLTL могут быть заданы как модель верифицируемой системы, так и требования к ней, можно избежать необходимости их предварительного преобразования к автоматам Бюхи и сразу приступать к процессу верификации, что упростит алгоритм метода и повысит его эффективность.

Ключевые слова: верификация, Model Checking, эквациональная характеристика RLTL, модель Крипке, автомат Бюхи, формула временной логики, LTL, CTL.

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

Среди формальных методов верификации наибольшую популярность за свою практичность и эффективность получил так называемый метод проверки на моделях Model Checking [1, 2]. Базовая идея алгоритма этого метода для требований к системе, заданных в виде формул логики линейного времени LTL [3, 4], представлена в виде схемы на рисунке 1.

Использование данной схемы в чистом виде при верификации моделей систем больших размеров (более 220 состояний) во многих случаях может приводить к тому, что верификация либо будет выполняться очень долго, либо вообще не будет выполнена. Для решения данных проблем и достижения более высокой производительности сегодня существует ряд специальных средств и методов, которые за счет определенных манипуляций над моделью системы и/или над требованиями к ней позволяют добиться приемлемой производитель-

ности [5-7]. В частности, одним из инструментов повышения эффективности выполнения верификации является предложенный в работе [8] метод абстракции и унификации RLTL-моделей (Recursive Linear Temporal Logic).

В данной статье авторами предложен принципиально иной подход к повышению производительности процесса верификации, который явля-

Система

Структура Крипке M

Требования к системе

I

LTL-формула ф

M

Алгоритм проверки( модели

ф не выполняется на M контрпример

ф выполняется на M

Рис. 1. Схема работы алгоритма верификации формул LTL методом Model Checking

Fig. 1. The scheme of LTL formulas verification algorithm using the Model Checking method

ется результатом использования предложенной в [9] новой нотации LTL, обозначаемой как RLTL. Показана возможность выполнения на базе RLTL и самого процесса верификации, что позволит упростить алгоритм верификации методом Model Checking и привести его к виду, представленному на рисунке 2.

КЬТЬ-нотация

Рассмотрим представления основных базовых конструкций логики ЬТЬ, заданных в КЬТЬ-нота-ции:

ЬТЬ ЯЬТЬ

ф1 V ф2 ф1 + ф2 ф1 Л ф2 {ф1, ф2> Хф А о ф

Запись {ф1, ф2} означает множество д, состоящее из предикатов ф1 и ф2.

В КЬТЬ приняты следующий бозначения. о - оператор продолжения (конкатенация выражений), что позволяет использовать оператор X в неявном виде, а также упростить его восприятие, в частности, запись Д1 о Д2 будет пониматься как «Д2 следует за Д1».

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

А - предикат неопределенности, задающий неопределенное множество свойств системы д, выполнимых на конкретном этапе вычислительного процесса. Отрицанием предиката неопределенности является некоторое другое неопределенное подмножество свойств д', а отрицанием отрицания - некоторое третье неопределенное подмноже-

ство д''. Таким образом, отрицание предиката неопределенности является неполным, а каждое последующее отрицание дает неопределенное подмножество атомарных предикатов. Каждое из этих подмножеств ввиду своей неопределенности также может быть обозначено через А.

1 - оператор остановки вычислительного процесса. Это означает, что, как только данный оператор встречается в конкретный момент времени вычислительного процесса, в дальнейшем ни одно свойство системы не будет выполнено.

Сформулируем основные аксиомы нотации

RLTL:

A1. ЕЕф = Еф (ЕЕ)

A2. ООф = Оф (ОО)

А3. 1Еф = Gty (1Е)

A4. 1Оф = Fty (1О)

A5. Оф = ф ° Оф (О)

A6. Еф = ф + А ° Еф (Е)

A7. Оф + Юф = А (+ О)

A8. Еф + 1Еф = А (+ Е)

A9. Оф1 ° ф2 = Оф1 (О о)

A10. Еф1 о ф2 = Е(ф1 о ф2) (Е о)

A11. и(ф1, ф2) = ф2 + ф1 о и(ф1, ф2) (U)

А12. 1(Ц о Ц1) = 1ц + А о 1ц (1ц о)

А13. {Ц, А} = ц (А)

A14. {ф1, А о ф2} = ф1 о ф2 (А о)

A15. 1Ц = (А \ Ц) 1ц

A16. 1 о Ц = Ц о 1 = 1 1 о

A17. 1 + Ц = Ц 1 +

Правила вывода в КЪТЪ: Я1. 1А ^ А.

Лемма 1. Оператор Б логики ЬТЬ, рекурсивное представление которого задано как Fq = q V Х^), может быть представлен в КЬТЬ-нотации в виде Б' = q + А о Б'.

Доказательство. Обозначим Fq через Б'. Тогда Б' = Fq = q V X(Fq) = q V Х(Б'). Отсюда, в соответствии с правилами представления формул ЬТЬ в КЬТЬ, получаем: Б' = q + А о Б'. ■

Лемма 2. Оператор в логики ЬТЬ, рекурсивное представление которого задано как Gq = q Л X(Gq), может быть представлен в КЬТЬ-нотации в виде Б' = q о Б'.

Доказательство. Обозначим Gq через Б'. Тогда Б' = Gq = q Л X(Gq) = q Л Х(Б'). Отсюда, в соответствии с правилами представления формул ЬТЬ в КЬТЬ, получаем

Б' = {^ А о Б'} = [А14] = q о Б'. ■ Лемма 3. Оператор и логики ЬТЬ, рекурсивное представление которого задано как р^ = q V (р Л Л X(pИq)), может быть представлен в КЬТЬ-нота-ции в виде Б' = q + р о Б'.

Доказательство. Обозначим р^ через Б'. Тогда Б' = р^ = q V (р Л X(pИq)) = q V (р Л X(F')).

Ç Система ^ Ç Требования к системе ^

Модель на базе RLTL

LTL-Формула ф

Алгоритм проверки модел и

ф не выполняется на M контрпример

ф выполняется на M

Рис. 2. Схема работы алгоритма верификации формул LTL методом Model Checking на базе RLTL

Fig. 2. The scheme of LTL formulas verification algorithm using the Model Checking method based on RLTL

Отсюда, в соответствии с правилами представления формул LTL в RLTL, получаем: F' = q + {p, А о F'} = [A14] = q + p о F'. ■

Построение синхронной композиции двух систем рекурсивных уравнений

Идея верификации моделей систем, заданных на базе RLTL-нотации, практически ничем не отличается от верификации систем, заданных в виде автоматов Бюхи. Для того чтобы проверить, выполняется ли целевое требование, также заданное с помощью RLTL, на модели системы или нет, необходимо запустить две системы синхронно (модель и требование к ней) и следить за процессом их синхронной работы. Система, работающая синхронно, осуществляет переход в следующее состояние по некоторому символу p тогда и только тогда, когда вторая система также может выполнить переход из своего текущего состояния в некоторое новое состояние по символу p.

Сформулируем основные аксиомы, необходимые для построения синхронной композиции двух систем рекурсивных уравнений:

51. Ц1®Ц2 = Ц1, если Ц1 £ Ц2,

Ц2, если Ц2 £ Ц1, 1 в противном случае,

52. ц®1 = 1,

53. ц®А = ц,

54. (Ц1 + Ц2) ® Ц3 = (Ц1 ® цз) + (Ц1 ® цз),

55. (Ц1 о Ц2) ® (цз о Ц4) = (Ц1®Цз) о (Ц2®Ц4).

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

Пример построения синхронной композиции

Дано.

Система A:

Fa1 = a о Fa1 + b о Fa2,

Fa2 = c о Fa1.

Система B:

Fb1 = c + А о Fb1.

Для построения синхронной композиции расширим систему A следующим образом, полагая, что в случае наступления события «с» система продолжит работать бесконечно долго, то есть зациклится: FB1 = с о Fb2 + А о Fb1, Fb2 = А о Fb2.

Решение.

Построение синхронной композиции A®B:

P1 = Fa1®Fb1 =

= (a®c) о (Fa1®Fb2) + (a® А) о (Fa1®Fb1) + +(b®c) о (FA2®FB2) + (b® А) о (FA2®FB1) = =1 о (Fa1®Fb2) + (a® А) о P1 + 1 о (Fa2®Fb2) + + (b® А) о P2 = 1 + a о P1 + 1 + b о P2 = a о P1 + b о P2. P2 = Fa2®Fb1 = (c®c) о (Fa1®Fb2) + (с® А) о (Fa1®Fb1) = = (c®c) о P3 + (c®А) о P1 = c о P3 + c о P1. P3 = Fa1®Fb2= (a® А) о (Fa1®Fb2) + (b® А) о (Fa2®Fb2) = = a о P3 + b о P4.

P4 = Fa2®Fb2=(c®A) о (FA1®FB2) = c о Рз.

Конечная синхронная композиция:

Pi = a о Pi + b о Р2,

Р2 = С о Рз + с о Pi,

Рз = a о Рз + b о Р4,

Р4 = С о Рз.

Теорема 1. Пусть заданы две системы рекурсивных уравнений A и B, где PL, Р12, ..., Р1п - множество метапеременных системы A; Р21, Р22, ..., Р2т - множество метапеременных системы B.

Р1 = Z« о Piij, где N = {1, 2, ...,n}.

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

jeN

P2i = Zaik о P2ik, где M = {1, 2, ...,m}.

keM

ViVj 3l e N такое, что Piij = Р1е

ViVk 3r e M такое, что P2ik = Р2Г.

Тогда синхронная композиция двух систем уравнений A и B, где Р1 = Pii ® Р21, конечна.

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

Обозначим через Ç(u, v) = Р1и ® P2v , (*) где u = 1, 2, ..., n; v = 1, 2, ..., m.

Количество выражений ^(u, v) конечно. По построении синхронной композиции имеем

Ç(u, v) = Z« uj о Р1ч) ® Za vk о P2vk =

jeN keM

= Z («uj®«vk)о (Piuj ® P2vk) =

jeN, keM

= Z («uj ® «vk ) о Pjk, где все Pij входят в множе-

jeN, keM

ство (*). Таким образом, получается, что система уравнений для синхронной композиции A и B конечна. ■

Верификация

Для верификации с помощью RLTL необходимо наличие модели M на базе RLTL, а также проверяемое относительно нее требование ф, заданное на базе LTL. Для проверки выполнимости в системе заданного требования ф, как и в алгоритме верификации формул логики линейного времени, будет использовано обратное требование ]ф. Главным и самым важным отличием предлагаемого алгоритма от алгоритма верификации формул LTL является то, что верификация на базе RLTL более производительная, поскольку не требуется преобразовывать модель и обратное к ней требование в автоматы Бюхи. При этом осуществляется лишь преобразование обратного требования, заданного с помощью LTL, в RLTL-представление. Переход от LTL к RLTL является тривиальным и выполняется по описанным выше правилам и аксиомам в отличие от алгоритмов перехода от LTL к автоматам Бюхи, которые, как сказано в [1], зачастую выдают автоматы Бюхи экспоненциальной сложности относительно длины формулы ф.

Отметим также, что, если формулировать требования к системе сразу на базе RLTL-нотации,

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

Ключевым процессом в RLTL-верификации, как и в алгоритме верификации формул LTL, является процесс построения синхронной композиции. После того как будет построена композиция двух систем в соответствии с методом, представленным ранее, необходимо выполнить оценку результатов данного процесса. Чтобы исходное требование ф оказалось невыполнимым для модели M, достаточно найти любую ветку вычислительного процесса M, на которой выполняется обратное требование 1ф. Если такая ветка существует, она и будет искомым контрпримером. Обратное требование 1ф выполнимо для композиции М®1ф на некотором ее вычислительном пути тогда и только тогда, когда в М®1ф присутствуют все уравнения из 1ф. Пример 2. Верификация модели. Дано.

Модель системы (М):

Fai = a ° Fai + b ° Fa2, Fa2 = c о Fai.

Проверяемое требование (ф) LTL: ф = Fc - когда-нибудь наступит «с». Обратное требование (1ф) LTL: 1ф = G1c - всегда будет «1с». Обратное требование (1ф) RLTL: F1B1 = 1c о F]bi. Решение.

Построение синхронной композиции М®1ф:

Pi = Fai®F]bi =

=(a®]c) о (Fai®F]bi) + (b®]c) о (Fa2®F]bi) =

=(a®(A\c)) о (Fai®F]bi) +

+(b®(A\c)) о (Fa2®F]bi) =

=a о (Fai®F]bi) + b о (Fa2®F]bi) = a о Pi+ b о P2.

P2 = Fa2®F]B1 = (c®]c) о (Fa1®F]Bi) =

= 1 о Fai ®F]bi = 1.

Конечная синхронная композиция:

P1 = a о P1+ b о P2,

P2 = 1.

Результат: P1 = a 0 P1.

Проверяемое свойство 1ф выполняется на М, поскольку в М®18 в полной мере было реализовано свойство 1ф, а именно, его уравнение на одном из путей вычислительного процесса. Из этого следует, что на этом пути не реализуется ф. Значит, путь P1 ^ a ^ P1 ^ a ^ P1 ... ^ a ^ P1 является контрпримером.

Рассмотрим более содержательный пример, в котором будет выполняться проверка работы дымового извещателя. Для наглядности на рисунке 3 представлена его модель в виде автомата Бюхи, где

Рис. 3. Модель дымового извещателя на базе автомата Бюхи

Fig. 3. A smoke detector model based on Buchi automaton

a - режим готовности; b - срабатывание датчика дыма; с - опрос соседних датчиков; d - режим тревоги.

Модель дымового извещателя на базе нотации RLTL будет иметь следующий вид:

Fai = a о Fai + b о Fa2, Fa2 = c о Fa3, Fa3 = d о Fa4 + a о Fai, Fa4 = d о Fa4 + a о Fai.

Проверяемое требование (ф) LTL: ф = = GF(b^-Xc) - всегда, в случае наступления в будущем в некоторый момент времени события b, на следующем шаге будет выполнено событие с.

Обратное требование (1ф) LTL: 1ф = FG(b Л Л X1c) - когда-нибудь наступит такой момент, что всегда будет наступать b на текущем шаге и на следующем шаге будет 1с.

Обратное требование (1ф) RLTL: Fbi = b о Fb3 + A о Fbi, Fb2 = b о Fb3, Fb3 = 1c о Fb2.

Построение синхронной композиции М®1ф:

Pi = Fai®Fbi = (a®b) о (Fai®Fb3) + (b®b) о (Fa2®Fb3) + + (a® A) о (Fai®Fbi) + (b® A) о (Fa2®Fbi) = = 1 о (Fai®Fb3) + b о (Fa2®Fb3) + a о (Fai®Fbi) + + b о (Fa2®Fbi) =

= b о (Fa2®Fb3) + a о (Fai ®Fbi) + b о (Fa2®Fbi) = = b о P2 + a о Pi+ b о Рз.

P2 = (FA2®FB3) = (c®1c) о (FA3®FB2) = 1 о (Fa3®Fb2) = 1.

Рз = (Fa2®Fbi) = (c®b) о (FA3®FB3) +

+ (c® A) о (Fa3®Fbi) =

= 1 о (FA3®FB3) + c о (Fa3®Fbi) =

= c о (Fa3®Fbi) = c о P4.

P4 = (Fa3®Fbi) = (d®b) о (Fa4®Fb3) +

+ (d® A) о (Fa4®Fbi) + (a®b) о (Fai®Fb3) +

+ (a® A) о (Fai®Fbi) =

= 1 о (FA4®FB3) + d о (Fa4®Fbi) + 1 о (Fai®Fb3) + + a о (Fai ®Fbi) = d о (Fa4®Fbi) + a о (Fai®Fbi) = = d о P5 + a о Pi.

P5 = (FA4®FB1) = (d®b) о (FA4®FB3) + + (d® A) о (Fa4®Fbi) + (a®b) о (Fai®Fb3) + + (a® A) о (Fai®Fbi) =

= 1 о (FA4®FB3) + d о (Fa4®Fbi) + 1 о (Fai®Fb3) + + a о (Fai ®Fbi) = d о P5 + a о Pi.

Конечная синхронная композиция: Pi = Fai®Fbi = b о 1 + a о (Fai®Fbi) + b о (Fa2®Fbi) = = a о Pi + b о P3.

P3 = (Fa2®Fbi) = c о (Fa3®Fbi) = c о P4.

P4 = (Fa3®Fbi) = d о (Fa4®Fbi) + a о (Fai®Fbi) =

= d о P5 + a о Pi.

P5 = (Fa4®Fbi) = d о (Fa4®Fbi) + a о (Fai®Fbi) = = d о P5 + a о Pi.

Результат. Проверяемое свойство ]ф не выполняется на M, поскольку в композиции M®]S присутствуют не все уравнения из ]ф, а именно, нет уравнений Fb2 и Fb3. Таким образом, исходное требование ф выполнимо на M.

Заключение

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

Работа предложенного алгоритма подробно рассмотрена на конкретных примерах с описанием всех этапов и их теоретической базы. Авторы считают, что он может выступить в качестве более производительной альтернативы существующему, а RLTL-нотация может использоваться в качестве основной структуры данных, на базе которой будут задаваться как модели верифицируемых систем,

так и требования к ним. В целом же такой подход должен способствовать общему повышению быстродействия метода Model Checking за счет снижения сложности алгоритма верификации и использования единой структуры данных.

Литература

1. Карпов Ю.Г. Model Checking. Верификация параллельных и распределенных программных систем. СПб: БХВ-Петер-бург, 2010. 552 с.

2. Кораблин Ю.П. Семантика языков распределенного программирования; [под ред. В.П. Кутепова]. М.: Изд-во МЭИ, 1996. 102 с.

3. Kroger F., Merz S. Temporal logic and state systems. Springer, 2008, 436 p.

4. Manna Z., Pnueli A. The temporal logic of reactive and concurrent systems: specification. Springer, 1992, 427 p.

5. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ. Model Checking. М.: Изд-во МЦНМО, 2002. 416 с.

6. Gerard J. Holzman. An analysis of bitstate hashing. Proc. 15th Int. Conf. on Protocol Specification, Testing, and Verification, 1998, pp. 301-314.

7. Ernst-Rudiger Olderog, Krzysztof R. Apt. Fairness in parallel programs: the transformational approach. ACM Trans. Program. Lang. Syst., 1988, vol. 10, no. 3, pp. 420-455.

8. Шипов А.А., Кораблин Ю.П. Построение моделей систем на базе эквациональной характеристики формул LTL // Программные продукты и системы. 2017. № 1. С. 61-66.

9. Шипов А.А., Кораблин Ю.П. Эквациональная характеристика формул LTL // Программные продукты и системы. 2015. № 4. С. 175-179.

Software & Systems Received 05.06.17

DOI: 10.15827/0236-235X.030.3.456-460 2017, vol. 30, no. 3, pp. 456-460

SYSTEM MODEL VERIFICATION BASED ON EQUATIONAL CHARACTERISTICS OF LTL FORMULAS

Yu.P. Korablin 1, Dr.Sc. (Engineering), Professor, [email protected] A.S. Kochergin 1, Postgraduate Student, [email protected] A.A. Shipov 1, Ph.D (Engineering), [email protected]

1 Russian State Social University, Vilgelm Pik St. 4, Moscow, 129226, Russian Federation

Abstract. For a long time, the Model Checking method has been widely used in the field related with software and technical systems quality evaluation. Such top IT companies as Intel, Microsoft, Amazon, etc. actively use it in the processes of development and maintenance of their products. Such a success of this method is certainly not accidental. It helped to solve a lot of problems in the field of verification, namely: the problems of unified representation of software and technical systems, the problem of formal requirements representation, the automation of verification phases, the verification of large distributed software systems, etc.

However, such challenges as the continuous development of modern technologies and the growth rates of modern software systems complexity can become an insurmountable obstacle for effective verification with Model Checking. Therefore, it is necessary to make permanent improvements of its theory and tools.

The article demonstrates a new verification algorithm of Linear Temporal Logic formulas by means of Model Checking based on the new RLTL notation (Recursive Linear Temporal Logic), which is a recursive representation of LTL formulas. This algorithm can avoid necessary conversions into Buchi automatons of the system model and verifying statements since RLTL can be used to define both of them. This allows beginning a verification process immediately and increases Model Checking efficiency.

Keywords: verification, Model Checking, RLTL the equational characteristics of LTL, Kripke structure, Buchi automaton, temporal logic formula, LTL, CTL.

References

1. Karpov Yu.G. Model Checking. Verifikatsiyaparallelnykh i raspredelennykhprogrammnykh sistem [Model Checking. Verification of Parallel and Distributed Software Systems]. BHV-Peterburg Publ., 2010, 552 p.

2. Korablin Yu.P. Semantikayazykov raspredelennogo programmirovaniya [Semantics of Distributed Programming Languages]. V.P. Kutepov (Ed.). Moscow, MEI Publ., 1996,102 p.

3. Kroger F., Merz S. Temporal Logic and State Systems. Springer Publ., 2008, 436 p.

4. Manna Z., Pnueli A. The Temporal Logic ofReactive and Concurrent Systems: Specification. Springer Publ., 1992, 427 p.

5. Klark E.M., Gramberg O., Peled D. Verifikatsiya modeley programm. Model Checking [Verification of Program Models. Model Checking]. MTsNMO Publ., 2002, 416 p.

6. Holzman G.J. An Analysis of Bitstate Hashing. Proc. 15th Int. Conf. Protocol Specification, Testing, and Verification. 1998, pp. 301-314.

7. Ernst-Rudiger Olderog, Krzysztof R. Apt. Fairness in Parallel Programs: The Transformational Approach. ACM Trans. on Programming Languages and Systems. 1988, vol. 10, no. 3, pp. 420-455.

8. Shipov A.A., Korablin Yu.P. System models construction based on LTL formula equational characteristics. Programmnye produkty i sistemy [Software & Systems]. 2017, no. 1, pp. 61-66 (in Russ.).

9. Shipov A.A., Korablin Yu.P. Equational characteristics of LTL formulas. Programmnye produkty i sistemy [Software & Systems]. 2015, no. 4 (112), pp. 175-179 (in Russ.).

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