Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Темпоральные логики и их применение в верификации реагирующих программных систем

Содержание

Ограниченность классической логики для выражения свойств динамических объектов (изменяющихся во времени)Классическая логика высказываний (propositional logic)Примитивная модель истины: “черно-белая” модель, высказывания статичны, неизменны во времениВ обычной логике высказываний адекватно не формализуются предложения, в которых явно или не
Темпоральные логики и их применение в верификации реагирующих программных систем. Логики LTL, Ограниченность классической логики для выражения свойств динамических объектов (изменяющихся во времени)Классическая логика Классическая и темпоральная логикиЛогика высказыванийФ=(¬p ∨ q ) ⇒ r Темпоральная логика Tense LogicОператоры Дополнительные модальности TL: Until, neXtF и G выражаются через U: 		Fp ≡ Linear Temporal Logic (LTL)Формальное определение темпоральной логикиФормула φ LTL это :атомарное утверждение LTL в дискретном времениНа этой цепочке выполняются формулы p, q,~r, ~(r&~q), qU(r&~q), Примеры формализация высказываний в LTL“Dum spiro, spero” - пока живу – надеюсьG(я_живу LTL и анализ дискретных технических системПоследовательность “миров” в LTL можно толковать как Примеры формул LTLG q - всегда в будущемF q - хотя бы Линейное и ветвящееся времяCтруктура Крипке –система переходов с помеченными состояниями и непомеченными Логика ветвящегося времени – CTL*Возможные формулы CTL* : A Формулы LTL:AG( p ⇒F q )А (¬а∨ Gb & (aU ¬c))А ( CTLСинтаксис (грамматика): ::= p|¬φ | ϕ ∨ φ | AX φ | Пример формализации утверждения формулой логики CTLЛюбой грешник всегда имеет шанс вернуться на Выражение свойств технических систем в логике ветвящегося времени CTL AGAF Restart при Выражение свойств технических систем в логике ветвящегося времени CTL EF(Start & ¬Ready) Приступая к моделированиюВ методе верификации Model Checking в качестве спецификации системы используется Структура КрипкеВычислением σ структуры Крипке M называется любая бесконечная последовательность σ = Model Checking для CTL: проверка истинности формулы на развертке структуры Крипке (неформально)М, Базис CTL.Примечание. Формулы темпоральной логики φ и ψ называются семантически эквивалентными (обозначается Алгоритм маркировкиПусть задана произвольная формула Ф логики CTL и структура Крипке M. Маркировка состояний для формул AF,EX,EUМаркировка состояний в случаях конъюнкции, дизъюнкции, импликации и Свойства системыСистемаОбщая схема верификации для СTLСпецификация системы (формальная модель)Процедура проверкиСпецификация требований (формальный Демонстрационный пример. Задача – анализ поведения СВЧ печиТребуется создать и верифицировать систему, Формализация системы. Выбираем APСначала выберем множество атомарных предикатов. Пусть это будут следующие Формализация системы. Теперь будем разбираться в системе, параллельно дополняя соответствующую ей структуру Модель печи.t Спецификация требований. Примечание. Отбросив надписи на ребрах на предыдущем слайде, получим структуру Формализация требований.Для формализации требований мы будем использовать логику CTL.Следует отметить, что CTL Пример. Алгоритм MC для модели СВЧ печи Выражая наше требование через базис Проверка требования.Итак, дано: формула ¬E(True U ¬ (¬Cd ⇒ ¬Ht) )и структура Проверка требования. Маркировка состоянийf5 = EU(True, f4) = E(True U f4) ; Верификация программФормальная верификация программ – это приемы и методы формального доказательства (или Тестирование. + и -(+) Проверяется реальная программа, а не ее модель.(+) Проверка Верификация. + и -(+) Происходит проверка всех возможных вычислений модели системы на Вывод 1:Верификация не является панацеей, это всего лишь эффективный способ проверки. Действительно, Свойства системыСистемаОбщая схема верификацииСпецификация системы (формальная модель)Процедура доказательства  (проверки)Спецификация требований Этапы верификацииСогласно схеме, приведенной ранее, верификация состоит из трех этапов:1) Построение модели Итоги:Я надеюсь, что не смотря на то, что мы разобрали всего один Примеры использования подходаCambridge ring protocol IЕЕЕ Logical Link Control protocol, LLC 802.2 Model checkingModel checking - метод верификации ПО и аппаратуры, основанный на изящных ЛитератураЮ.Г.Карпов. Model checking. Верификация параллельных и распределенных программных систем.   // ЗаключениеModel checking – достигшая зрелости область формального анализа, интенсивно использующаяся для верификации Спасибо за внимание!
Слайды презентации

Слайд 2 Ограниченность классической логики для выражения свойств динамических объектов

Ограниченность классической логики для выражения свойств динамических объектов (изменяющихся во времени)Классическая

(изменяющихся во времени)
Классическая логика высказываний (propositional logic)
Примитивная модель истины:

“черно-белая” модель, высказывания статичны, неизменны во времени
В обычной логике высказываний адекватно не формализуются предложения, в которых явно или не явно присутствуют свойства, истинность которых изменяется со временем:
Путин - президент России (истинно только в какой-то период)
Мы не друзья, пока ты не извинишься
Если m поступило на вход в канал, то потом m появится на выходе
Запрос к лифту c произвольного этажа, поступивший в любой момент времени, будет когда-нибудь в будущем удовлетворен

Мы хотим изучать и верифицировать системы, развивающиеся во времени, а обычная классическая логика неадекватна для выражения их свойств!

.

Темпоральные логики


Слайд 3 Классическая и темпоральная логики
Логика высказываний
Ф=(¬p ∨ q )

Классическая и темпоральная логикиЛогика высказыванийФ=(¬p ∨ q ) ⇒ r Темпоральная

⇒ r
Темпоральная логика
Ф=AG[(p ⇒ E(¬q U r

)]

Интерпретации PL – наборы значений переменных
(конечное число)

Интерпретации TL – системы переходов, в каждом состоянии которых свой набор значений переменных
(бесконечное число)

Модели систем


Слайд 4 Tense Logic
Операторы

Tense LogicОператоры

Слайд 5 Дополнительные модальности TL: Until, neXt
F и G выражаются

Дополнительные модальности TL: Until, neXtF и G выражаются через U: 		Fp

через U: Fp ≡ true U p, Gp ≡

¬F¬p

X (Next time) Хp истинно в момент t, если p истинно в следующий момент времени (если считать моменты времени дискретными, то в момент t+1)

Примечание. Нам не важно в какой именно момент времени случится событие. Действительно, так как мы проверяем систему на наличие ошибок, нам не важно в какой именно момент времени может произойти ошибка, важно исключить любую возможность ее возникновения вообще. Также стоит признать очевидным тот факт, что прошлое при анализе технических систем менее важно, чем будущее.


Слайд 6 Linear Temporal Logic (LTL)
Формальное определение темпоральной логики
Формула φ

Linear Temporal Logic (LTL)Формальное определение темпоральной логикиФормула φ LTL это :атомарное

LTL это :
атомарное утверждение (атомарный предикат)

p, q, ...,
или Формулы, связанные логическими операторами ∨, ¬
или Формулы, связанные темпоральными операторами U, X
Прошлое обычно не рассматривают

Другие темпоральные операторы :
Fp = true U p
Gp = ¬F ¬p

Грамматика: φ ::= p | φ1∨ φ2 | ¬φ | Xφ | φ1 U φ2 | Fφ | G φ


Слайд 7 LTL в дискретном времени



На этой цепочке выполняются формулы

LTL в дискретном времениНа этой цепочке выполняются формулы p, q,~r, ~(r&~q),

p, q,~r, ~(r&~q), qU(r&~q), Fq, ... – потому что

они истинны в w0

Семантика возможных “миров”, в каждом свое понимание истинности:

В каждом мире произвольная логическая формула истинна, либо нет:

Это же справедливо и для произвольной темпоральной формулы:


Модель времени – бесконечная последовательность миров (вчера, сегодня, завтра, …)


Слайд 8 Примеры формализация высказываний в LTL
“Dum spiro, spero” -

Примеры формализация высказываний в LTL“Dum spiro, spero” - пока живу –

пока живу – надеюсь
G(я_живу ⇒ я_надеюсь)
“Мы придем к победе

коммунистического труда!”
F коммунистический_труд_победил!
“Сегодня он играет джаз, а завтра Родину продаст!”
он_играет_джаз ⇒ Xон_продает_Родину – слишком буквально
G(он_играет_джаз ⇒ FXон_продает_Родину)
“Раз Персил – всегда Персил”
G(Персил ⇒ GПерсил) – раз попробовав, будешь использовать всегда
“Мы не друзья, пока ты не извинишься”
¬Мы_друзья U Ты_извиняешься ∨ G(¬ Мы_друзья &¬Ты_извиняешься)


Слайд 9 LTL и анализ дискретных технических систем
Последовательность “миров” в

LTL и анализ дискретных технических системПоследовательность “миров” в LTL можно толковать

LTL можно толковать как бесконечную последовательность состояний дискретной системы,

а отношение достижимости – как дискретные переходы системы:

Атомарные предикаты - базисные свойства процесса в состояниях:

(Формула F является истинной, если она истинна в начальном мире)
Производные темпоральные формулы в состояниях – это свойства динамического процесса, характеризующие вычисление в будущем:

qUp – выполняется на вычислении
Gr – не выполняется на вычислении


Слайд 10 Примеры формул LTL
G q - всегда в будущем
F

Примеры формул LTLG q - всегда в будущемF q - хотя

q - хотя бы раз в будущем
¬F q

– никогда в будущем

GFq – бесконечно много раз в будущем

FGq – с какого-то момента постоянно

G[p⇒Fq] – всегда на р будет реакция q


Слайд 11 Линейное и ветвящееся время
Cтруктура Крипке –система переходов с

Линейное и ветвящееся времяCтруктура Крипке –система переходов с помеченными состояниями и

помеченными состояниями и непомеченными переходами
Развертка структуры Крипке определяет бесконечные

цепочки состояний - возможные ВЫЧИСЛЕНИЯ



Каждое состояние может иметь не одну, а множество цепочек – продолжений, и является корнем своего дерева историй (вычислений)
Но как понимать формулы LTL: Gp, pUq, … в состоянии s?

Для решения этой проблемы вводятся “кванторы пути”

Е φ ≡ “существует такой путь из данного состояния, на котором формула пути φ истинна” (Еxists)

А φ ≡ “для всех путей из данного состояния формула пути φ истинна” (All)

Очевидно, А φ ≡ ¬Е ¬φ

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

cUb


Слайд 12 Логика ветвящегося времени – CTL*
Возможные

Логика ветвящегося времени – CTL*Возможные формулы CTL* : A

формулы CTL* : A [(pUr)∨(qUr)], A [ Xp∨XXr ],

EGFp

Грамматика СTL* :
- Формулы состояний φ ::= р |¬φ | φ ∨ φ | Е α | Aα
Формулы путей α ::= φ | αUα | Xα
формула φ состояния s является формулой пути σ, если это состояние s является начальным состоянием пути σ

Темпоральные логики ветвящегося времени рассматривают возможные вычисления (пути на дереве) - траектории на развертке структуры Крипке
СTL* – Computational Tree Logic* - это одна из возможных логик ветвящегося времени

Базис CTL* = {¬, ∨, U, X, E}

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


Слайд 13 Формулы LTL:
AG( p ⇒F q )
А (¬а∨ Gb

Формулы LTL:AG( p ⇒F q )А (¬а∨ Gb & (aU ¬c))А

& (aU ¬c))
А ( a U ¬b)
Формулы СTL:
AG(

p&¬EF(q⇒r) )
EF( а & E(aU ¬c))
A (a U ¬ b )

Формулы СTL*:
Е(¬p & X A F q)
ЕX (а & AX(bUc) ]
А (a U ¬ (F b) )

LTL и CTL – подклассы CTL*

В LTL - формулы пути, которые должны выполняться для всех вычислений, т.е. предваряются квантором пути А

В CTL – формулы состояний. Пояснение. То есть формулы, где каждый темпоральный оператор предваряется квантором пути А или Е.


Слайд 14 CTL
Синтаксис (грамматика):
::= p|¬φ | ϕ ∨ φ

CTLСинтаксис (грамматика): ::= p|¬φ | ϕ ∨ φ | AX φ

| AX φ | EX φ | AF φ

| EF φ | AG φ | EG φ | A[ϕ U φ ] | E[ ϕ U φ ]

Слайд 15 Пример формализации утверждения формулой логики CTL
Любой грешник всегда

Пример формализации утверждения формулой логики CTLЛюбой грешник всегда имеет шанс вернуться

имеет шанс вернуться на путь истинной веры:
В любом состоянии

вашей жизни (AG) существует такой путь, что на нем в конце концов обязательно (ЕF) попадем в состояние, с которого идет путь “истинной веры” (EG)

AG EF EG ‘истинная вера ’


Слайд 16 Выражение свойств технических систем в логике ветвящегося времени

Выражение свойств технических систем в логике ветвящегося времени CTL AGAF Restart

CTL
AGAF Restart
при любом функционировании системы (на любом

пути) из любого состояния системы всегда обязательно вернемся в состояние рестарта
¬EF( int >0.01)
не существует такого режима работы прибора, при котором интенсивность облучения пациента превысит 0.01 радиан в сек
AG(antiFire_is_on ⇒ P captain_Permission)
в любом режиме, если противопожарная система включается, то на это обязательно предварительно была получена санкция капитана
AG (req3 ⇒ (req3 U ack))
во всех режимах после того, как запрос req3 установится, он никогда не будет снят, пока на него не придет подтверждение
E[ p U A [q U r] ]
cуществует режим, в котором условие p будет истинным с начала вычисления до тех пор, пока q не станет непрерывно активно до выполнения r

Слайд 17 Выражение свойств технических систем в логике ветвящегося времени

Выражение свойств технических систем в логике ветвящегося времени CTL EF(Start &

CTL
EF(Start & ¬Ready)
существует путь, на котором достижимо

состояние, где Start выполняется, а Ready – нет
AG(Req ⇒AF Answ)
на любой полученный запрос Req всегда в будущем получим ответ Answ
AG[q ⇒ AX[A(¬p U r) ∨ AG ¬r] ]
между q и r свойство р никогда не выполнится
Примечание. Темпоральная логика является расширением классической. То есть все тавтологии КИВ истины также и в ней.


Слайд 18 Приступая к моделированию
В методе верификации Model Checking в

Приступая к моделированиюВ методе верификации Model Checking в качестве спецификации системы

качестве спецификации системы используется структура Крипке. Что же представляет

собой эта структура?

Структура Крипке М это пятерка М =(S, S0, R, L, AP)

S – конечное непустое множество состояний модели.
S0 ⊆ S – множество начальных состояний модели.
R ⊆ S × S – отношение переходов между состояниями,
обладающее свойством тотальности, т.е. ∀s ∈ S ∃t ∈ S ((s, t) ∈ R (Из любого состояния есть переход).
AP – конечное множество атомарных предикатов модели программы. (Атомарным предикатом может быть например утверждение «х равно 5»)
L: S→ 2^ |AP| – функция пометок (каждому состоянию отображение L сопоставляет множество истинных на нем атомарных предикатов).


Слайд 19 Структура Крипке
Вычислением σ структуры Крипке M называется любая

Структура КрипкеВычислением σ структуры Крипке M называется любая бесконечная последовательность σ

бесконечная последовательность σ = q0 q1 q2 … такая

что q0 ⊆ S0, и для любого неотрицательного i справедливо (q i, q i+1) ⊆ R. Формально вычисление структуры Крипке можно представить как отображение натурального ряда в множество состояний структуры. Таким образом σ(i) это какое-то состояние структуры Крипке.

Траекторией структуры Крипке соответствующей вычислению σ называется бесконечная цепочка L(σ) = L(q0) L(q1) L(q2) … То есть бесконечная цепочка подмножеств атомарных предикатов, истинных в соответствующих состояниях σ. Формально траектория – это отображение натурального ряда в 2^ |AP|.

Мы будем моделировать динамические системы в виде определенных структур Крипке.
Примечание. Стоит отметить что модель всегда проще реальной системы, она строится с помощью абстрагирования, отбрасывания части параметров, характеристик, особенностей реальной системы. Не смотря на это, важно, чтобы модель сохранила существенные черты исходной системы.

Слайд 20 Model Checking для CTL: проверка истинности формулы на развертке

Model Checking для CTL: проверка истинности формулы на развертке структуры Крипке

структуры Крипке (неформально)
М, s0|= p∧q
М, s0|= EX q∧r
М, s0|=

¬AX(q∧r)
М, s0|= ¬ EF(p∧r)
М, s0|= ¬ EGr
М, s0|= AFr
М, s0|= E[ (p∧q) Ur]
М, s0|= A[ p U r ]
М, s0|= EF AGr

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


Слайд 21 Базис CTL.
Примечание. Формулы темпоральной логики φ и ψ

Базис CTL.Примечание. Формулы темпоральной логики φ и ψ называются семантически эквивалентными

называются семантически эквивалентными (обозначается φ ≡ ψ), если они

принимают одинаковые истинностные значения на каждой возможной интерпретации (структуре Крипке).
Для того, чтобы наш алгоритм был более простым нам нужно определиться с базисом. Пусть это будет например тройка { EX, AF, EU }
Покажем, что остальные 5 комбинаций можно выразить через эти 3:
AXφ ≡ ¬EX¬φ
EGφ ≡ ¬AF¬φ
A(φ1Uφ2) ≡ AFφ2 ∧ ¬E(¬φ2 U (¬φ1 ∧ ¬φ2 ) )
EFφ = E(True U φ)
AGφ ≡ ¬EF¬φ
Мы опустим доказательство того, что ни одна из комбинаций {EX,AF,EU} не выражается через 2 оставшиеся.



Слайд 22 Алгоритм маркировки
Пусть задана произвольная формула Ф логики CTL

Алгоритм маркировкиПусть задана произвольная формула Ф логики CTL и структура Крипке

и структура Крипке M. Для каждой подформулы ψ формулы

Ф алгоритм маркировки выполняет следующие шаги:
Вычисляется множество Sψ состояний структуры Крипке M, в которых выполняется ψ.
Вводится новый атомарный предикат pψ.
Этим атомарным предикатом помечаются все состояния из Sψ.
Поскольку обработка каждой формулы ψ заканчивается введением нового атомарного предиката pψ, и маркировкой этим предикатом всех состояний, на которых выполняется формула, то можно считать, что на каждом шаге алгоритма элементами подформул являются только атомарные предикаты. По завершении алгоритма, если начальное состояние структуры Крипке M помечено атомарным предикатом pφ, формула Ф выполняется на M.
Примечание. Код реализации алгоритма мы приводить не будем. Отметим лишь, что на каждом шаге алгоритма мы должны проводить синтаксический анализ формулы, для выявления очередных подформул с заданной глубиной.

Слайд 23 Маркировка состояний для формул AF,EX,EU
Маркировка состояний в случаях

Маркировка состояний для формул AF,EX,EUМаркировка состояний в случаях конъюнкции, дизъюнкции, импликации

конъюнкции, дизъюнкции, импликации и отрицания очевидна. Рассмотрим случаи с

AF, EX, EU:
Множество состояний, на которых выполняется EXp, строится из тех состояний, хотя бы один из преемников которых уже помечен p.
Множество состояний Y, на которых выполняется AFp, строится в два этапа. Сначала в Y собираются те состояния, которые уже помечены p (не забываем, что настоящее – часть будущего). Затем в Y добавляются состояния, все преемники которых уже принадлежат Y. Этот шаг повторяется многократно до тех пор, пока в Y можно добавить хотя бы одно новое состояние.
Множество состояний Y, на которых выполняется E(pUq), также выполняется в два этапа. Сначала в множество Y собираются те состояния, которые помечены q, в этих состояниях выполняется E(pUq), поскольку в них истинно q. Затем в Y добавляются те состояния, помеченные p, у которых хотя бы один преемник уже принадлежит Y. Этот шаг повторяется до тех пор, пока в Y добавляется хотя бы одно новое состояние.


Слайд 24 Свойства системы
Система
Общая схема верификации для СTL
Спецификация системы (формальная

Свойства системыСистемаОбщая схема верификации для СTLСпецификация системы (формальная модель)Процедура проверкиСпецификация требований

модель)
Процедура проверки
Спецификация требований (формальный язык)
Формула темпоральной логики CTL
Структура Крипке


Да, система удовлетворяет спецификации

Нет, система НЕ удовлетворяет спецификации

Алгоритм Model Checking


Слайд 25 Демонстрационный пример. Задача – анализ поведения СВЧ печи
Требуется создать

Демонстрационный пример. Задача – анализ поведения СВЧ печиТребуется создать и верифицировать

и верифицировать систему, которая представляет собой логику “поведения” СВЧ

печи. При этом система должна удовлетворять следующему требованию:
Ни при каких обстоятельствах не должно работать излучение СВЧ печи при открытой дверце. (Важность этого требования очевидна).


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


Слайд 26 Формализация системы. Выбираем AP
Сначала выберем множество атомарных предикатов.

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

Пусть это будут следующие предикаты:
st (start) = «кнопка

пуск нажата»
cd (close door) = «дверца печи закрыта»
ht (heating) = «излучение включено»
er (error) = «печь выдает сообщение об ошибке»

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

Слайд 27 Формализация системы.
Теперь будем разбираться в системе, параллельно

Формализация системы. Теперь будем разбираться в системе, параллельно дополняя соответствующую ей

дополняя соответствующую ей структуру Крипке.
Наш пользователь открыл упаковку,

прочитал инструкцию, установил печь, и подключил ее к электросети.
В этот момент печь находится в состоянии s0 в котором истинным является только 1 атомарный предикат, а именно cd (close door).
Допустим теперь, что пользователь открыл дверцу. Открыв ее он попал в состояние s1, где не один из AP не является истинным. Если он теперь закроет дверцу, он попадет обратно в s0. Если пользователь в состоянии s1 нажмет кнопку start, он попадет в состояние s2, в котором истинными являются предикаты er (error) и st (start).

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

Слайд 28 Модель печи.
t

Модель печи.t

Слайд 29 Спецификация требований.
Примечание. Отбросив надписи на ребрах на

Спецификация требований. Примечание. Отбросив надписи на ребрах на предыдущем слайде, получим

предыдущем слайде, получим структуру Крипке, соответствующую нашей системе.

Теперь

мы переходим ко второму этапу верификации, а именно к формализации требований.
При верификации методом Model Checking формальную спецификацию возможно задать формулой логики LTL, либо формулой CTL.
Стоит отметить, что реагирующие системы являются развивающимися во времени. Это и объясняет тот факт, что темпоральные логики идеально подходят для формализации свойств этих систем.

Примечание. Существует мнение, что сформулировать требования проще на языке LTL, а при использовании языка CTL мы имеем более простой алгоритм проверки на удовлетворение требований.


Слайд 30 Формализация требований.
Для формализации требований мы будем использовать логику

Формализация требований.Для формализации требований мы будем использовать логику CTL.Следует отметить, что

CTL.
Следует отметить, что CTL имеет несколько возможных базисов, но

наши требования мы можем формализовать используя всю мощь CTL, а затем свести полученные формулы требований к базису. (Базис нужен для упрощения алгоритма проверки).
Напомним, что нашим требованием было:
Ни при каких обстоятельствах не должно работать излучение СВЧ печи при открытой дверце. (Важность этого требования очевидна).
Очевидно это требование можно представить следующей формулой CTL:
AG(¬Cd ⇒ ¬Ht) – для любого пути (A) всегда справедливо (G), что из того, что дверца не закрыта следует то, что излучение выключено.



Слайд 31 Пример. Алгоритм MC для модели СВЧ печи
Выражая

Пример. Алгоритм MC для модели СВЧ печи Выражая наше требование через

наше требование через базис получим:
AG(¬Cd ⇒ ¬Ht) = ¬

EF¬ (¬Cd ⇒ ¬Ht) = ¬ E(True U ¬ (¬Cd ⇒ ¬Ht) )
Не существует такой ситуации, при которой сначала будет верно True, а затем встретится ситуация, когда не верно, что при открытой дверце не работает нагрев.

Теперь рассмотрим сам алгоритм. Его основная идея – для каждой подформулы (начиная с простых) заданной формулы CTL определить, в каких состояниях заданной структуры Крипке M эта подформула выполняется.
Этот алгоритм мы называли алгоритмом маркировки.



Слайд 32 Проверка требования.
Итак, дано: формула ¬E(True U ¬ (¬Cd

Проверка требования.Итак, дано: формула ¬E(True U ¬ (¬Cd ⇒ ¬Ht) )и

⇒ ¬Ht) )
и структура Крипке M.
Требуется проверить выполнимость этой

формулы на M.
(Прошу прощения за то, что направления рёбер очень плохо видно.)

f1 = ¬Cd ; очевидно, множество Sf1 включает состояния: s1, s2.
f2 = ¬Ht ; Sf2: s0, s1, s2, s3, s4
f3 = f1⇒ f2 ; в Sf3 не будут входить только те состояния, которые помечены предикатом f1, но не помечены f2, но таких состояний нет. Следовательно Sf3: s0, s1, s2, s3, s4, s5. f4 = ¬f3 ; Sf4 - пустое


Слайд 33 Проверка требования. Маркировка состояний
f5 = EU(True, f4) =

Проверка требования. Маркировка состоянийf5 = EU(True, f4) = E(True U f4)

E(True U f4) ; Сначала в множество Sf5 собираются

все состояния, помеченные f4, то есть ни одного состояния. Затем выбираются те состояния, которые помечены True (то есть все состояния), и у которых хотя бы один преемник входит в Sf5. То есть Sf5 – пустое.
f6 = ¬f5 ; Sf6 – s0, s1, s2, s3, s4, s5.
Таким образом, наша формула выполняется не только в нужном нам s0, но и во всех остальных состояниях.

¬E(TrueU¬(¬Cd ⇒ ¬Ht))
f1 = ¬Cd ;
f2 = ¬Ht ;
f3 = f1⇒ f2 ;
f4 = ¬f3 ;


Слайд 34 Верификация программ
Формальная верификация программ – это приемы и

Верификация программФормальная верификация программ – это приемы и методы формального доказательства

методы формального доказательства (или опровержения) того, что модель программной

системы удовлетворяет заданной формальной спецификации.
На данный момент существует несколько методов реализации верификации программных систем. Самый распространенный из этих методов - Model Checking.
Стоит отметить что этот метод применяется в основном к реагирующим системам. Хотя его так же можно применить и к функциональным (трансформационным) системам.
Так же стоит отметить, что верификация предназначена прежде всего для систем, где очень важна надежность. То есть для таких систем, сбой в которых приводит к недопустимым последствиям. (Финансовые системы; системы жизнеобеспечения; бортовые системы машин, самолетов и других транспортных средств: медицинские и бытовые приборы etc.)

Давайте проведем сравнительный анализ верификации с еще одним распространенным методом проверки программ, а именно с тестированием. Рассмотрим преимущества и недостатки каждого из методов проверки.

Слайд 35 Тестирование. + и -
(+) Проверяется реальная программа, а

Тестирование. + и -(+) Проверяется реальная программа, а не ее модель.(+)

не ее модель.
(+) Проверка может быть выполнена в реальное

среде, с реальными интерфейсами.
(+) Проверять можно реальные наиболее опасные или часто используемые режимы работы системы.

( - ) Тестирование очень трудоемкий процесс.
( - ) Тестирование выполняется на поздних этапах разработки, поэтому цена исправления найденных ошибок очень велика.
( - ) Все реакции системы при выполнении тестирования должны быть заранее зафиксированы.
( - ) Тестированием можно проверить лишь немногие траектории вычисления системы, а их обычно бесконечное количество.
( - ) Тестирование сложных систем трудно автоматизируется.
( - ) Э. Дейкстра: “Тестированием можно доказать только наличие ошибок”, а не их отсутствие.
( - ) Тестированием плохо выявляются (точнее почти не выявляются) редко возникающие ошибки, особенно в параллельных системах и системах реального времени.
( - ) В случае выявлении ошибки, невозможно точно сказать, где она произошла.

Слайд 36 Верификация. + и -
(+) Происходит проверка всех возможных

Верификация. + и -(+) Происходит проверка всех возможных вычислений модели системы

вычислений модели системы на удовлетворение желаемого условия.
(+) Возможность автоматизировать

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

( - ) Язык спецификации требований системы может быть не полным, недостаточным для выражения желаемых свойств системы.
( - ) Сама автоматизированная система верификации может содержать ошибки.
( - ) Поскольку невозможно формально определить “полное отсутствие ошибок”, верификация (так же как и тестирование) не может гарантировать абсолютную правильность системы.
( - ) Не смотря на автоматизацию большей части верификации, приходится использовать высококвалифицированный персонал для составления адекватной модели системы.

Слайд 37 Вывод 1:
Верификация не является панацеей, это всего лишь

Вывод 1:Верификация не является панацеей, это всего лишь эффективный способ проверки.

эффективный способ проверки. Действительно, вряд ли кто-то согласился бы

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

Слайд 38 Свойства системы
Система
Общая схема верификации
Спецификация системы (формальная модель)
Процедура доказательства

Свойства системыСистемаОбщая схема верификацииСпецификация системы (формальная модель)Процедура доказательства (проверки)Спецификация требований (на

(проверки)
Спецификация требований (на формальном языке)
Верификация – формальное доказательство того,

что объект обладает требуемыми свойствами

Слайд 39 Этапы верификации
Согласно схеме, приведенной ранее, верификация состоит из

Этапы верификацииСогласно схеме, приведенной ранее, верификация состоит из трех этапов:1) Построение

трех этапов:
1) Построение модели (возможно уже существующей системы), то

есть формализация системы. Это самый трудоёмкий процесс, требующий абстрагирования. Фактически, от того, на сколько хорошо будет построена модель, зависит вся дальнейшая кампания по верификации. Модель должна быть не слишком громоздкой, и при этом полностью отображать суть предметной области.
2) Составление, на одном из формальных языков требований системы.
3) Автоматизированная (ну или в нашем случае ручная) проверка на удовлетворение моделью требований к системе.

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

Слайд 40 Итоги:
Я надеюсь, что не смотря на то, что

Итоги:Я надеюсь, что не смотря на то, что мы разобрали всего

мы разобрали всего один простой пример, алгоритм верификации MC

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

На следующих слайдах приведено несколько фактов о Model Checking.

Слайд 41 Примеры использования подхода
Cambridge ring protocol
IЕЕЕ Logical Link

Примеры использования подходаCambridge ring protocol IЕЕЕ Logical Link Control protocol, LLC

Control protocol, LLC 802.2
фрагменты больших протоколов XTP и

TCP/IP
отказоустойчивые системы, протоколы доступа к шинам, протоколы контроля ошибок в аппаратуре,
криптографические протоколы
протокол Ethernet Сollision Avoidance
DeepSpace1 (NASA). Уже после тщательного тестирования и сдачи системы были найдены несколько критических ошибок

Верифицированные системы, в которых выявлены ошибки


Слайд 42 Model checking
Model checking - метод верификации ПО и

Model checkingModel checking - метод верификации ПО и аппаратуры, основанный на

аппаратуры, основанный на изящных формальных методах. Это качественный прорыв

в верификации

ACM : Премия Тьюринга в июне 2008 г. была вручена трем создателям техники MODEL CHECKING, внесшим в нее наиболее существенный вклад:
Edmund Clarke (CMU) Allen Emerson (CMU) Joseph Sifakis (VERIMAG )
“за их роль в превращении метода Model checking в высокоэффективную технологию верификации, широко используемую в индустрии разработки программного обеспечения и аппаратных средств”

Stuart Feldman, Президент ACM:
“Это великий пример того, как технология, изменившая промышленность, родилась из чисто теоретических исследований”


Слайд 43 Литература
Ю.Г.Карпов. Model checking. Верификация параллельных и распределенных программных

ЛитератураЮ.Г.Карпов. Model checking. Верификация параллельных и распределенных программных систем.  //

систем.
// БХВ. Петербург, 2010
А.М.Миронов. Верификация программ

методом Model Сhecking.
// Издательство и год не указаны
Некоторые интернет ресурсы, в частности, wikipedia.

Слайд 44 Заключение
Model checking – достигшая зрелости область формального анализа,

ЗаключениеModel checking – достигшая зрелости область формального анализа, интенсивно использующаяся для

интенсивно использующаяся для верификации дискретных систем
Model checking имеет множество

применений в разнообразных областях анализа динамических систем
Существует ряд проблем, препятствующих простому применению этого подхода в индустрии разработки ПО
В настоящее время - это область интенсивных исследований

  • Имя файла: temporalnye-logiki-i-ih-primenenie-v-verifikatsii-reagiruyushchih-programmnyh-sistem.pptx
  • Количество просмотров: 113
  • Количество скачиваний: 0