(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

Documentos relacionados
(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

Lógicas Temporais e Verificação de Sistemas

O número de transições de uma estrutura de jogo concorrente é

LÓGICA TEMPORAL COM RAMIFICAÇÕES (Branching time temporal logics)

Formas Normais para Lógicas Modais

Lógica Computacional

LÓGICA PROPOSICIONAL

Relações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5)

Aula 4: Consequência Lógica e Equivalência Lógica

1 Lógica de primeira ordem

Lógica temporal e aplicações

Lógica Computacional

Modelagem e implementação de programas concorrentes

Alfabeto da Lógica Proposicional

Lógica Computacional Aulas 8 e 9

Lógica Computacional

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Sistemas Distribuídos

Lógica Proposicional Sintaxe

Lógica para computação

Lógica Computacional

Fórmulas da lógica proposicional

Departamento de Matemática Universidade do Minho, Braga 2009 /2010. Cálculo de Predicados de Primeira-Ordem da Lógica Clássica p.

Processos e Concorrência

Lógica Computacional

Lógica Computacional

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

BDDs. (Diagramas de Decisão Binária)

Aula 2: Linguagem Proposicional

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção.

Lista: Lógica Proposicional - Dedução Natural (Gabarito)

Estados Equivalentes. Exemplo R: Sim, b e f. Note que se estamos em b ou f então:

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

INF 1771 Inteligência Artificial

Lógica proposicional

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em:

Implementação de Algoritmos para Revisão de Modelos CTL

Provadores de Teoremas baseados em contagem

Conhecimento e Raciocínio Lógica Proposicional

Equivalência em LC. Renata de Freitas e Petrucio Viana. IME - UFF 27 de março de 2015

Lógica Computacional

Lista de exercícios de MAT056

Lógica Proposicional

Lógica Computacional

Lógica Computacional

Agentes Lógicos. Capítulo 7 (online)

Especificação de Sistemas de Tempo Real com Gramática de Grafos. Leonardo Michelon Simone Costa Leila Ribeiro

01/09/2014. Capítulo 3. Propriedades semânticas da Lógica Proposicional

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16

Sistemas Inteligentes

Afirmações Matemáticas

Os Fundamentos: Lógica de Predicados

Lógica para Computação

Pré-Cálculo. Humberto José Bortolossi. Aula 5 27 de agosto de Departamento de Matemática Aplicada Universidade Federal Fluminense

Propriedades temporais lineares dos sistemas de

Modelagem e implementação de programas concorrentes

Lógica Proposicional Fórmulas e Precedência de Operadores

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Imersões e Mergulhos. 4 a aula,

Semântica Axiomática

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

ALGORITMOS DISTRIBUÍDOS Deadlock

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Lógica para computação - Propriedades Semânticas da Lógica Proposicional (parte 2/2) Alfabeto Simplificado e Formas Normais

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos

Análise e Síntese de Algoritmos

NHI Lógica Básica (Lógica Clássica de Primeira Ordem)

Laços de repetição for, while, do-while

Lógica Proposicional Propriedades Semânticas

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Lógica para Computação. Álgebra de Boole

Lógica Computacional

INF Semântica formal N

anti-simétrica, com elemento mínimo e tal que, dados n, n, n N, se

Lógica Proposicional

LMT. Um Procedimento Unificado para Prova e Geração de Contra-Exemplos na Lógica Minimal Implicacional

A semântica da Lógica Proposicional(Capítulo 2)

Lógica Computacional

Aula 7: Dedução Natural 2

Lógica Computacional

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos:

Andamento da apresentação

Lógica. Cálculo Proposicional. Introdução

Matemática Discreta - 07

Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos

Lógicas Construtivas: Intuicionismo, uma

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Acesso Sequencial Indexado

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 2. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12

Introdução ao Curso. Área de Teoria DCC/UFMG 2019/01. Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG /01 1 / 22

IME, UFF 5 de novembro de 2013

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

LÓGICA APLICADA A COMPUTAÇÃO

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Lógica Computacional

Propriedades Semânticas da Lógica Proposicional(Capítulo 3)

Transcrição:

Verificação de Modelos (Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina Cîrstea

Agenda Lógica Temporal Lógica de Árvore de Computação (CTL) Verificação de Modelo do CTL

Caminhos de Computação versus Árvores de Computação Estrutura Kripke: a b s0 s 1 b c c s 2 suposição adicional: cada estado tem no mínimo um sucessor processos infinitos! alguns caminhos de computação: s 0 s 1 s 0 s 1... s 0 s 1 s 2 s 2... s 0 s 2 s 2... árvore de computação: s 0 s 1 s 2 s 0 s 2 s 2

Lógicas de Tempo Linear versus Tempo de Ramificação (Branching Time) modelos de tempo: 1. tempo linear: conjunto de todos os caminhos de computação 2. tempo de ramificação: árvore de computação lógicas temporais: 1. lógicas de tempo linear: fórmulas avaliadas em caminhos de computação (estrutura de ramificação é abstraída) e.g. para todos os caminhos, p detém em algum ponto ao longo do caminho 2. lógicas de tempo de ramificação: fórmulas avaliadas em árvores de computação e.g. sempre que p ocorre, é possível alcançar um estado onde q ocorre

Exclusão Mútua: Propriedades de Corretude Revisado exclusão mútua: no máximo um processo na região crítica a qualquer momento (i.e. em todos os estados alcançáveis) starvation freedom: sempre que um processo tenta entrar em sua região crítica, ele irá eventualmente suceder (ao longo de cada caminho de computação) sem bloqueio (vivacidade): um processo pode sempre, em algum ponto no futuro (ao longo de algum caminho de computação), solicitar para entrar em sua região crítica As propriedades temporais acima devem se manter em todos os estados iniciais.

Recap em Lógica Proposicional assuma um conjunto Prop de proposições atômicas sintaxe: φ, ψ ::= p tt φ φ ψ (p Prop) Note: todos os outros operadores booleanos são definíveis, por exemplo ff ::= tt φ ψ ::= ( φ ψ) φ ψ ::= (φ ψ) modelos são avaliações, dizendo quais proposições são verdadeiras e quais não são: V : Prop {True, False} significado (semântica) das fórmulas: V define o significado das proposições atômicas a tabela da verdade define o significado dos operadores booleanos

Lógica de Árvore de Computação (CTL) sintaxe: φ, ψ ::= p tt φ φ ψ AX φ EX φ AF φ EF φ AG φ EG φ A [φ U ψ] E [φ U ψ] (p Prop) leituras de fórmulas modais: AX φ φ holds in All next states EX φ 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 Future 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 fórmulas: AG EF φ, E [tt U AG φ]

Algumas Observações na Sintaxe da CTL os pares AX, EX,..., A [ U ], E [ U ] são indivisíveis! prioridades de ligação:, AG, EG, AF, EF, AX e EX ligam mais firmemente e estão próximos, A [ U ], E [ U ] ligam menos firmemente e.g. EF EG p AF r significa ( EF EG p) AF r parênteses podem ser usados para substituir as prioridades acima, e.g. EF ( EG p AF r), EF EG (p AF r)

Semântica da CTL Assuma a estrutura Kripke M = (S, R, V ). A semântica da CTL define quando uma fórmula φ da CTL é verdadeira em um estado s S. Quando escrevemos s = φ (e dizemos que s satisfaz φ) se φ é verdadeiro em s. A definição de quando s = φ é por indução na estrutura de φ: s = p sse V (p, s) = true s = φ sse s = φ não detém s = φ ψ sse s = φ e s = ψ...

Semântica da CTL: Exemplo φ s φ s φ φ EF φ EG φ

Semântica da CTL: Exemplo φ φ φ φ φ φ s φ φ φ φ AG φ φ φ s φ φ φ AF φ

Semântica da CTL: Exemplo (Continuação) 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 = ψ

Outro Exemplo {b,c} s 1 s 0 {a,b} 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 φ é verdadeiro infinitas vezes ao longo de cada caminho de s.

Exclusão Mútua: um Modelo int turn; P = m : cobegin P 0 P 1 coend m P 0 = n 0 : while True do t 0 : wait (turn = 0); c 0 : use resource; turn := 1; endwhile ; n 0 P 1 = n 1 : while True do t 1 : wait (turn = 1); c 1 : use resource; turn := 0; endwhile ; n 1 0, n 0, n 1 1, n 0, n 1 0, n 0, t 1 0, t 0, n 1 0, t 0, t 1 0, c 0, t 1 0, c 0, n 1 1, n 0, c 1 1, n 0, t 1 1, t 0, c 1 1, t 0, t 1 1, t 0, n 1

Exclusão Mútua: Propriedades de Corretude Proposições atômicas: c 0, c 1 (estado crítico) n 0, n 1 (estado não crítico) t 0, t 1 (tentando entrar no estado crítico) exclusão mútua: no máximo um processo na região crítica a qualquer momento AG (c 0 c 1 ) starvation freedom: sempre que um processo tenta entrar na sua região crítica, ele eventualmente entrará AG ( (t 0 AF c 0 ) (t 1 AF c 1 ) ) sem bloqueio: um processo pode sempre, em algum ponto no futuro, pedir para entrar em sua região crítica AG ( EF t 0 EF t 1 )

Exclusão Mútua: Checagem da Corretude 0, n 0, t 1 0, n 0, n 1 0, t 0, n 1 0, t 0, t 1 0, c 0, t 1 0, c 0, n 1 1, n 0, c 1 1, n 0, t 1 1, t 0, c 1 1, n 0, n 1 1, t 0, t 1 1, t 0, n 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 mão!)

Exercício Assuma as seguintes proposições atômicas: start, ready, requested, acknowledged, enabled, running, deadlock. Especifique as seguintes propriedades de corretude em CTL: 1. É possível/impossível de alcançar um estado onde start é verdadeiro mas ready não é. 2. Sempre que ocorre uma solicitação (request), ela irá eventualmente ser reconhecida (acknowledged). 3. Se um processo é habilitado infinitas vezes ao longo de um caminho, então ele executa muitas vezes infinitamente ao longo desse caminho. 4. Aconteça o que acontecer, deadlock irá eventualmente ocorrer. 5. A partir de qualquer estado, é possível alcançar um estado ready.

Solução do Exercício Fórmulas atômicas: start, ready, requested, acknowledged, enabled, running, deadlock. 1. É (im)possível de alcançar um estado onde start é verdadeiro mas ready não é. AG (start ready) EF (start ready) 2. Sempre que ocorre uma solicitação (request), ela irá eventualmente ser reconhecida (acknowledged). AG (requested AF acknowledged) 3. Se um processo é habilitado infinitas vezes ao longo de um caminho, então ele executa muitas vezes infinitamente ao longo desse caminho. Não é expresso em CTL! 4. Aconteça o que acontecer, deadlock eventualmente ocorrerá. AF deadlock 5. A partir de qualquer estado, é possível alcançar um estado ready. AG ( EF ready)

Algumas Equivalências entre Fórmulas CTL equivalência semântica: φ ψ se qualquer estado de qualquer modelo que satisfaz φ também satisfaz ψ, e reciprocamente. algumas equivalências: 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 é adequado, se e somente se ele contiver: pelo menos um dos AX, EX pelo menos um dos EG, AF, A [ U ] E [ U ] Corolário. Os operadores EX, AF e E [ U ] são suficientes para expressar todas os outros.

Algoritmo de Verificação de Modelo para CTL Entradas: estrutura Kripke finita M, fórmula CTL φ contendo apenas EX, AF e E [ U ] como operadores temporais. Saídas: os estados de M que satisfazem φ Algoritmo: Gerar todas as subfórmulas de φ e ordená-las por complexidade (proposições atômicas primeiro, φ por último). Repetir: pegar uma sub-fórmula da lista e anotar os estados de M que sejam satisfeitos por esta fórmula. Quando nós alcançarmos o fim da lista, sabemos quais estados satisfazem φ.

Como Anotar? A avaliação de V nos diz como anotar os estados com proposições atômicas Todos os estados são anotados com tt. Quando uma sub-fórmula atual é φ, nós anotamos com isto os estados que não estão com φ (note que φ precede φ na lista de sub-fórmulas, assim nós já anotamos os estados com φ). Da mesma forma para φ 1 φ 2...

Como Anotar? (Continuação) Para EX φ, anotar antecessores de qualquer estado rotulado φ por EX φ. Para E [φ 1 U φ 2 ], primeiro encontrar todos os estados anotados por φ 2 e anotá-los por E [φ 1 U φ 2 ]. Então trabalhe para trás a partir daqueles estados e todo tempo que nós encontrarmos os estados φ 1, anotá-los com E [φ 1 U φ 2 ]. Para AF φ, primeiro anote todos os estados anotados com φ por AF φ. Então anote um estado com AF φ se todos os seus sucessores estiverem anotados com AF φ. Repita até que não exista nenhuma mudança. Notas: os operadores acim são suficientes para expressar todos os outros operadores do CTL, as equivalências semânticas dadas anteriormente precisam ser usadas quando a fórmula a ser verificada contém os operadores temporais que não EX, AF e E [ U ].

Observações sobre o Algoritmo Existe uma variante do algoritmo que considera apenas os caminhos de computação que são justos. A complexidade de tempo do algoritmo é quadrático no tamanho do modelo (número de estados + número de transições) e linear no tamanho da fórmula (número de conectivos). Existe uma melhoria do algoritmo (substituindo AF por EG ) cuja complexidade de tempo é linear no tamanho do modelo e no tamanho da fórmula. Isto ainda não é bom o suficiente, tendo em vista que o tamanho do modelo é exponencial no número de variáveis e no número 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.

Exercício Considere o seguinte modelo de exclusão mútua: 0, n 0, n 1 1, c 0, n 1 0, t 0, n 1 1, c 0, t 1 0, t 0, t 1 0, n 0, t 1 1, t 0, c 1 0, n 0, c 1 Verifique se o estado inicial deste modelo satisfaz as fórmulas E [ c 1 U c 0 ] e AF c 0.