03 Logica de Arvore Computacao
-
Upload
willianralves -
Category
Documents
-
view
214 -
download
0
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
s
φ
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 φ
s
φ φ φ
φ
φ 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.