Você está na página 1de 86

Introducao a Vericacao de Modelos

Logica Temporal
Verica cao de Modelos em CTL
L ogica para Computacao
Vericacao de Modelos
Davi Romero de Vasconcelos
Universidade Federal do Ceara em Quixada, Brasil
daviromero@ufc.br
14 de janeiro de 2013
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sumario
1
Introdu cao a Vericacao de Modelos
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Verica cao de Modelos
2
Logica Temporal
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
3
Vericacao de Modelos em CTL
Algoritmo com Representacao Explcita
Vericacao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
A Necessidade de Metodos Formais
Sistemas de hardware e software sao amplamente utilizados em
aplicacoes onde falhas sao inaceitaveis, como comercio eletronico,
redes de telefonia, sistemas de controle de trafego aereo,
instrumentos cir urgicos e muitos outros.
Em grande parte, nossas vidas dependem do funcionamento
perfeito, contnuo e ininterrupto destas aplicacoes.
A deteccao de erros no curso de opera cao delas pode ser
tragico.
E mesmo em casos onde nao haja risco de vida, desliga-las e
substituir codigo de funcionamento crtico e muitas vezes
economicamente inviavel.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
A Necessidade de Metodos Formais
Por causa do sucesso da Internet e de Sistemas Embarcados
(Embedded Systems) em automoveis, avioes e outros
dispositivos que exigem total seguranca, estaremos cada vez
mais dependentes do perfeito funcionamento de dispositvos
computacionais no futuro.
Por causa do crescimento desta area tecnologica, sera cada
vez mais importante o desenvolvimento de metodos que
validem nossa conan ca na corretude de determinados
sistemas.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Principais formas de vericacao e validacao
Testes
Simula cao
Vericacao Dedutiva (Prova Matematica)
Vericacao de Modelos
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Testes
Apresentacao de entradas ao sistema implementado e analise das
sadas.
Simulacao
Apresentacao das entradas a um modelo abstrato do sistema e
posterior analise das sadas.
Desvantagens de Testes e Simulacao:
Alto custo e difuculdade da apresenta cao de todas as combinacoes
de entradas ao modelo.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Verica cao Dedutiva (Prova Matematica)
Princpios Basicos
Baseia-se na utiliza cao de axiomas e regras matematicas para
provar a corretude do sistema.
Sistema
Formulas Logicas
=
Propriedade

Formula
=
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Verica cao Dedutiva (Prova Matematica)
Vantagem da Vericacao Dedutiva:
Pode ser utilizada para vericar sistemas com n umero innito de
estados.
Desvantagem da Vericacao Dedutiva:
Requer um especialista, geralmente um matematico, para
executa-la e possui enorme complexidade temporal.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Verica cao de Modelos
Busca Exaustiva
Utiliza uma busca exaustiva no espa co de estados para determinar se alguma
armativa e verdadeira ou falsa.
Vantagem
Sempre termina com uma resposta SIM ou N

AO.
Eciente: sua implementa cao e baseada em algoritmos de eciencia
razoavel, podendo ser executada em maquinas de potencial moderado.
Automatica: Automatizada em quase toda sua totalidade.
Desvantagem
S o e aplicavel a sistemas com n umero nito de estados.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Verica cao de Modelos versus Prova Automatica
Vericacao de Modelos
Na vericacao de modelos, o sistema e a propriedade a ser validada sao
representados, respectivamente, como um modelo nito e uma f ormula da
l ogica.
Prova Automatica
Na prova automatica de teoremas (automated theorem proving), tanto o
sistema como a propriedade sao representados como f ormulas da l ogica.
Outras Abordagens
L ogica de primeira-ordem, l ogicas dinamicas, epstemicas e etc.
Combinar l ogicas diferentes. Ex.: Conhecimento e Tempo para
especicacao de propriedades em sistemas multi-agentes.
Combinar Vericacao de Modelos e Prova Automatica.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Processo de Verica cao de Modelos
Modelagem
Nesta fase, gera-se um modelo a partir do design original do
sistema, utilizando um formalismo aceito pela ferramenta de
Vericacao de Modelos. (Ex: Automato)
Especicacao
Nesta fase, determina-se quais perguntas serao feitas ao sistema.

E
comum a utiliza cao de Logica Temporal.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
A Necessidade de Metodos Formais
Formas de Vericacao
Processo de Vericacao de Modelos
Vericacao
Nesta fase, sao testadas as especica coes, uma a uma, e a
cada resposta negativa, indicando um erro, e possvel
computar todos os caminhos que levariam ao
mesmo(contra-exemplos).

E importante estar atento, pois um erro pode ocorrer em


