03 Logica de Arvore Computacao

25
 Verica¸ c˜ao de Mo de lo s (Model Checking) Estes slides s˜ ao baseados nas notas de aula da Profa. Corina ırstea

Transcript of 03 Logica de Arvore Computacao

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 1/25

Verificacao de Modelos(Model Checking)

Estes slides sao baseados nas notas de aula da Profa. CorinaCırstea

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 2/25

Agenda

Logica Temporal

Logica de  Arvore de Computacao (CTL)

Verificacao de Modelo do CTL

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 3/25

Caminhos de Computacao versus  Arvores de Computacao

 Estrutura Kripke:     

a b 

s 0

        

b c s 1

     

       c        s 2

  suposicao adicional: cada estado tem no mınimo um sucessor

⇒  processos infinitos !   alguns   caminhos de computacao:

s 0 → s 1 → s 0 → s 1 → . . .

s 0 → s 1 → s 2 → s 2 → . . .

s 0 → s 2 → s 2 → . . .

  arvore de computacao: s 0        

s 1        

s 2    

s 0   s 2   s 2

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 4/25

Logicas de Tempo Linear versus Tempo de Ramificacao(Branching Time)

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

2.  tempo de ramificacao: arvore de computacao

  logicas temporais:

1.   logicas de tempo linear:

formulas avaliadas em caminhos de computacao

(estrutura de ramificacao e abstraıda)

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

longo do caminho”

2.   logicas de tempo de ramificacao:

formulas avaliadas em arvores de computacao

e.g.   “sempre que p  ocorre, e possıvel alcancar um estado onde

q  ocorre”

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 5/25

Exclusao Mutua: Propriedades de Corretude Revisado

  exclusao mutua: no maximo um processo na regiao crıtica  aqualquer momento  (i.e.  em todos os estados alcancaveis )

  starvation freedom:   sempre que  um processo tenta entrarem sua regiao crıtica, ele ira  eventualmente  suceder (ao longo 

de cada caminho de computacao )

  sem bloqueio  (vivacidade): um processo pode sempre, emalgum ponto no futuro (ao longo de algum caminho de 

computacao ), solicitar para entrar em sua regiao crıtica

As  propriedades temporais  acima devem se manter  em todos os 

estados iniciais .

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 6/25

Recap em Logica Proposicional   assuma um conjunto  Prop  de proposicoes atomicas

  sintaxe:

φ, ψ ::= p  |  tt | ¬φ |  φ ∧ ψ   (p  ∈ Prop )

Note: todos os outros operadores booleanos sao definıveis,por exemplo

ff ::=  ¬tt

φ ∨ ψ ::= ¬(¬φ ∧ ¬ψ)

φ → ψ ::= ¬(φ ∧ ¬ψ)

  modelos sao  avaliac˜ oes , dizendo quais proposicoes saoverdadeiras e quais nao sao:

V   : Prop  → {True, False}

  significado (semantica) das formulas: V  define o significado das proposicoes atomicas

a tabela da verdade define o significado dos operadoresbooleanos

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 7/25

Logica de  Arvore de Computacao (CTL)

  sintaxe:

φ, ψ ::= p  |  tt | ¬φ | φ ∧ ψ |   AX φ |   EX φ |   AF φ |   EF φ |

AG φ |   EG φ |   A [φ U ψ] |   E [φ U ψ]   (p  ∈ Prop )

  leituras de formulas modais:

AX φ   φ  holds in  All neXt statesEX φ   there  Exists a neXt state in which  φ  holds

AF φ   along  All paths,  φ  holds in some  Future state

EF φ   there  Exists a path along which  φ  holds in some  Futur

AG φ   along  All paths,  φ  holds  Globally

EG φ   there  Exists a path along which  φ  holds  Globally

A [φ U ψ]   along  All paths,  φ  holds  Until  ψ  holds

E [φ U ψ]   there  Exists a path along which  φ  holds  Until  ψ  holds

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

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 8/25

Algumas Observacoes na Sintaxe da CTL

  os pares   AX   ,   EX   , . . . ,   A [ U ] ,   E [ U ] sao indivisıveis !

 prioridades de ligacao:

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

∧  e  ∨  estao proximos →,   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 prioridadesacima, e.g.   EF ( EG p  →   AF r ),   EF EG (p  →   AF r )

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 9/25

Semantica da CTL

Assuma a estrutura Kripke  M  = (S , R , V ).

A semantica da CTL define quando uma formula  φ  da CTL everdadeira  em um estado  s  ∈ S .

Quando escrevemos  s |= φ  (e dizemos que  s   satisfaz  φ) se  φ  everdadeiro 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   |= ψ

. . .

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 10/25

Semantica da CTL: Exemplo

        

                  

        

φ

    

EF φ

φ   s 

        

  

φ

            

        

φ

    

EG φ

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 11/25

Semantica da CTL: Exemplo

φ   s 

        

φ

  

φ

      

    

φ

        

φ φ φ

φ φ

    

φ   AG φ

        

          

    

        

φ φ φ

