LÓGICA TEMPORAL COM RAMIFICAÇÕES (Branching time temporal logics) UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Lógica para computação Ananias Tessaro Bruno Fernandes Lucas Lopes Lógica Temporal ● ● O objetivo da lógica temporal é a especificação de propriedades de sistemas dinâmicos. Lógica Temporal permite que se raciocine sobre uma seqüência de estados. Quando a lógica permite expressar apenas a possibilidade ou necessidade de ocorrência de algumas (seqüências finitas de) ações, ela é de fato chamada lógica modal. Quando ela permite além disso, expressar que uma propriedade é sempre verdadeira, ou verdadeira no futuro sobre seqüências infinitas de comportamento, então ela é chamada de lógica temporal Lógica Temporal ● ● Lógica temporal é uma extensão de lógica convencional que incorpora operadores especiais para relacionar a validade das fórmulas lógicas à evolução do sistema. Em argumentos informais sobre assuntos não matemáticos, o tempo é algumas vezes crucial. Podendo ser analogamente verificado no exemplo: “José casa com Maria, José casou com Maria, José casará com Maria”. Lógica Temporal ● ● A lógica clássica trata de “verdades eternas", no sentido em que a linguagem não dispõe de nenhum mecanismo para representar explicitamente o tempo e suas conseqüências sobre os valores verdade de fórmulas lógicas. A principal característica de uma lógica temporal é o fato de uma determinada fórmula lógica poder apresentar valores verdade distintos em instantes diferentes do tempo. Lógica Temporal ● Seja A uma fórmula qualquer: ● (i) FA - A será verdade em algum instante no futuro; ● (ii) PA - A foi verdade em algum instante no passado; Lógica Temporal ● (iii) GA - A será verdade em todos os ● instantes do futuro; (iv) HA - A foi verdade em todos os instantes do passado. Lógica Linear Vs. Lógica Ramificada ● Existem dois grandes grupos de lógica temporal: em lógica temporal linear, operadores descrevem propriedades presentes em todas as possíveis trajetórias do sistema; em árvore de computação lógica (CTL), operadores temporais inferem sobre diferentes trajetórias a partir de um dado estado. Modelos para Lógica Temporal ● ● ● Modelos de lógicas temporais contém diversos estados e uma fórmula pode ser verdadeira em alguns estados e falsa em outros. A noção estática de verdade é substituída por uma noção dinâmica. Modelos são espécies de sistemas de transição e as propriedades são fórmulas em lógica temporal. Lógica Temporal CTL ● ● ● ● ● Lógicas modais, como HML, podem expressar capacidades e necessidades locais de processos. HML não pode expressar propriedades duradouras como “ um tick é sempre possivel como uma próxima ação” ou propriedades inevitáveis com o passar do tempo como “um tick acontecerá mais cedo ou mais tarde”. CTL significa Computation Tree Logic. CTL contém operadores que nos permitem refererir ao Futuro. Modelo de computação é uma estrutura ramificada (árvore), no sentido que diferentes caminhos são possíveis no futuro. CTL - Sintaxe - Formal CTL - Sintaxe - Informal ● ● ● ● ● ● As formulas em CTL são as fórmulas acrescidas dos operadores temporais AG,AF,EG,EF. Cada conectivo é um par de símbolos. A significa “ao longo de todos os caminhos” (inevitavelmente). E significa “ao longo de pelo menos um caminho” (possivelmente). F significa “em algum estado futuro”. G significa “em todos os estados futuros (globalmente)”. CTL - Execuções (Runs) ● ● Uma outra abstração para o comportamento de um processo, além da noção de grafo de transição, é o conceito de execução (run). Uma execução de P0 é uma seqüência finita ou infinita de transições. CTL - Sintaxe - Informal Exemplo Exemplo Referências ● ● ● Lógica Proposicional disponivel em: http://www.inf.pucrs.br/~alfio/ParadigmasFormais/temporal-logic.pdf. MARTINI, Alfio. Lógica Proposicional - Lógicas Modais e Temporais Para Computação. SRINIVASAN, Jai. EMERSON, E. Allen. Branching Time Temporal Logic Lecture Notes In Computer Science 354 P.