outras duas situacoes: uma especica cao errada ou
terminacao anormal do programa por falta de recursos
computacionais.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
L ogica Temporal e Vericacao de Modelos
Logica Temporal
Logicas temporais foram introduzidas por l osofos para o
estudo da rela cao com o tempo, possuindo assim operadores
temporais, a exemplo dos operadores de F e P, que expressam
futuro e passado, respectivamente.
A Logica Temporal e util na construcao de modelos
concorrentes, ja que e capaz de expressar a ordem dos eventos
no tempo inclu-lo de forma explcita e direta.
Estruturas de Kripke
Em nosso caso, o signicado de uma formula estara relacionado a
um automato que representa os estados e as transicoes entre eles.
Os automatos geram as Estruturas de Kripke.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Uma variedade de Logicas Temporais.
LTL Linear Temporal Logic
CTL Computation Tree Logic
CTL* full Computation Tree Logic
Vericacao de Modelos para CTL*, CTL e LTL
Dada uma formula , que representa uma propriedade do sistema,
vericar se ela e satisfeita ([=) na estrutura ( que representa o
sistema.
( [=
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Complexidade da Verica cao de Modelos para CTL*, CTL e LTL
CTL: Linear no n umero de estados e no tamanho da formula
LTL: Linear no n umero de estados e Exponencial no tamanho
da formula
CTL*: Linear no n umero de estados e Exponencial no
tamanho da formula
Normalmente o tamanho da formula e pequeno
Vericacao de Modelos - Implementacoes
SMV: Symbolic Model Verier SMVNu
SPIN GAL: CTL de primeira-ordem
UPPAAL: trata de tempo-real HYTECH: aut omatos hbridos
PRISM: aut omatos estocaticos MC de empresas INTEL, Motorola, etc
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Complexidade da Prova Automatica para CTL*, CTL e LTL
CTL: EXPTIME Completo
LTL: PSPACE Completo
CTL*: EXPTIME Completo
Geralmente pouco eciente
Metodos de Prova
Axiomatico CTL, LTL, CTL*
Tableaux CTL, LTL
Deducao Natural CTL, LTL
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Sistemas Reativos
Estados e Transicoes
Estado: descricao do sistema em um instante de tempo, i.e.,
os valores associados as suas variaveis naquele instante
Transi coes: rela cao entre estados que expressam as mudan cas
de estados
Computacao: uma sequencia innita de estados, onde cada
estado e obtido do anterior usando a relacao de transicao
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Sistemas Reativos e Computacoes
Sistemas Reativos sao representados como Automatos
Todas as possveis execucoes do Automato geram uma arvore
chamada Estrutura de Kripke
Computacoes sao representadas como Caminhos numa
Estrutura de Kripke
Estrutura de Kripe
Conjunto de estados
Relacao de transicoes entre estados
Funcao que rotula cada estado com o conjunto de
propriedades verdadeiras nele
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao
Uma estrutura de Kripke e denida por S, S
o
, R, L), onde:
Um conjunto nao-vazio de estados S.
Um conjunto de estados iniciais S
o
S.
Uma relacao R S S total, i.e., para todo estado s S
existe um estado s

S tal que s, s

) R.
Uma funcao de rotulos L : S 2

, onde e o conjunto de
proposi coes.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo
s
s
ab
s
a

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
a a b
Figura: Estrutura de Kripke.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Caminhos num Estrutura de Kripke
Um caminho em uma estrutura de Kripke a partir de um
estado s S e uma sequencia = s
0
, s
1
, . . . tal que s = s
0
e
k 0, s
k
, s
k+1
) R
Um s-caminho e um caminho contendo o estado s

k
= estado s
k
do caminho

0,k
= prexo s
0
, s
1
, . . . , s
k
de

k,
= suxo s
k
, s
k+1
, . . . de
Exemplo Anterior
Na estrutura / temos os seguintes caminhos a partir do estado s:
s, s
a
, s, s
a
, . . .; s, s
a
, s, s
a
, . . . , s
ab
, s
ab
, . . .; s, s
ab
, s
ab
, . . ..
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
s
s
a
s s
ab
s
ab
s
ab

>
>
>
>
>.


a
a b a b
a b
Figura: arvore de Computacao Innita.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Propriedades dos Sistemas Reativos
Seguran ca (safety): nada ruim acontecera.
O sistema nunca ira entrar em deadlock.
Nunca dois processos entram na regiao crtica ao mesmo
tempo.
Progresso (liveness): algo bom acontecera.
Cada processo entrara na regiao crtica no futuro.
Toda requisi cao sera atendida.
Exemplo Anterior
As propriedades a serem vericadas em um sistema reativo sao
expressas como formulas da linguagem da logica temporal, que
especicam os comportamentos desejados
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Classicacao das Logicas Temporais
Logicas Temporais de Tempo Linear - LTL
Logicas Temporais de Tempo Ramicado - CTL e CTL*
Sequencias de estados
Tais logicas se referem a nocao de sequencias de estados que
descrevem possveis computa coes do sistema, e nao a valores de
tempos, ou a intervalos de tempos; tratam do comportamento de
sistemas nao-determinsticos que envolvem diferentes caminhos.
Cada estado pode ter varios sucessores em termos de ramicacao,
seu comportamento e dado por um conjunto de caminhos lineares.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Full Computation Tree Logic - CTL*
Descreve propriedades de arvores de computacoes, que sao obtidas
a partir de um estado atraves do desdobramento de uma estrutura
de Kripke em uma arvore de computa cao innita. Ver exemplo
Linguagem de CTL*
Formulas de Estados -
s
Formulas de Caminhos -
p
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Formulas de Estados -
s
Descrevem propriedades que sao avaliadas sobre estados:
E - e verdadeira em um estado s se existe um caminho
comecando em s t.q. e verdadeira neste caminho;
A - e verdadeira em um estado s se para todo um caminho
comecando em s, e verdadeira neste caminho;
Formulas de Caminhos -
p
Descrevem propriedades que sao avaliadas sobre caminhos.
Os operadores X (Next time), F (in the Future), G
(Globally) e | (Until)
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Formulas de Caminhos -
p
X - e verdadeira em um caminho , se no proximo estado do
caminho e verdadeira.
F - e verdadeira em um caminho , se em algum estado no
caminho e verdadeira.
G - e verdadeira em um caminho , se em todo estado no
caminho e verdadeira.
| - e verdadeira em um caminho , se e verdadeira no
caminho ate que seja verdadeira.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
_

_ _
_ _

_
(a) - X.
(b) - F.
(c) - G.
(d) - (|).
Figura: Operadores temporais X, F, G e |.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Linguagem de CTL*
Sejam um conjunto de letras proposicionais e P uma letra
proposicional. A linguagem de CTL* e gerada pela seguinte BNF:

s
::= P [ (
s
) [ (
s

s
) [ (
s

s
) [ (
s

s
) [
[ (E
p
) [ (A
p
)

p
::=
s
[ (
p
) [ (
p

p
) [ (
p

p
) [ (
p

p
) [
[ (X
p
) [ (F
p
) [ (G
p
) [ (
p
|
p
)
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Semantica de CTL*
A denicao de satisfa cao [= de CTL* e dada em duas partes:
Seja uma fomula de estado da linguagem
s
, escrevemos
/ [=
s
para dizer que a formula e satisfeita na estrutura /
no estado s.
Seja uma fomula de caminho da linguagem
p
, escrevemos
/ [=

para dizer que a formula e satisfeita na estrutura /


no caminho .
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Satisfacao em Estado: Semantica de CTL*
/ [=
s
P P L(s).
/ [=
s
() N

AO / [=
s
.
/ [=
s
( ) / [=
s
E / [=
s
.
/ [=
s
( ) / [=
s
OU / [=
s
.
/ [=
s
( ) SE / [=
s
ENT

AO / [=
s
.
/ [=
s
(E) Existe um caminho a partir de s tal que
/ [=

.
/ [=
s
(A) Para todo caminho a partir de s vale que
/ [=

.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Satisfacao em Caminho: Semantica de CTL*
/ [=

se e uma formula da linguagem


s
, / [=

0
.
/ [=

() N

AO / [=

.
/ [=

( ) / [=

E / [=

.
/ [=

( ) / [=

OU / [=

.
/ [=

( ) SE / [=

ENT

AO / [=

.
/ [=

(X) / [=

1,
.
/ [=

(F) Existe um k 0 tal que / [=

k,
.
/ [=

(G) Para todo k 0 vale que / [=

k,
.
/ [=

(|) Existe k 0 tal que / [=

k,
e para
todo 0 l < k vale que / [=

l ,
.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo
s
s
ab
s
a

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
a a b
K |=
s
(E(G(b)))
K |=
s
(A(F a))
K |=
s,s
ab
,s
ab
,...
(F(G(a b)))
K |=
s,s
a
,s,s
a
,...
(G a)
K |=
s
(A(G(a b)))
Figura: Estrutura de Kripke.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo de Satisfa cao CTL*
/ [=
s
(E(G(b))) - existe um caminho a partir de s tal que
sempre vale b.
/ [=
s
(A(F a)) - para todos os caminhos a partir de s no
futuro vale a.
/ [=
s,s
ab
,s
ab
,...
(F(G(a b))) - no caminho s, s
ab
, s
ab
, . . . vale
no futuro que sempre vale a e b.
/ ,[=
s,s
a
,s,s
a
,...
(G a) - nao e o caso que vale no caminho
s, s
a
, s, s
a
, . . . que sempre vale a.
/ ,[=
s
(A(G(a b))) - nao e o caso que vale para todo
caminho a partir de s que sempre vale a ou b.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Comparando CTL* com CTL e LTL
CTL e LTL estao Contidas em CTL*
CTL CTL*
LTL CTL*
LTL CTL
LTL CTL
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Computation Tree Logic - CTL
Vamos agrupar operadores que vao funcionar como um unico
operador:
Linguagem de CTL
[EX] - existe um caminho tal que no proximo estado vale .
[AX] - para todo caminho no proximo estado vale .
[EF] - existe um caminho tal que no futuro vale .
[AF] - para todo caminho no futuro vale .
[EG] - existe um caminho tal que sempre vale .
[AG] - para todo caminho vale sempre .
E(| ) - existe um caminho tal que vale ate que vale .
A(| ) - para todo caminho vale ate que vale .
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Linguagem de CTL
Sejam um conjunto de letras proposicionais e P uma letra
proposicional. A linguagem de CTL e gerada pela seguinte BNF:

s
::= P [ (
s
) [ (
s

s
) [ (
s

s
) [ (
s

s
) [
[ ([EX]
s
) [ ([AX]
s
) [ ([EF]
s
) [ ([AF]
s
) [
[ ([EG]
s
) [ ([AG]
s
) [ (E(
s
|
s
)) [ (A(
s
|
s
))
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.
`
_

-
`
`
`
`

-
`
`
`
`
`
_

(a) - [EX]
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.

-
`
`
`
`

-
`
`
`
`
`
_

(b) - [AX]
Figura: Operadores de CTL.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL

.
.
.
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.
`
_

-
`
`
`
`
`
_

-
`
`
`
`
`
_

(c) - [EF]

.
.
.

.
.
.
`
_
.
.
.
`
_
.
.
.
`
_

-
`
`
`
`

-
`
`
`
`
`
_

(d) - [AF]
Figura: Operadores de CTL.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL

.
.
.
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.

-
`
`
`
`
`
_

-
`
`
`
`

(e) - [EG]

.
.
.

.
.
.

.
.
.

.
.
.

-
`
`
`
`

-
`
`
`
`

(f) - [AG]
Figura: Operadores de CTL.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.
`
_
.
.
.

-
`
`
`
`
`
_

-
`
`
`
`

(g) - E(|)
`
_
.
.
.
`
_
.
.
.

.
.
.

.
.
.

-
`
`
`
`

-
`
`
`
`

(h) - A(|)
Figura: Operadores de CTL.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Semantica de CTL
Sejam um conjunto de letras proposicionais, P uma letra
proposicional em , / = S, S
o
, R, L) uma estrutura de Kripke
para , s S um estado da estrutura /, e uma formula de
CTL. Escrevemos / [=
s
para indicar que a formula e satisfeita
no estado s da estrutura /. A deni cao de satisfacao [= segue.
K |=
s
P P L(s).
K |=
s
() N

AO K |=
s
.
K |=
s
( ) K |=
s
E K |=
s
.
K |=
s
( ) K |=
s
OU K |=
s
.
K |=
s
( ) SE K |=
s
ENT

AO K |=
s
.
K |=
s
([EX]) Existe um caminho a partir de s tal que K |=

1
.
K |=
s
([AX]) Para todo caminho a partir de s vale que K |=

1
.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Semantica de CTL - Continuacao
K |=
s
([EF]) Existe um caminho a partir de s tal que existe um
k 0 tal que K |=

k
.
K |=
s
([AF]) Para todo caminho a partir de s vale que existe um
k 0 tal que K |=

k
.
K |=
s
([EG]) Existe um caminho a partir de s tal que para todo
k 0 vale que K |=

k
.
K |=
s
([AG]) Para todo caminho a partir de s vale que para todo
k 0 vale que K |=

k
.
K |=
s
(E(U)) Existe um caminho a partir de s tal que existe
k 0 tal que K |=

k
e para todo 0 l < k vale que K |=

l
.
K |=
s
(A(U)) Para todo caminho a partir de s vale que existe
k 0 tal que K |=

k
e para todo 0 l < k vale que K |=

l
.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Operadores Basicos CTL
Basicos: , , [EX], [EG] e [EU]
Denidos: , , [AX], [EF], [AF], [AG] e [AU]
( )
()
[AF] [EG]()
[AX] [EX]()
[EF] E( | )
[AG] [EF]()
A(|) (E(() | ( ))) ([EG]())
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo
s
s
ab
s
a

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
a a b
K |=
s
[EG](b)
K |=
s
[AF] a
K |=
s
[EF]([AG](a b))
K |=
s
[EG] a
K |=
s
[AG](a b)
Figura: Estrutura de Kripke.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo de Satisfa cao CTL
/ [=
s
([EG](b)), existe um caminho a partir de s tal que
sempre vale b.
/ [=
s
([AF] a), para todo caminho a partir de s no futuro
vale a.
/ [=
s
([EF]([AG](a b))), existe um caminho a partir de s
tal que no futuro sempre vale a e b.
/ ,[=
s
([EG] a), nao e o caso que existe um caminho a partir
de s tal que sempre vale a.
/ ,[=
s
([AG](a b)), nao e o caso que vale para todo caminho
a partir de s que sempre vale a ou b.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Linear Temporal Logic - LTL
A quanticacao sobre caminhos e Implicita.
Denicao: Linguagem de LTL
Sejam um conjunto de letras proposicionais e P uma letra
proposicional. A linguagem de LTL e gerada pela seguinte BNF:

p
::= P [ (
p
) [ (
p

p
) [ (
p

p
) [ (
p

p
) [
[ (X
p
) [ (F
p
) [ (G
p
) [ (
p
|
p
)
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Denicao: Semantica de LTL
Sejam um conjunto de letras proposicionais, P uma letra
proposicional em , / = S, S
o
, R, L) uma estrutura de Kripke,
um caminho da estrutura /, e uma formula de LTL. / [=


signica que e satisfeita em / no caminho .
K |=

P P L(
0
).
K |=

() N

AO K |=

.
K |=

( ) K |=

E K |=

.
K |=

( ) K |=

OU K |=

.
K |=

( ) SE K |=

ENT

AO K |=

.
K |=

(X) K |=

1,

K |=

(F) Existe um k 0 tal que K |=

k,

K |=

(G) Para todo k 0 vale K |=

k,

K |=

(U) Existe k 0 tal que K |=

k,
e para todo 0 l < k
vale K |=

l ,

Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
Exemplo de Satisfa cao LTL
/ [=
s,s
ab
,s
ab
,...
(((a b))|(a b)): no caminho s, s
ab
, s
ab
, . . .
nao e o caso que vale a ou b ate que vale a e b.
/ ,[=
s,s
a
,s,s
a
,...
(G a): nao e o caso que vale no caminho
s, s
a
, s, s
a
, . . . que sempre vale a.
/ [=
s,s
ab
,s
ab
,...
(F(G a)): vale no caminho s, s
ab
, s
ab
, . . . que a
partir de algum estado no futuro sempre vale a.
Quanticacao Implicita LTL
A quanticacao e universal sobre todos os caminhos de uma
estrutura de Kripke.
Um sistema e considerado correto em relacao a uma
propriedade se ela e verdadeira para todos os caminhos da
estrutura a partir de todos os estados iniciais.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Sistemas Reativos (Estruturas de Kripke)
Full Computation Tree Logic - CTL*
Computation Tree Logic - CTL
Linear Temporal Logic - LTL
CTL* versus CTL versus LTL
CTL e LTL estao Contidas em CTL*
A(FGp) - todo caminho tem um estado onde p vale - LTL
mas N

AO CTL
[AG][EF]p - para todo caminho e todo estado existe um
caminho onde p e verdadeiro - CTL mas N

AO LTL
A(FGp) [AG][EF]p - CTL* mas N

AO CTL e N

AO LTL
CTL versus LTL
Propriedades usualmente utilizadas na vericacao de sistemas
reativos podem ser expressas em ambas as logicas.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Estrutura de Kripke e Formula
Sejam / = S, S
o
, R, L) uma estrutura de Kripke, com
estados nitos (S nito), e
uma formula de CTL, que expressa uma propriedade do
sistema.
Problema da Verica cao de Modelos
O problema da vericacao de modelos e encontrar o conjunto dos
estados que satisfazem a formula :
s S [ / [=
s

Dizemos que o sistema satisfaz a propriedade se todos os estados
iniciais s S
o
estao neste conjunto.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
O Processo de Vericacao de Um Sistema Reativo
Um vericador de modelos e uma ferramenta que automatiza a
formulacao acima. O processo de validacao segue os tres passos
abaixo:
1
Especicar em CTL quais sao as propriedades que o sistema
devera ter para que seja considerado correto. Por exemplo,
podemos querer que o sistema nunca entre em deadlock, ou
ainda, que ele sempre alcance um determinado estado.
2
O segundo passo e a construcao do modelo formal do sistema,
que e denido, geralmente, em uma linguagem de alto nvel (a
linguagem do vericador).
3
O terceiro e ultimo passo e a propria execucao do vericador
de modelos para validar as propriedades especicadas do
sistema.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Vericacao
Tendo as propriedades e o modelo. Aplicamos o vericador e
conseguimos garantir se o modelo do sistema possui ou nao as
propriedades desejadas.
Caso todas as propriedades sejam verdadeiras, entao o sistema
esta correto.
Caso nao obedeca a alguma propriedade, entao e gerado um
contra exemplo mostrando o porque da nao vericacao da
propriedade.
Desta forma, podemos detectar o erro e realizar a correcao do
modelo.
Esse processo deve ser feito ate que o sistema obedeca a todas
as propriedades, realizando assim um ajuste na especicacao.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Representacao Explcita
Os primeiros algoritmos apresentados usam uma
representacao explcita de uma estrutura de Kripke
/ = S, R, L), atraves de um grafo direcionado e rotulado.
Os nos do grafo representam os estados S,
Os arcos denem a rela cao de transi cao R
Os rotulos associados com cada no descrevem a funcao
L : S 2

, onde e um conjunto de proposicoes.


Com essa abordagem vericou-se propriedades de sistemas em
torno de 10
5
estados de diversos designs de circutos e
protocolos de redes publicados.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Motivacao
Compactacao e Eciencia
Aplica coes reais onde n umero de estados e muito grande
Usar Diagramas de Decisao Binaria Ordenadas (Ordered
Binary Decision Diagrams - OBDDs) para representar as
Estruturas de Kripke
Representar uma estrutura de Kripke (um sistema) atraves de
uma formula booleana
Algoritmos ecientes para fazer Vericacao de Modelos
usando OBDDs
Passou-se a tratar aplicacoes com n umero de estados O(10
20
)
Hoje, com algumas otimizacoes, n umero de estados e
O(10
120
)
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Representando Sistemas em OBBDs
Dada uma estrutura de Kripke K = S, S
o
, R, L) sobre um
conjunto de proposi coes = p
1
, , p
n

A funcao caracterstica de um estado s, denotada por [s]

e
[s]

p
i
L(s)
p
i

p
i
L(s)
p
i

Dado

= p

1
, , p

n
e uma transi cao t = s
1
, s
2
) R
A funcao caracterstica da transi cao t, denotada por [t]

e
[t]

= [s
1
]

[s
2
]

Vasconcelos, D. R. Verica cao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo
s
s
ab
s
a

_
a a b

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
= {a, b} e

= {a

, b

}
[S
a
]

= a b
[S]

[S
a
]

= (a b) (a

a b a

a b a

a b a

a b a

a b a

Figura: Estrutura de Kripke.


Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo
s
s
ab
s
a

_
a a b

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
= {a, b} e

= {a

, b

}
[S
a
]

= a b
[S]

[S
a
]

= (a b) (a

a b a

a b a

a b a

a b a

a b a

Figura: Estrutura de Kripke.


Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo
s
s
ab
s
a

_
a a b

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
= {a, b} e

= {a

, b

}
[S
a
]

= a b
[S]

[S
a
]

= (a b) (a

a b a

a b a

a b a

a b a

a b a

Figura: Estrutura de Kripke.


Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo
s
s
ab
s
a

_
a a b

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
= {a, b} e

= {a

, b

}
[S
a
]

= a b
[S]

[S
a
]

= (a b) (a

a b a

a b a

a b a

a b a

a b a

Figura: Estrutura de Kripke.


Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo
s
s
ab
s
a

_
a a b

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
S = {s, s
a
, s
ab
}, S
o
= {s}
R = {s, s
a
, s
a
, s, s, s
ab
, s
a
, s
ab
, s
ab
, s
ab
}
L(s) = , L(s
a
) = {a}, L(s
ab
) = {a, b}
= {a, b} e

= {a

, b

}
[S
a
]

= a b
[S]

[S
a
]

= (a b) (a

a b a

a b a

a b a

a b a

a b a

Figura: Estrutura de Kripke.


Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
OBDD - Ordered Binary Decision Diagrams
Construir um OBDD para a formula booleana que representa
a estrutura de Kripke
Uma representa cao concisa de uma arvore de decisao binaria
que utiliza uma ordenacao nas variaveis
OBDD e construda unicando as sub-arvores que resultam no
mesmo valor de verdade. Este processo e repetido ate nao
haver nenhuma sub-arvore equivalente
O tamanho da OBDD gerada depende fortemente da
ordenacao das variaveis.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
a
2

`
`
`
_
a
2

`
`
`
_
a
2

`
`
`
_
a
2

`
`
`
_
b
1

`
`
`
`
`
_
b
1

`
`
`
`
`
_
a
1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1
0 1
Figura:

Arvore de decisao binaria da formula (a
1
b
1
) (a
2
b
2
).
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
1 0 0 1 0 0 0 0 0 1 0 0 1
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
b
2
/
/
/
`
`
`
_
a
2

`
`
`
_
a
2

`
`
`
_
a
2

`
`
`
_
b
1

`
`
`
`
`
`
`
`
`
`
`
`
_
b
1

`
`
`
`
`
_
a
1

0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1
0 1 0 1
0 1
Figura: Processo de Compactacao de OBDD com (a
1
b
1
) (a
2
b
2
).
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
_
b
2
_
b
2
_
a
2
_
b
1
_
b
1
_
a
1
_
b
2

_
b
2

_
b
1
-
-
-
-
-
-
-
-
-
-
-
-
-
`
`
`
`
`
`
`
`
`
`
_
b
1

`
`
`
`
`
`
`
_
b
1
`
`
`
`
`
_
b
1
.
.
.
.
.
.
.
.
.
.
.
.
.


_
a
2

`
`
`
_
a
2

`
`
`
_
a
1

`
`
`
`
`

1
_

0
(a) - a
1
~ b
1
~ a
2
~ b
2
. (b) - a
1
~ a
2
~ b
1
~ b
2
.

1
_

`
`
`
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\

`
`
`
`

0 1
0 1 1 0
0
1
0 1 1 0
0
1
0
1
0
1
0 1 0 1
1
0
0 1 0 1
0 1
Figura: OBDD da formula (a
1
b
1
) (a
2
b
2
).
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
SMV
Iremos apresentar a linguagem do vericador de modelos Symbolic
Model Verier (SMV), que foi o primeiro a utilizar tal tecnica para
logicas temporais.

E uma linguagem de especicacao de sistemas de transicao.


Usa como representacao interna OBDDs, mas o usuario N

AO
precisa saber nada sobre OBDDs.
SMV
a Seguir descrevemos as principais caractersticas da linguagem de
especicacao de modelos do SMV.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Modulos
O usuario pode decompor um sistema de estados nitos em
modulos, que encapsulam uma colecao de declara coes:
VAR dene as variaveis do modulo, que podem ser booleanos,
conjunto enumerado de constantes ou instancias de outros modulos;
INIT inicializa as variaveis;
ASSIGN dene as rela coes de transicoes;
DEFINE dene as macros;
FAIRNESS denem as fairness constraints, que sao formulas em
CTL para garantir justica aos caminhos em CTL. Um exemplo
simples e o de duas avenidas que se entroncam. Suponha que
somente passem carros de uma das avenidas. Isto claramente nao
seria justo. Assim, deve-se garantir que os carros das duas avenidas
possam passar no entroncamento;
SPEC especicacoes em CTL.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Transi coes Nao-Determinsticas
As transicoes de um estado em um modelo podem ser
determinsticas ou nao-determinsticas.
Transi cao nao-determinstica e usada para descrever modelos
mais abstratos onde certos detalhes sao omitidos.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Relacoes entre transicoes
As as rela coes de transicoes de um modulo podem ser
especicadas explicitamente em termos de rela coes binarias
entre o atual e o proximo estado das variaveis, OU
Implicitamente como um conjunto de comandos de atribuicoes
paralelas.
Os comandos de atribui coes paralelas denem o valor das
variaveis no proximo estado em termos dos valores no estado
atual e sao denidos atraves da declaracao NEXT para cada
atribui cao.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo em SMV da Estrutura de Kripke 10
MODULE main
VAR
a: boolean;
b: boolean;
ASSIGN
init(a) := 0;
init(b) := 0;
next(a) :=
case
(!a & !b) : 1;
(a & !b) : {0,1};
1: a;
esac;
next(b) :=
case
(!a & !b) : {0,1};
(a & !b & next(a)) : 1;
(a & !b & next(!a)) : 0;
1: b;
esac;
SPEC
EG !b
SPEC
EF AG (a & b)
s
s
ab
s
a

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>.
a a b
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo de Circuito em Estrutura de Kripke
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Estrutura de Kripke do Circuito

_
x = 0
r = 0
y = 1
x = 1
r = 0
y = 0

_

>
>
>
>
>
>
>
>
>.
x = 0
r = 1
y = 0
x = 1
r = 1
y = 1

Vasconcelos, D. R. Vericacao de Modelos


Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo em SMV de Circuito Digital
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Circuito no SMV
MODULE main
VAR
x: boolean;
r: boolean;
ASSIGN
init(x) := {0,1};
init(r) := 0;
next(x) := {0,1};
next(r) :=
case
(x | r) : 1;
1: r;
esac;
DEFINE
y := !((x&!r)|(!x&r));
SPEC
EF AG r
SPEC
(!x&!r &y)|(x&!r &!y)
SPEC
(!x&!r &y) AX((x&!r &!y)|(!x&!r &y))
Vasconcelos, D. R. Vericacao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo em SMV de Circuito Digital
Circuito Digital

y
= (x r )

r
= (x r )
x r x r (x r ) (x r )
1 1 1 0 1
1 0 1 1 0
0 1 1 1 0
0 0 0 0 1
Circuito no SMV
MODULE main
VAR
x: boolean;
r: boolean;
ASSIGN
init(x) := {0,1};
init(r) := 0;
next(x) := {0,1};
next(r) :=
case
(x | r) : 1;
1: r;
esac;
DEFINE
y := !((x&!r)|(!x&r));
SPEC
EF AG r
SPEC
(!x&!r &y)|(x&!r &!y)
SPEC
(!x&!r &y) AX((x&!r &!y)|(!x&!r &y))
Vasconcelos, D. R. Vericacao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Sincronismo e Assincronismo (Interleaved)
Modulos podem ser compostos de forma sncrona ou assncrona.
Em composicao sncrona, um passo corresponde a um passo
de cada modulo.
Em composicao assncrona, cada passo corresponde a um
passo de um unico modulo.
Se a palavra reservada process preceder uma instancia de um
modulo, assincronismo e usado. Caso contrario, a composicao
sncrona e assumida.
Cada processo tem uma variavel running que indica se o
processo esta ativo ou nao. Se a condicao de running for
denido nas condi coes de fairness de um modulo signicara
que o modulo nao podera car indenidamente sem ser
executado.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo Especicacao SMV: Semaforo
Um programa que utiliza uma variavel semaforo (semaforo)
para implementar exclusao m utua entre dois processos
assncronos.
modulo usuario que tera uma variavel estado que possui
quatro estados: ocioso, o processo nao quer entrar na regiao
crtica; entrando, o processo quer entrar na regiao crtica;
critica, o processo esta utilizando a regiao crtica; e saindo, o
processo nao ira mais usar a regiao crtica.
modulo main tera uma variavel semaforo, que sera
inicializada com 0, e os dois usuarios. Como os processos sao
assncronos os usuarios serao denidos com a palavra
process.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo Especicacao SMV: Semaforo - Continuacao
A formula AG!(proc1.estado=critica & proc2.estado=critica)
expressa que nenhum dos dois processos estao utilizando a
regiao crtica ao mesmo instante.
A formula
AG( proc1.estado=entrando AF(proc1.estado=critica))
signica que se um processo deseja entrar na regiao crtica em
algum instante no futuro ele utilizara a regiao crtica.
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo Especicacao SMV: Semaforo - Continua cao
MODULE main
VAR
semaforo : boolean;
proc1 : process usuario(semaforo);
proc2 : process usuario(semaforo);
ASSIGN
init(semaforo) :=0;
SPEC
AG !(proc1.estado=critica &
proc2.estado=critica)
SPEC
AG(proc1.estado = entrando >
AF(proc1.estado = critica))
MODULE usuario(semaforo)
VAR
estado : {ocioso, entrando, critica, saindo};
ASSIGN
init(estado) := ocioso;
next(estado) :=
case
estado = ocioso : {ocioso,entrando};
estado = entrando & !semaforo :critica;
estado = critica : {critica, saindo};
estado = saindo : ocioso;
1 : estado;
esac;
next(semaforo) :=
case
estado = entrando : 1;
estado = saindo :0;
1 : semaforo;
esac;
FAIRNESS
running
Vasconcelos, D. R. Vericacao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Exemplo Especicacao SMV: Semaforo - Continua cao
MODULE main
VAR
semaforo : boolean;
proc1 : process usuario(semaforo);
proc2 : process usuario(semaforo);
ASSIGN
init(semaforo) :=0;
SPEC
AG !(proc1.estado=critica &
proc2.estado=critica)
SPEC
AG(proc1.estado = entrando >
AF(proc1.estado = critica))
MODULE usuario(semaforo)
VAR
estado : {ocioso, entrando, critica, saindo};
ASSIGN
init(estado) := ocioso;
next(estado) :=
case
estado = ocioso : {ocioso,entrando};
estado = entrando & !semaforo :critica;
estado = critica : {critica, saindo};
estado = saindo : ocioso;
1 : estado;
esac;
next(semaforo) :=
case
estado = entrando : 1;
estado = saindo :0;
1 : semaforo;
esac;
FAIRNESS
running
Vasconcelos, D. R. Vericacao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Obrigado!!!
Mais informacoes em:
Vasconcelos, D. R. Verica cao de Modelos
Introducao a Vericacao de Modelos
Logica Temporal
Verica cao de Modelos em CTL
Algoritmo com Representacao Explcita
Verica cao Simbolica de Modelos em CTL
OBDDs - Ordered Binary Decision Diagrams
Symbolic Model Verier - SMV
Obrigado!!!
Mais informacoes em:
Vasconcelos, D. R. Verica cao de Modelos