φ

    

φ   AF φ

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 12/25

Semantica da CTL: Exemplo (Continuacao)

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

s   |=  AX φ   iff for all  s 1   s.t.   s  → s 1 ,  s 1   |= φ

s   |=  EX φ   iff there exists  s 1   s.t.   s  → s 1  and  s 1   |= φ

s   |=  AF φ   iff for all paths  s  = s 0  → s 1 → s 2  → . . .

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

s   |=  EF φ   iff there exist a path  s  = s 0  → s 1 → s 2  → . . .

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

s |=  AG φ   iff for all paths  s  = s 0  → s 1 → s 2  → . . .

for all   i  ∈ {0, 1, . . .},  s i  |= φ

s |=  EG φ   iff there exists a path  s  = s 0 → s 1  → s 2  → . . .  s.t.

for all   i  ∈ {0, 1, . . .},  s i  |= φs   |=  A [φ U ψ] iff for all paths  s  = s 0  → s 1 → s 2  → . . .

there exists   i  ∈ {0, 1, . . .}  s.t.   s 0 |= φ, . . . ,  s i −1 |= φ,  s i  |= ψ

s   |=  E [φ U ψ] iff there exists a path  s  = s 0 → s 1  → s 2  → . . .

and   i  ∈ {0, 1, . . .}  s.t.   s 0 |= φ, . . . ,  s i −1 |= φ,  s i  |= ψ

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 13/25

Outro Exemplo

s 0   {a,b }

         

s 1{b ,c }

     

       s 2       {c }

s 0   |=   EX (b ∧ c )

s 0   |=  ¬ AX (b ∧ c )

s 0  |=   EG c 

s 0   |=   AG AF c 

s 0   |=   A [a U c ]

s 0   |=   E [(a ∧ b ) U c ]

s 0  |=   AG (b  →   EG c )

s 0   |=   AG EF EG c 

Note:   s   |=  AG AF φ   sse   φ  e verdadeiro infinitas vezes ao longode cada caminho de  s .

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 14/25

Exclusao Mutua: um Modelo

int turn;P   =   m : cobegin P 0  P 1 coend   m

P 0   =   n0  : while  True   do

t 0  : wait (turn = 0);c 0  :   use resource; turn := 1;

endwhile ;  n

0

P 1   =   n1  : while  True   do

t 1  : wait (turn = 1);c 1  :   use resource; turn := 0;

endwhile ;  n

1

          0, n0, n1

        

1, n0, n1

        0, n0, t 1

      

0, t 0, n1

        

1, n0, t 1

        

1, t 0, n1

    

0, t 0, t 1

    

    0, c 0, n1

  

    

1, n0, c 1

   

    

1, t 0, t 1

  

    

0, c 0, t 1  

     

1, t 0, c 1  

  

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 15/25

Exclusao Mutua: Propriedades de Corretude

Proposicoes atomicas:c 0 ,  c 1   (estado crıtico)n0 ,  n1   (estado nao crıtico)t 0 ,  t 1   (tentando entrar no estado crıtico)

  exclusao mutua:   no maximo um processo na regiao crıtica  a

qualquer momento 

AG ¬(c 0 ∧ c 1)

  starvation freedom:   sempre que  um processo tenta entrar nasua regiao crıtica, ele  eventualmente  entrara

AG ( (t 0 →   AF c 0) ∧ (t 1 →   AF c 1) )

  sem bloqueio:  um processo pode sempre, em algum ponto nofuturo, pedir para entrar em sua regiao crıtica

AG (  EF t 0   ∧   EF t 1 )

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 16/25

Exclusao Mutua: Checagem da Corretude          

0, n0, n1

        

1, n0, n1

        

0,

 n0,

 t 1  

    

0,

 t 0,

 n1

        

1,

 n0,

 t 1

        

1,

 t 0,

 n1  

  0, t 0, t 1

    

    0, c 0, n1

  

    

1, n0, c 1

   

    

1, t 0, t 1

  

    

0, c 0, t 1  

     

1, t 0, c 1  

  

AG ¬(c 0 ∧ c 1)  

AG ( (t 0 →   AF c 0) ∧ (t 1 →   AF c 1) )   ×  

(precisa do conceito de weak fairness para assegurar a

propriedade!)

AG (  EF t 0   ∧   EF t 1)  

EF (c 0 ∧   E [c 0 U (¬c 0 ∧   E [¬c 1 U c 0])]) ∨ . . .   ×

(difıcil verificar a mao!)

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 17/25

Exercıcio

Assuma as seguintes proposicoes atomicas:   start ,  ready ,  requested ,

acknowledged ,  enabled ,  running ,   deadlock .

Especifique as seguintes propriedades de corretude em CTL:

1.   E possıvel/impossıvel de alcancar um estado onde  start   everdadeiro mas  ready  nao e.

2.  Sempre que ocorre uma solicitacao (request ), ela iraeventualmente ser reconhecida (acknowledged ).

3.   Se um processo e habilitado infinitas vezes ao longo de umcaminho, entao ele executa muitas vezes infinitamente aolongo desse caminho.

