Lógica Temporal por Ulrich Schiel COPIN - Coordenação de Pós Graduação em Informática - UFPB POR QUE LÓGICA TEMPORAL ? separação entre ESPAÇO (Geometria (Métrica X x x TEMPO Aritmética) Ordem) O QUE É O TEMPO ???? Se ninguém me perguntar, eu sei; se o quiser explicar, ja não sei Santo Agostinho - (354-430) BIBLIOGRAFIA N. Edelweiss & J. Palazzo M. de Oliveira “Modelagem de Aspectos Temporais de Sistemas de Informação” IX Escola de Computação, Recife, 1994 A. Galton “Temporal Logics and their Applications” Academic Press, 1987 Z. Manna & A. Pnueli “The Temporal Logic of Reactive and Concurrent Systems” Springer Verlag, 1991 U. Schiel “Aspectos Temporais em Sistemas de Informação”, Relatório Técnico DSC 001/96, UFPB/DSC, 1996 O TEMPO em sistemas de informação Modelagem temporal Modelagem comportamental Estuda os tempos quando eventos ocorre ou fatos existem Estuda as ações e reações do sistema aos eventos •Bancos de Dados Temporais •Lógica temporal •Lógica de intervalos •Bancos de Dados Ativos dicotomia filosófica de visão do TEMPO e ESPAÇO visão absolutista (Newton) visão relativista (Leibnitz) o tempo (e o espaço vazio) existem a priori. As ’coisas’ existem no espaço e determinam o tempo Lógica Temporal Calendários Lógica do Tempo t passado agora futuro Qual é o ‘ZERO’ do eixo do tempo da visão absolutista? Analogamente: aqui Além do zero o tempo deve ter uma ordem e uma métrica. O conjunto T do tempo é totalmente ordenado pela relação (antes ou ao mesmo tempo), ou seja t1, t2, t3T vale t1 t1 (reflexividade) t1 t2 t2t1 t1 = t2 (antisimétrica) t1 t2 t2t1 (linearidade) (t1 t2 t2t3) t1t3 (transitividade) Além do zero o tempo deve ter uma métrica. Uma métrica para o conjunto T do tempo é uma função d : TxT ->> R que associa a cada par de elementos de T um número real tal que, para todo t1, t2 e t3 em T, temos d(t1,t2) = 0 t1 = t2 d(t1,t2) = d(t2,t1) d(t1,t2) + d(t2,t3) d(t1,t3) Se o tempo é um conjunto discreto a métrica é dada por uma constante associada a dois pontos adjacentes, denominada chronon. Pode ser um segundo, uma hora, um século, etc. Considerações/modelos sobre o tempo: elemento primitivo: Ponto ou Intervalo Densidade: Discreto (enumerável) ou Contínuo Espaço: Presente ou Futuro ou Passado ou Presente e Futuro ou todos os tempos Ordem: Linear ou Lógica: Primeira Ordem Ramificado ou Paralelo ou Modal Lógica Temporal É uma Lógica Modal Principais operadores modais [] P - P será sempre verdadeiro <> P - P será verdadeiro alguma vez () P - P será verdadeiro no próximo estado P até Q - P será verdadeiro até Q ocorrer P com Q - P será verdadeiro com a próxima ocorrência de FATOS: [] P ~<> ~P [] P ()[] P P até Q Q com (P Q) ()<> Q EXEMPLOS 1. Todo dia dou um passeio no parque 2. Alguma noite irei busca-la 3. Vou chorar até você voltar para, então, parar Então temos: 1. [](P <>Q) ?? Seja: P = é dia Q = passeio no parque R = vou buscar você S = estou chorando T = sua volta [] (P ~(~Q até ~P )) 2. <> (~P R ) 3. S até T (T ()~S)) T1: []p ~<>~p AXIOMAS T2: <>p ~[]~p T3: ()~p ~()p T4: p <>p T5: []p p T6: <>[]p []<>p Variantes da Lógica Temporal Lógica Temporal com passado [+] P - sempre no futuro [-] P - sempre no passado <+> P - Alguma vez no futuro <-> P - alguma vez no passado Lógica Temporal ramificada T - em todo futuro A - em algum futuro EXEMPLO: o programa pode dar um deadlock (D). Neste caso, vou interromper o sistema (IS) A(D () IS) Ou melhor: A(D) (D () IS) Aplicações: INTELIGÊNCIA ARTIFICIAL Raciocínio temporal [](trovão (-) raios) “todo trovão é precedido por raios” Processamento de linguagem natural (Termos quando, enquanto, ontem, sempre, depois, conjugação dos verbos, ..) PROGRAMAÇÃO programação concorrente verificação de programas corretude (safety) P []Q vitalidade (liveness) P <>Q precedência P Q com R BANCOS DE DADOS Consistência Temporal Um carro deve ir para a revisão de 3 em 3 anos: [](revisão(c) = ano-atual - 3 <>(revisão(c) antes fim(ano-atu 1) salários não podem baixar temSalário(x, s) [+] ( s’(temSalário(x,s’) s s’) ) 2) quem ja foi empregado, nunca mais pode ser admitido <-> ( EXy(trabalhaPara(x,y))) ~EXECUTABLE(admitir(x) ) BANCOS DE DADOS Consistência Temporal Um carro deve ir para a revisão de 3 em 3 anos: [](revisão(c) = ano-atual - 3 <>(revisão(c) antes fim(ano-atu Bancos de dados Temporais Teoria Geral de Ações e Tempo de Allen 1) Entidades e relacionamentos vale(p,I) I’ I (vale(p, I’) 2) Eventos (longos) ocorre(E, I) I’ I (~ocorre(E, I’)) 3) Processos: ocorrendo(P, I) I’ I (ocorrendo(p, I’) EXEMPLOS: a chuva de ontem (evento) - ontem choveu (processo) Lógica de Intervalos de Allen Dados dois intervalos I e J, vale um dos predicados BEFORE(I,J) MEETS(I,J) OVERLAP(I,J) BEGIN(I,J) DURING(I,J) EQUIVALENT(I,J) END(I,J) Modelagem Comportamental Lógica Dinâmica: [programa] pós-condição Linguagem: Programas: P, Q, ... Proposições: p, q, r, ... pq p são proposições <P>p P::Q P Q P* p? são programas Definição: [P]p def <P>p “sempre que P terminar, p é verdadeiro”