Article View: comp.specification
Article #94Re: Linear and Branching Time Temporal Logic
From: Lamport
Date: Fri, 21 Aug 1992 23:05
Date: Fri, 21 Aug 1992 23:05
62 lines
3504 bytes
3504 bytes
In article <172o80INNk2k@iraul1.ira.uka.de>, zundel@i10s7 (Armin Zundel) writes: |> after reading some papers about temporal logic I had some problems to |> decide when to use linear time logics and when to use branching time |> logics. I decided to read |> |> "Sometimes" and "Not Never" revisited: On Branching versus Linear Time |> Temporal Logic |> by E.a. Emerson and J.Y. Halpern. |> |> Now I'm even more confused. I just want so specify distributed systems. |> Can anyone tell me what real life properties can be specified with |> linear time logic and which can be specified in branching time logic. Dear Mr. Zundel, Your message will probably stimulate lots of philosophical debate among theoreticians. Here's my view, based on my experience actually verifying and specifying concurrent systems. The simplest linear-time logic, with just state predicates and the Box operator, can express the intuitive concepts "always" and "eventually". The analogous branching-time logic, with just state predicates and the Box operator, can express the intuitive concepts "always" and "possibly". Since "eventually" is a pretty important concept, I don't think anyone advocates the use of such a simple branching-time logic. I believe that the branching-time logics that people propose allow one to express both "eventually" and "possibly". I have never wanted to write a specification such as "If the user enters an input, then it is possible for the system to produce the correct answer." so the ability to express possibility is of no interest to me. Therefore, I've found linear-time temporal logic adequately expressive, and have no need for complicated branching-time logics. Unfortunately, a simple linear-time logic with just Box and state predicates isn't expressive enough. You need something more. The traditional approach has been to add more powerful temporal operators, and to write a specification as a list of temporal-logic formulas. However, my experience is that, for systems of any complexity, such specifications become incomprehensible and are usually wrong. The only practical specification methods are ones that write a specification as an abstract program. (Petri nets and CCS formulas are examples of abstract programs.) However, programs aren't as mathematically simple or as amenable to manipulation and reasoning as logical formulas are. My approach is to use just the Box operator, but to generalize from simple state predicates to predicates on pairs of states. With this logic, which I call TLA (the Temporal Logic of Actions), it is easy to write abstract programs as logical formulas. For example, one could express the program that starts with x equal to 0 and repeatedly increments x by one as (x = 0) /\ [](x' = x+1) (where /\ denotes conjunction and [] denotes Box). TLA is described in a research report that I am sending you in a separate message. Leslie Lamport
Technical Details
Message-ID:
<1992Aug21.230556.9861@src.dec.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!decwrl!deccrl!news.crl.dec.com!pa.dec.com!src.dec.com!src.dec.com!horningReferences:
<172o80INNk2k@iraul1.ira.uka.de>Show Full Headers
Complete Article Headers
Newsgroups: comp.specification Path: arc1-ca.pugleaf.net!sparky!uunet!decwrl!deccrl!news.crl.dec.com!pa.dec.com!src.dec.com!src.dec.com!horning From: Lamport@src.dec.com Subject: Re: Linear and Branching Time Temporal Logic Message-ID: <1992Aug21.230556.9861@src.dec.com> Followup-To: Lamport@src.dec.com Keywords: TLA, Temporal Logic of Actions Sender: news@src.dec.com (News) Organization: DEC Systems Research Center References: <172o80INNk2k@iraul1.ira.uka.de> Date: Fri, 21 Aug 92 23:05:56 GMT Lines: 64