4.   Aconteca o que acontecer,   deadlock   ira eventualmenteocorrer.

5.   A partir de qualquer estado, e possıvel alcancar um estadoready .

S

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 18/25

Solucao do ExercıcioFormulas atomicas:start , ready , requested , acknowledged , enabled , running , deadlock .

1.  ´E (im)possıvel de alcancar um estado onde  start   e verdadeiromas  ready  nao e.

AG ¬(start  ∧ ¬ready )   EF (start  ∧ ¬ready )

2.  Sempre que ocorre uma solicitacao (request ), ela iraeventualmente ser reconhecida (acknowledged ).

AG (requested  →   AF acknowledged )

3.   Se um processo e habilitado infinitas vezes ao longo de umcaminho, entao ele executa muitas vezes infinitamente aolongo desse caminho.

Nao e expresso em CTL!4.   Aconteca o que acontecer,   deadlock   eventualmente ocorrera.

AF deadlock 

5.   A partir de qualquer estado, e possıvel alcancar um estado

ready .AG EF read 

Al E i lˆ i F´ l CTL

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 19/25

Algumas Equivalencias entre Formulas CTL

  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 todosos outros operadores CTL (conjunto adequado de conectivosCTL).

S b j S fi i d O d CTL

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 20/25

Sub-conjunto Suficiente de Operadores CTL

Teorema.   Um conjunto de conectivos temporais em CTL eadequado, se e somente se ele contiver:

 pelo menos um dos   AX ,  EX

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

  E [   U   ]

Corolario.   Os operadores   EX ,   AF   e   E [   U   ] sao suficientes

para expressar todas os outros.

Al it d V ifi ˜ d M d l CTL

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 21/25

Algoritmo de Verificacao de Modelo para CTL

Entradas:  estrutura Kripke finita  M , formula CTL  φ  contendo

apenas   EX ,   AF   e   E [   U   ] como operadores temporais.

Saıdas:  os estados de  M  que satisfazem  φ

Algoritmo:

 Gerar todas as subformulas de  φ  e ordena-las porcomplexidade (proposicoes atomicas primeiro,  φ  por ultimo).

 Repetir: pegar uma sub-formula da lista e  anotar  os estadosde  M  que sejam satisfeitos por esta formula.

  Quando nos alcancarmos o fim da lista, sabemos quaisestados satisfazem  φ.

C A t ?

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 22/25

Como Anotar?

  A avaliacao de  V  nos diz como anotar os estados comproposicoes atomicas

  Todos os estados sao anotados com   tt.

  Quando uma sub-formula atual e  ¬φ, nos anotamos com istoos estados que nao estao com  φ  (note que  φ  precede  ¬φ  nalista de sub-formulas, assim nos ja anotamos os estados comφ).

 Da mesma forma para  φ1 ∧ φ2   . . .

Co o A ota ? (Co ti acao)

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 23/25

Como Anotar? (Continuacao)   Para   EX φ, anotar antecessores de qualquer estado rotulado  φ

por   EX φ.

  Para   E [φ1 U φ2], primeiro encontrar todos os estadosanotados por  φ2  e anota-los por   E [φ1 U φ2]. Entao trabalhepara tras a partir daqueles estados e todo tempo que nosencontrarmos 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 seussucessores estiverem anotados com   AF φ. Repita ate que naoexista nenhuma mudanca.

Notas:

  os operadores acim sao suficientes para expressar todos osoutros operadores do CTL,

  as equivalencias semanticas dadas anteriormente precisam serusadas quando a formula a ser verificada contem os

operadores temporais que nao   EX ,   AF   e   E [   U   ].

Observacoes sobre o Algoritmo

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 24/25

Observacoes sobre o Algoritmo  Existe uma variante do algoritmo que considera apenas os

caminhos de computacao que sao justos.

  A complexidade de tempo do algoritmo e quadratico notamanho do modelo (numero de estados + numero detransicoes) e linear no tamanho da formula (numero deconectivos).

 Existe uma melhoria do algoritmo (substituindo   AF   por   EG )cuja complexidade de tempo e linear no tamanho do modelo eno tamanho da formula.

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

tamanho do modelo e  exponencial no numero de variaveis eno numero de componentes paralelos . . .

 O verificador NuSMV usa estruturas de dados chamada deOBDDs (ordered binary decision diagrams) para

representar  conjunto de estados  em vez de  estados individuais .

Exercıcio

7/21/2019 03 Logica de Arvore Computacao

http://slidepdf.com/reader/full/03-logica-de-arvore-computacao 25/25

Exercıcio

Considere o seguinte modelo de exclusao mutua:

    

0, n0, n1

        

0, t 0, n1

        

0, n0, t 1

        

1, c 0, n1

    

    

0, t 0, t 1

        

0, n0, c 1

  

  

1, c 0, t 1   

    

1, t 0, c 1   

  

Verifique se o estado inicial deste modelo satisfaz as formulasE [¬c 1 U c 0] e   AF c 0.