TEMPORAL LOGIC
In logic, the term 'temporal logic' is used to describe any system of rules and symbolism for representing, and reasoning about, propositions qualified in terms of time. It is sometimes also used to refer to tense logic, a particular modal logic-based system of temporal logic introduced by Arthur Prior in the 1960s. Subsequently it has been developed further by computer scientists, notably Amir Pnueli, and logicians.
Temporal logic was first studied in depth by Aristotle, whose writings are filled with a crude form of first-order temporal modal binary logic. Any logic which uses the existential quantifier or the universal quantifier is said to be a first-order logic. Any logic which views time as a sequence of states is a temporal logic, and any logic which uses only two truth values is a binary logic.
Consider the statement: "I am hungry." Though its meaning is constant in time, the truth value of the statement can vary in time. Sometimes the statement is true, and sometimes the statement is false, but the statement is never true and false simultaneously. In a temporal logic, statements can have a truth value which can vary in time. Contrast this with an atemporal logic, which can only handle statements whose truth value is constant in time.
In a temporal logic we can then express statements like "I am ''always'' hungry", "I will ''eventually'' be hungry", or "I will be hungry ''until'' I eat something".
Temporal logic has found an important application in formal verification, where it is used to state requirements of hardware or software systems. For instance, one may wish to say that ''whenever'' a request is made, access to a resource is ''eventually'' granted, but it is ''never'' granted to two requestors simultaneously." Such a statement can conveniently be expressed in a temporal logic.
Temporal logic always has the ability to reason about a time line. So called linear time logics are restricted to this type of reasoning. Branching logics, however, can reason about multiple time lines. This presupposes an environment that may act unpredictably.
To continue the example, in a branching logic we may state that "there is a possibility that I will stay hungry forever." We may also state that "there is a possibility that eventually I am no longer hungry." If we do not know whether or not I will ever get fed, these statements are both true.
Two early contenders in formal verifications were Linear Temporal Logic (a linear time logic by Amir Pnueli and Zohar Manna) and Computation Tree Logic, a branching time logic by Edmund Clarke and E. Allen Emerson. The fact that the second logic is more efficient than the first does not reflect on branching and linear logics in general, as has sometimes been argued. Rather, Emerson and Lei show that any linear logic can be extended to a branching logic that can be decided with the same complexity.
Temporal logic has two kinds of operators: logical operators and modal operators[1]. Logical operators are usual truth-functional operators (). The modal operators used in Linear Temporal Logic and Computation Tree Logic are defined as follows.
{| border="1" cellspacing="0" cellpadding="2" style="border-collapse: collapse;"
|-
| style="background:#efefef;" | Textual
| style="background:#efefef;" | Symbolic
| style="background:#efefef;" | Definition
| style="background:#efefef;" | Explanation
| style="background:#efefef;" | Diagram
|-
| colspan="4" align="center" | Binary operators
|-
| 'U'
|
|
Temporal logic was first studied in depth by Aristotle, whose writings are filled with a crude form of first-order temporal modal binary logic. Any logic which uses the existential quantifier or the universal quantifier is said to be a first-order logic. Any logic which views time as a sequence of states is a temporal logic, and any logic which uses only two truth values is a binary logic.
Consider the statement: "I am hungry." Though its meaning is constant in time, the truth value of the statement can vary in time. Sometimes the statement is true, and sometimes the statement is false, but the statement is never true and false simultaneously. In a temporal logic, statements can have a truth value which can vary in time. Contrast this with an atemporal logic, which can only handle statements whose truth value is constant in time.
In a temporal logic we can then express statements like "I am ''always'' hungry", "I will ''eventually'' be hungry", or "I will be hungry ''until'' I eat something".
Temporal logic has found an important application in formal verification, where it is used to state requirements of hardware or software systems. For instance, one may wish to say that ''whenever'' a request is made, access to a resource is ''eventually'' granted, but it is ''never'' granted to two requestors simultaneously." Such a statement can conveniently be expressed in a temporal logic.
Temporal logic always has the ability to reason about a time line. So called linear time logics are restricted to this type of reasoning. Branching logics, however, can reason about multiple time lines. This presupposes an environment that may act unpredictably.
To continue the example, in a branching logic we may state that "there is a possibility that I will stay hungry forever." We may also state that "there is a possibility that eventually I am no longer hungry." If we do not know whether or not I will ever get fed, these statements are both true.
Two early contenders in formal verifications were Linear Temporal Logic (a linear time logic by Amir Pnueli and Zohar Manna) and Computation Tree Logic, a branching time logic by Edmund Clarke and E. Allen Emerson. The fact that the second logic is more efficient than the first does not reflect on branching and linear logics in general, as has sometimes been argued. Rather, Emerson and Lei show that any linear logic can be extended to a branching logic that can be decided with the same complexity.
| Contents |
| Temporal operators |
| Temporal logics |
| See also |
| References |
| External links |
Temporal operators
Temporal logic has two kinds of operators: logical operators and modal operators[1]. Logical operators are usual truth-functional operators (). The modal operators used in Linear Temporal Logic and Computation Tree Logic are defined as follows.
{| border="1" cellspacing="0" cellpadding="2" style="border-collapse: collapse;"
|-
| style="background:#efefef;" | Textual
| style="background:#efefef;" | Symbolic
| style="background:#efefef;" | Definition
| style="background:#efefef;" | Explanation
| style="background:#efefef;" | Diagram
|-
| colspan="4" align="center" | Binary operators
|-
| 'U'
|
|
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español