Vous êtes sur la page 1sur 25

Verificacao de Modelos

(Model Checking)
Estes slides sao baseados nas notas de aula da Profa. Corina
Crstea

Agenda

Logica Temporal

Logica de Arvore
de Computacao (CTL)

Verificacao de Modelo do CTL


Caminhos de Computacao versus Arvores
de Computacao
I

Estrutura Kripke:

!
4

s1

bc

ab

s0

/ c
H

s2

suposicao adicional: cada estado tem no mnimo um sucessor


processos infinitos !

alguns caminhos de computac


ao:
s0 s1 s0 s1 . . .
s0 s1 s2 s2 . . .
s0 s2 s2 . . .

arvore de computac
ao:

s0

s1

s0
}
!

s2

s2
!

s2

Logicas de Tempo Linear versus Tempo de Ramificacao


(Branching Time)
I

modelos de tempo:
1. tempo linear: conjunto de todos os caminhos de computacao
2. tempo de ramificacao: arvore de computacao

logicas temporais:
1. l
ogicas de tempo linear:
I

f
ormulas avaliadas em caminhos de computac
ao
(estrutura de ramificac
ao e abstrada)

e.g. para todos os caminhos, p detem em algum ponto ao


longo do caminho

2. l
ogicas de tempo de ramificacao:
I

f
ormulas avaliadas em
arvores de computac
ao

e.g. sempre que p ocorre, e possvel alcancar um estado onde


q ocorre

Exclusao Mutua: Propriedades de Corretude Revisado

exclus
ao m
utua: no maximo um processo na regiao crtica a
qualquer momento (i.e. em todos os estados alcancaveis)

starvation freedom: sempre que um processo tenta entrar


em sua regiao crtica, ele ira eventualmente suceder (ao longo
de cada caminho de computacao)

sem bloqueio (vivacidade): um processo pode sempre, em


algum ponto no futuro (ao longo de algum caminho de
computacao), solicitar para entrar em sua regiao crtica

As propriedades temporais acima devem se manter em todos os


estados iniciais.

Recap em Logica Proposicional


I

assuma um conjunto Prop de proposic


oes at
omicas

sintaxe:
, ::= p | tt | |

(p Prop)

Note: todos os outros operadores booleanos sao definveis,


por exemplo
ff ::= tt
::= ( )
::= ( )
I

modelos sao avaliac


oes, dizendo quais proposicoes sao
verdadeiras e quais nao sao:
V : Prop {True, False}

significado (semantica) das f


ormulas:
I

V define o significado das proposic


oes at
omicas

a tabela da verdade define o significado dos operadores


booleanos


Logica de Arvore
de Computacao (CTL)
I

sintaxe:
, ::= p | tt | | | AX | EX | AF | EF |
AG | EG | A [ U ] | E [ U ]

leituras de formulas modais:


AX
EX
AF
EF
AG
EG
A [ U ]
E [ U ]

(p Prop)

holds in All neXt states


there Exists a neXt state in which holds
along All paths, holds in some Future state
there Exists a path along which holds in some Future
along All paths, holds Globally
there Exists a path along which holds Globally
along All paths, holds Until holds
there Exists a path along which holds Until holds

exemplo de formulas: AG EF , E [tt U AG ]

Algumas Observacoes na Sintaxe da CTL

os pares AX , EX , . . . , A [ U ] , E [ U ] sao indivisveis !

prioridades de ligacao:
I

, AG , EG , AF , EF , AX e EX ligam mais firmemente

e estao pr
oximos

, A [ U ], E [ U ] ligam menos firmemente

e.g. EF EG p AF r significa ( EF EG p) AF r

parenteses podem ser usados para substituir as prioridades


acima, e.g. EF ( EG p AF r ), EF EG (p AF r )

Semantica da CTL
Assuma a estrutura Kripke M = (S, R, V ).
A semantica da CTL define quando uma f
ormula da CTL e
verdadeira em um estado s S.
Quando escrevemos s |= (e dizemos que s satisfaz ) se e
verdadeiro em s.
A definicao de quando s |= e por inducao na estrutura de :
s |= p

sse

V (p, s) = true

s |=

sse

s |= nao detem

s |=

sse

s |= e s |=

...

Semantica da CTL: Exemplo

}


"





"



EF




EG

Semantica da CTL: Exemplo




AG

AF

Semantica da CTL: Exemplo (Continuacao)


Assuma uma estrutura Kripke M = (S, R, V ) e s S.
s |= AX

