Remove ads
Da Wikipédia, a enciclopédia livre
Em lógica, lógica temporal é qualquer sistema de regras e símbolos para representar e dissertar sobre proposições qualificadas em termos de tempo. Em lógica temporal, pode-se então expressar sentenças como "Eu estou sempre com fome", "Eu eventualmente estarei com fome" ou "Eu estarei com fome até eu comer algo". Lógica temporal é algumas vezes também usada para se referir a um sistema particular de lógica temporal baseada em lógica modal, introduzida por Arthur Prior no final da década de 1950; e com importantes resultados obtidos por Hans Kamp. Subsequentemente, tem sido desenvolvida por cientistas da computação, como Amir Pnueli; e lógicos.
A lógica temporal tem uma aplicação importante em verificação formal, em que é usada para declarar requerimentos de sistemas de hardware ou software. Por exemplo, alguém pode desejar dizer que sempre que uma solicitação é feita, o acesso ao recurso é eventualmente garantido, mas nunca será garantido a dois solicitantes simultaneamente. Uma declaração desse tipo pode ser expressada convenientemente em lógica temporal.
Considere a declaração: "Eu estou com fome". Embora seu significado seja constante em relação ao tempo, o valor-verdade da declaração pode variar com o momento. Algumas vezes, a declaração é verdadeira; e algumas vezes é falsa, mas nunca será verdadeira e falsa ao mesmo tempo. Em lógica temporal, declarações podem ter um valor-verdade que variam com o tempo. Contraste isso com lógica atemporal, que só pode discutir declarações cujo valor-verdade é constante independente do tempo. Esse tratamento de valores-verdade ao longo do tempo diferencia a lógica temporal das demais.
Esse conceito sempre possui a habilidade de dissertar sobre uma linha temporal. As chamadas lógicas temporais lineares estão restringidas a esse tipo de dissertação. Lógicas ramificáveis, entretanto, podem dissertar sobre múltiplas linhas temporais. Isso pressupõe um ambiente que pode vir a agir imprevisivelmente. Para continuar o exemplo, em lógicas ramificáveis, podemos declarar que "existe a possibilidade de que eu ficarei com fome para sempre". Nós podemos dizer também que "existe a possibilidade de que eventualmente eu não estarei mais com fome." Se nós não sabemos se eu serei ou não alimentado, essas declarações são ambas verdadeiras algumas vezes.
Apesar da lógica aristotélica se preocupar quase inteiramente com a teoria de silogismo categórico, há passagens em seu trabalho que são vistas hoje como antecipações da lógica temporal; e podem implicar em uma primitiva, parcialmente desenvolvida, forma de lógica modal temporal binária de primeira ordem. Aristóteles estava particularmente preocupado com o problema dos futuros contingentes, onde ele não aceitava que o princípio da bivalência pudesse ser aplicado a declarações sobre eventos futuros, pois nós podemos atualmente decidir se uma declaração sobre eventos futuros é verdadeira ou falsa, como por exemplo, "haverá uma batalha naval amanhã".[1]
Houve pouco desenvolvimento durante um milênio. Charles Sanders Peirce notou, no século XIX:[2]
“ | Tempo tem sido geralmente considerado pelos lógicos o que se chama de questão 'extra lógica'. Eu nunca partilhei dessa opinião. Mas eu pensei que lógica ainda não havia atingido o estado de desenvolvimento o qual a introdução de modificações temporais de suas formas não resultaria em grande confusão; e ainda penso bastante dessa forma. | ” |
Arthur Prior estava preocupado com a questão lógica de livre arbítrio e predestinação. De acordo com sua esposa, a primeira vez que ele considerou formalizar lógica temporal foi em 1953. Ele deu palestras sobre o tópico na Universidade de Oxford, em 1955-1956; e em 1957, publicou o livro Time and Modality, no qual ele introduziu lógica proposicional modal com dois conectivos temporais (operadores modais), F e P, correspondendo a "algum momento no futuro" e "algum momento no passado", respectivamente. Nesse trabalho, Prior considerou tempo como sendo linear. Em 1958, no entanto, ele recebeu uma carta de Saul Kripke, que apontou que essa suposição era talvez injustificada. Num desenvolvimento que prenunciava um outro similar em ciência da computação, Prior tomou o fato em consideração; e desenvolveu duas teorias de tempo ramificado, as quais ele chamou de "Ockhamist" e "Peircean".[2][necessário esclarecer] Entre 1958 e 1959, Prior também se correspondeu com Charles Leonard Hamblin; e um número de desenvolvimentos iniciais no campo podem ser traçados a essas correspondências, como as "Implicações de Hamblin", por exemplo. Prior publicou seu trabalho mais maduro sobre o tópico, o livro Past, Present and Future, em 1967. Ele morreu dois anos depois.[3]
Os operadores binários temporais "desde" e "até" foram introduzidos por Hans Kamp, em sua tese de Ph.D em 1968,[4] que também possui um importante resultado relacionando logica temporal com logica de primeira ordem - um resultado hoje conhecido como Teorema de Kamp.[2][5][6]
Dois candidatos iniciais em verificações formais foram "Lógica temporal linear" (uma lógica de tempo linear, por Amir Pnueli); e "Árvore lógica computacional" (uma lógica ramificada, por Zohar Manna e Amir Pnueli). Um formalismo quase equivalente ao de ALC foi sugerido em torno do mesmo tempo por EM Clarke e EA Emerson. O fato que a segunda lógica pode ser decidida mais eficientemente que a primeira não reflete em lógicas ramificadas e lineares em geral, como tem sido discutido algumas vezes. De preferência, Emerson e Lei mostram que qualquer lógica linear pode ser estendida para a lógica ramificada, que pode ser decidida com a mesma complexidade.
A lógica temporal tem dois tipos de operadores: operadores lógicos e operadores modais.[7] Operadores lógicos são os comuns. E os operadores modais usados em lógica temporal linear e árvores lógicas computacionais são definidos a seguir:
Textual | Simbólico | Definição | Explicação | Diagrama |
---|---|---|---|---|
Operadores binários | ||||
U | Until (Até): detém na atual ou futura posição; e tem de manter até essa posição. Nessa posição, não tem que segurar mais. | |||
R | Release (Liberar): libera se é verdade até a primeira posição em que é verdade (ou para sempre, se tal posição não existir). | |||
Operadores unários | ||||
N | Next (Próximo): deve manter no próximo estado (X é usado como sinônimo). | |||
F | Future (Futuro): eventualmente deve manter (em algum momento no caminho subsequente). | |||
G | Globally (Globalmente): tem que manter todo o caminho subsequente. | |||
A | All (Para todo): tem que segurar todos os caminhos a partir do estado atual. | |||
E | Exists (Existe): existe pelo menos um caminho a partir do atual estado onde mantém. |
Símbolos alternativos:
Operadores unários são fórmulas bem formadas sempre que B() é bem formado. E operadores binários são fórmulas bem formadas sempre que B() e C() forem bem formados.
Em algumas lógicas, alguns operadores não podem ser expressados, Por exemplo, o operador N não pode ser expressado em lógica temporal de ações.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.