iff

for all s1 s.t. s s1 , s1 |=

s |= EX

iff

there exists s1 s.t. s s1 and s1 |=

s |= AF

iff

for all paths s = s0 s1 s2 . . .


there exists i {0, 1, . . .} s.t. si |=

s |= EF

iff

there exist a path s = s0 s1 s2 . . .


and an i {0, 1, . . .} s.t. si |=

s |= AG

iff

for all paths s = s0 s1 s2 . . .


for all i {0, 1, . . .}, si |=

s |= EG

iff

there exists a path s = s0 s1 s2 . . . s.t.


for all i {0, 1, . . .}, si |=

s |= A [ U ]

iff

for all paths s = s0 s1 s2 . . .


there exists i {0, 1, . . .} s.t. s0 |= , . . . , si1 |= , si |=

s |= E [ U ]

iff

there exists a path s = s0 s1 s2 . . .


and i {0, 1, . . .} s.t. s0 |= , . . . , si1 |= , si |=

Outro Exemplo
3 s {a,b}
0

{b,c}

s1

s0 |= EX (b c)
s0 |= AX (b c)

/ s2
s0 6|= EG c
{c}
I

s0 |= AG AF c
s0 |= A [a U c]
s0 |= E [(a b) U c]

s0 6|= AG (b EG c)
s0 |= AG EF EG c
Note: s |= AG AF sse e verdadeiro infinitas vezes ao longo
de cada caminho de s.

Exclusao Mutua: um Modelo

int turn;
P = m : cobegin P0 k P1 coend m0
P0 = n0 : while True do
t0 : wait (turn = 0);
c0 : use resource; turn := 1;
endwhile ; n00


0, n0 , n1

,
r
&

0, n0 , t1

P1 = n1 : while True do
t1 : wait (turn = 1);
c1 : use resource; turn := 0;
endwhile ; n10

0, t0 , n1

&

0, t0 , t1

&

0, c0 , t1

&

1, n0 , t1

0, c0 , n1

&

1, n0 , n1

&

1, n0 , c1

1, t0 , t1

&

1, t0 , c1

1, t0 , n1

Exclusao Mutua: Propriedades de Corretude


Proposicoes atomicas:
c0 , c1
(estado crtico)
n0 , n1
(estado nao crtico)
t0 , t1
(tentando entrar no estado crtico)
I

exclusao m
utua: no maximo um processo na regiao crtica a
qualquer momento
AG (c0 c1 )

starvation freedom: sempre que um processo tenta entrar na


sua regiao crtica, ele eventualmente entrara
AG ( (t0 AF c0 ) (t1 AF c1 ) )

sem bloqueio: um processo pode sempre, em algum ponto no


futuro, pedir para entrar em sua regiao crtica
AG ( EF t0 EF t1 )

Exclusao Mutua: Checagem da Corretude




0, n0 , n1

,
r

&

0, n0 , t1

0, t0 , n1

&

0, t0 , t1

&

&

1, n0 , t1

0, c0 , n1

&

1, n0 , n1

&

1, n0 , c1

0, c0 , t1

1, t0 , t1

&

1, t0 , c1

AG (c0 c1 )
AG ( (t0 AF c0 ) (t1 AF c1 ) )

(precisa do conceito de weak fairness para assegurar a


propriedade!)
AG ( EF t0 EF t1 )

EF (c0 E [c0 U (c0 E [c1 U c0 ])]) . . .

(difcil verificar a mao!)

1, t0 , n1

Exerccio
Assuma as seguintes proposic
oes at
omicas: start, ready , requested,
acknowledged, enabled, running , deadlock .
Especifique as seguintes propriedades de corretude em CTL:
possvel/impossvel de alcancar um estado onde start e
1. E
verdadeiro mas ready nao e.
2. Sempre que ocorre uma solicitacao (request), ela ira
eventualmente ser reconhecida (acknowledged).
3. Se um processo e habilitado infinitas vezes ao longo de um
caminho, entao ele executa muitas vezes infinitamente ao
longo desse caminho.
4. Aconteca o que acontecer, deadlock ira eventualmente
ocorrer.
5. A partir de qualquer estado, e possvel alcancar um estado
ready .

Solucao do Exerccio
Formulas atomicas:
start, ready , requested, acknowledged, enabled, running , deadlock.
(im)possvel de alcancar um estado onde start e verdadeiro
1. E
mas ready nao e.
AG (start ready )
EF (start ready )
2. Sempre que ocorre uma solicitacao (request), ela ira
eventualmente ser reconhecida (acknowledged).
AG (requested AF acknowledged)
3. Se um processo e habilitado infinitas vezes ao longo de um
caminho, entao ele executa muitas vezes infinitamente ao
longo desse caminho.
Nao e expresso em CTL!
4. Aconteca o que acontecer, deadlock eventualmente ocorrera.
AF deadlock
5. A partir de qualquer estado, e possvel alcancar um estado
ready .
AG ( EF ready )

Algumas Equivalencias entre Formulas CTL


I

equivalencia semantica: se qualquer estado de qualquer


modelo que satisfaz tambem satisfaz , e reciprocamente.

algumas equivalencias:
AX EX
AG EF
AF A [tt U ]
EG AF
EF E [tt U ]
= A [ U ], E [ U ], EX suficiente para expressar todos
os outros operadores CTL (conjunto adequado de conectivos
CTL).

Sub-conjunto Suficiente de Operadores CTL

Teorema. Um conjunto de conectivos temporais em CTL e


adequado, se e somente se ele contiver:
I

pelo menos um dos AX , EX

pelo menos um dos EG , AF , A [ U ]

E[ U ]

Corol
ario. Os operadores EX , AF e E [ U ] sao suficientes
para expressar todas os outros.

Algoritmo de Verificacao de Modelo para CTL


Entradas: estrutura Kripke finita M, f
ormula CTL contendo
apenas EX , AF e E [ U ] como operadores temporais.
Sadas: os estados de M que satisfazem
Algoritmo:
I

Gerar todas as subf


ormulas de e ordena-las por
complexidade (proposic
oes at
omicas primeiro, por u
ltimo).

Repetir: pegar uma sub-f


ormula da lista e anotar os estados
de M que sejam satisfeitos por esta f
ormula.

Quando nos alcancarmos o fim da lista, sabemos quais


estados satisfazem .

Como Anotar?

A avaliacao de V nos diz como anotar os estados com


proposicoes atomicas

Todos os estados sao anotados com tt.

Quando uma sub-f


ormula atual e , n
os anotamos com isto
os estados que nao estao com (note que precede na
lista de sub-formulas, assim n
os ja anotamos os estados com
).

Da mesma forma para 1 2 . . .

Como Anotar? (Continuacao)


I

Para EX , anotar antecessores de qualquer estado rotulado


por EX .

Para E [1 U 2 ], primeiro encontrar todos os estados


anotados por 2 e anota-los por E [1 U 2 ]. Entao trabalhe
para tras a partir daqueles estados e todo tempo que nos
encontrarmos os estados 1 , anota-los com E [1 U 2 ].

Para AF , primeiro anote todos os estados anotados com


por AF . Entao anote um estado com AF se todos os seus
sucessores estiverem anotados com AF . Repita ate que nao
exista nenhuma mudanca.

Notas:
I
I

os operadores acim sao suficientes para expressar todos os


outros operadores do CTL,
as equivalencias semanticas dadas anteriormente precisam ser
usadas quando a f
ormula a ser verificada contem os
operadores temporais que nao EX , AF e E [ U ].

Observacoes sobre o Algoritmo


I

Existe uma variante do algoritmo que considera apenas os


caminhos de computacao que sao justos.

A complexidade de tempo do algoritmo e quadratico no


tamanho do modelo (n
umero de estados + n
umero de
transicoes) e linear no tamanho da f
ormula (n
umero de
conectivos).

Existe uma melhoria do algoritmo (substituindo AF por EG )


cuja complexidade de tempo e linear no tamanho do modelo e
no tamanho da formula.

Isto ainda nao e bom o suficiente, tendo em vista que o


tamanho do modelo e exponencial no n
umero de variaveis e
no n
umero de componentes paralelos . . .

O verificador NuSMV usa estruturas de dados chamada de


OBDDs (ordered binary decision diagrams) para
representar conjunto de estados em vez de estados individuais.

Exerccio
Considere o seguinte modelo de exclusao m
utua:
.


p
0, n0 , n1

w p
0, t0 , n1
1, c0 , n1

. '
0, n0 , t1
'
w
0, t0 , t1

'
w
1, c0 ,X t1

'
0, n0 , c1
'
w
1, t0 , X c1

Verifique se o estado inicial deste modelo satisfaz as formulas


E [c1 U c0 ] e AF c0 .

Vous aimerez peut-être aussi