Leslie Lamport

dblp:l/LeslieLamport · DBLP profile ↗
← Back
86ranked-venue papers
61as first author
3since 2021 · last 2025
0000-0002-9756-1327ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 28 · 21 first-authorSoftware engineering, systems software and programming languages · 26 · 20 first-author · 2 since 2021Theory of computation · 17 · 8 first-authorApplied, interdisciplinary, general and emerging computing · 5 · 4 first-authorSecurity and privacy · 4 · 3 first-author · 1 since 2021Databases, data management, data science and information retrieval · 4 · 2 first-authorComputer networks · 3 · 3 first-author
YearPublicationVenuePosition
2025 A Retrospective of Proving the Correctness of Multiprocess Programs
abstract
A historical perspective of a paper published in 1977. The major contribution of that paper was its informal definitions of safety and liveness properties. It provided a method for proving invariance (a safety property) that was equivalent to ones in several papers published at about the same time—the most influential being the Owicki-Gries method.
Leslie Lamport
IEEE Trans. Software Eng.1
2022 Prophecy Made Simple
abstract
Prophecy variables were introduced in the article “The Existence of Refinement Mappings” by Abadi and Lamport. They were difficult to use in practice. We describe a new kind of prophecy variable that we find much easier to use. We also reformulate ideas from that article in a more mathematical way.
Leslie Lamport, Stephan Merz
ACM Trans. Program. Lang. Syst.1
2021 Verifying Hyperproperties With TLA
abstract
Hyperproperties generalize ordinary properties by expressing relations among multiple executions of a system. Self-composition has been used to reduce verifying that a system satisfies certain classes of Hyperproperties to verifying that a derived system satisfies an ordinary property. By describing systems and their properties in the temporal logic TLA, we use self-composition to handle a larger class of Hyperproperties that includes those we have seen that express security conditions. TLA tools are used to verify that high-level designs of industrial systems satisfy properties. Now, they can also verify that those systems satisfy these Hyperproperties. No prior knowledge of Hyperproperties or TLA is assumed.
Leslie Lamport, Fred B. Schneider
CSF1
2014 An incomplete history of concurrency chapter 1. 1965-1977
abstract
No abstract available.
Leslie Lamport
PODC1
2013 Adaptive Register Allocation with a Linear Number of Registers
Carole Delporte-Gallet, Hugues Fauconnier, Eli Gafni, Leslie Lamport
DISC4
2012 TLA + Proofs
Denis Cousineau 0002, Damien Doligez, Leslie Lamport, Stephan Merz, Daniel Ricketts 0001, Hernán Vanzetto
FM3
2011 Brief Announcement: Leaderless Byzantine Paxos
Leslie Lamport
DISC1
2011 Byzantizing Paxos by Refinement
Leslie Lamport
DISC1
2010 The TLA+ Proof System: Building a Heterogeneous Verification Platform
Kaustuv Chaudhuri, Damien Doligez, Leslie Lamport, Stephan Merz
ICTAC3
2010 The mailbox problem
Marcos K. Aguilera, Eli Gafni, Leslie Lamport
Distributed Comput.3
2009 The PlusCal Algorithm Language
Leslie Lamport
ICTAC1
2009 Vertical paxos and primary-backup replication
abstract
No abstract available.
Leslie Lamport, Dahlia Malkhi, Lidong Zhou
PODC1
2008 The Mailbox Problem
Marcos K. Aguilera, Eli Gafni, Leslie Lamport
DISC3
2008 Implementing dataflow with threads
Leslie Lamport
Distributed Comput.1
2007 DISC 20th Anniversary: Invited Talk Time, Clocks, and the Ordering of My Ideas About Distributed Systems
Leslie Lamport
DISC1
2006 The +CAL Algorithm Language
Leslie Lamport
FORTE1
2006 The +CAL Algorithm Language
abstract
Algorithms are different from programs and should not be described with programming languages. For example, algorithms are usually best described in terms of mathematical objects like sets and graphs instead of the primitive objects like bytes and integers provided by programming languages. +CAL is an algorithm language based on TLA+. A +CAL algorithm is translated to a TLA+ specification that can then be checked with the TLC model checker.
Leslie Lamport
NCA1
2006 Checking a Multithreaded Algorithm with +CAL
Leslie Lamport
DISC1
2006 Fast Paxos
Leslie Lamport
Distributed Comput.1
2006 Lower bounds for asynchronous consensus
Leslie Lamport
Distributed Comput.1
2006 Consensus on transaction commit
abstract
The distributed transaction commit problem requires reaching agreement on whether a transaction is committed or aborted. The classic Two-Phase Commit protocol blocks if the coordinator fails. Fault-tolerant consensus algorithms also reach agreement, but do not block whenever any majority of the processes are working. The Paxos Commit algorithm runs a Paxos consensus algorithm on the commit/abort decision of each participant to obtain a transaction commit protocol that uses 2 F + 1 coordinators and makes progress if at least F + 1 of them are working properly. Paxos Commit has the same stable-storage write delay, and can be implemented to have the same message delay in the fault-free case as Two-Phase Commit, but it uses more messages. The classic Two-Phase Commit algorithm is obtained as the special F = 0 case of the Paxos Commit algorithm.
Jim Gray 0001, Leslie Lamport
ACM Trans. Database Syst.2
2005 How Fast Can Eventual Synchrony Lead to Consensus?
abstract
It is well known that the consensus problem can be solved in a distributed system if, after some time T/sub S/, no process fails and there is some upper bound /spl delta/ on how long it takes to deliver a message. We know of no existing algorithm that guarantees consensus among N processes before time T/sub S/+O(N/spl delta/). We show that consensus can be achieved by time T/sub S/+O(/spl delta/).
Partha Dutta, Rachid Guerraoui, Leslie Lamport
DSN3
2004 Recent Discoveries from Paxos
Leslie Lamport
DSN1
2004 Cheap Paxos
abstract
Asynchronous algorithms for implementing a fault-tolerant distributed system, which can make progress despite the failure of any F processors, require 2F + 1 processors. Cheap Paxos, a variant of the Paxos algorithm, guarantees liveness under the additional assumption that the set of nonfaulty processors does not "jump around" too fast, but uses only F + 1 main processors that actually execute the system and F auxiliary processors that are used only to handle the failure of a main processor. The auxiliary processors take part in reconfiguring the system to remove the failed processor, after which they can remain idle until another main processor fails.
Leslie Lamport, Mike Massa
DSN1
2003 Disk Paxos
Eli Gafni, Leslie Lamport
Distributed Comput.2
2003 Arbitration-free synchronization
Leslie Lamport
Distributed Comput.1
2003 Checking Cache-Coherence Protocols with TLA+
Rajeev Joshi, Leslie Lamport, John Matthews, Serdar Tasiran, Mark R. Tuttle
Formal Methods Syst. Des.2
2002 Paxos Made Simple, Fast, and Byzantine
Leslie Lamport
OPODIS1
2000 Distributed algorithms in TLA (abstract)
abstract
TLA (the temporal logic of actions) is a simple logic for describing and reasoning about concurrent systems. It provides a uniform way of specifying algorithms and their correctness properties, as well as rules for proving that one specification satisfies another. TLA+ is a formal specification language based on TLA, and TLC is a model checker for TLA+ specifications. TLA+ and TLC have been used to specify and check high-level descriptions of real, complex systems. Because TLA+ provides the full power of ordinary mathematics, it permits simple, straightforward specifications of the kinds of algorithms presented at PODC.
Leslie Lamport
PODC1
2000 Disk Paxos
Eli Gafni, Leslie Lamport
DISC2
2000 Fairness and hyperfairness
Leslie Lamport
Distributed Comput.1
2000 When does a correct mutual exclusion algorithm guarantee mutual exclusion?
Leslie Lamport, Sharon E. Perl, William E. Weihl
Inf. Process. Lett.1
1999 Lazy Caching in TLA
Peter B. Ladkin, Leslie Lamport, Bryan Olivier, Denis Roegel
Distributed Comput.2
1999 Should your specification language be typed
abstract
Most specification languages have a type system. Type systems are hard to get right, and getting them wrong can lead to inconsistencies. Set theory can serve as the basis for a specification language without types. This possibility, which has been widely overlooked, offers many advantages. Untyped set theory is simple and is more flexible than any simple typed formalism. Polymorphism, overloading, and subtyping can make a type system more powerful, but at the cost of increased somplexity, and such refinements can never attain the flexibility of having no types at all. Typed formalisms have advantages, too, stemming from the power of mechanical type checking. While types serve little purpose in hand proofs, they do help with mechanized proofs. In the absence of verificaiton, type checking can catch errors in specifications. It may be possible to have the best of both worlds by adding typing annotations to an untyped specification language. We consider only specification languages, not programming languages.
Leslie Lamport, Lawrence C. Paulson
ACM Trans. Program. Lang. Syst.1
1998 Reduction in TLA
Ernie Cohen, Leslie Lamport
CONCUR2
1998 Proving Possibility Properties
Leslie Lamport
Theor. Comput. Sci.1
1998 The Part-Time Parliament
abstract
Recent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament's protocol provides a new way of implementing the state machine approach to the design of distributed systems.
Leslie Lamport
ACM Trans. Comput. Syst.1
1997 How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor
abstract
A multiprocess program executing on a modern multiprocessor must issue explicit commands to synchronize memory accesses. A method is proposed for deriving the necessary commands from a correctness proof of the underlying algorithm in a formalism based on temporal relations among operation executions.
Leslie Lamport
IEEE Trans. Computers1
1997 Processes are in the Eye of the Beholder
Leslie Lamport
Theor. Comput. Sci.1
1995 Conjoining Specifications
abstract
We show how to specify components of concurrent systems. The specification of a system is the conjunction of its components' specifications. Properties of the system are proved by reasoning about its components. We consider both the decomposition of a given system into parts, and the composition of given parts to form a system.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.2
1995 TLA in Pictures
abstract
Predicate-action diagrams, which are similar to standard state-transition diagrams, are precisely defined as formulas of TLA (the Temporal Logic of Actions). We explain how these diagrams can be used to describe aspects of a specification-and those descriptions then proved correct-even when the complete specification cannot be written as a diagram. We also use the diagrams to illustrate proofs.>
Leslie Lamport
IEEE Trans. Software Eng.1
1994 How good is your specification method?
Leslie Lamport
FORTE1
1994 Open Systems in TLA
abstract
We describe a method for writing assumption/guarantee specifications of concurrent systems. We also provide a proof rule for reasoning about the composition of these systems. Specifications are written in TLA (the Temporal Logic of Actions), and all reasoning is performed within the logic. Our proof rule handles internal variables and both safety and liveness properties. 1 Introduction An open system is one that interacts with an environment that neither it nor its implementor controls. To deduce useful properties of a system, we must specify its environment. No system will exhibit its intended behavior in the presence of a su#ciently hostile environment. For example, a combinational circuit will not produce an output in the intended range if some input line, instead of having a 0 or a 1, has an improper voltage level of 1/2. The specification of the circuit's environment must rule out such improper inputs. An open system calls for an assumption/guarantee specification, asserting that...
Martín Abadi, Leslie Lamport
PODC2
1994 How to Write a Long Formula (Short Communication)
abstract
Abstract Standard mathematical notation works well for short formulas, but not for the longer ones often written by computer scientists. Notations are proposed to make one or two-page formulas easier to read and reason about.
Leslie Lamport
Formal Aspects Comput.1
1994 An Old-Fashined Recipe for Real-Time
abstract
Traditional methods for specifying and reasoning about concurrent systems work for real-time systems. Using TLA (the temporal logic of actions), we illustrate how they work with the examples of a queue and of a mutual-exclusion protocol. In general, two problems must be addressed: avoiding the real-time programming version of Zeno's paradox, and coping with circularities when composing real-time assumption/guarantee specifications. Their solutions rest on properties of machine closure and realizability.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.2
1994 The Temporal Logic of Actions
abstract
The temporal logic of actions (TLA) is a logic for specifying and reasoning about concurrent systems. Systems and their properties are represented in the same logic, so the assertion that a system meets its specification and the assertion that one system implements another are both expressed by logical implication. TLA is very simple; its syntax and complete formal semantics are summarized in about a page. Yet, TLA is not just a logician's toy; it is extremely powerful, both in principle and in practice. This report introduces TLA and describes how it is used to specify and verify concurrent algorithms. The use of TLA to specify and reason about open systems will be described elsewhere.
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1993 Verification of a Multiplier: 64 Bits and Beyond
Robert P. Kurshan, Leslie Lamport
CAV2
1993 Composing Specifications
abstract
A rigorous modular specification method requires a proof rule asserting that if each component behaves correctly in isolation, then it behaves correctly in concert with other components. Such a rule is subtle because a component need behave correctly only when its environment does, and each component is part of the others' environments. We examine the precise distinction between a system and its environment, and provide the requisite proof rule when modules are specified with safety and liveness properties.
Martín Abadi, Leslie Lamport
ACM Trans. Program. Lang. Syst.2
1992 Critique of the Lake Arrowhead Three
Leslie Lamport
Distributed Comput.1
1991 Preserving Liveness: Comments on "Safety and Liveness from a Methodological Point of View"
Martín Abadi, Bowen Alpern, Krzysztof R. Apt, Nissim Francez, Shmuel Katz, Leslie Lamport, Fred B. Schneider
Inf. Process. Lett.6
1991 The Existence of Refinement Mappings
Martín Abadi, Leslie Lamport
Theor. Comput. Sci.2
1990 A Theorem on Atomicity in Distributed Algorithms
Leslie Lamport
Distributed Comput.1
1990 Concurrent Reading and Writing of Clocks
abstract
As an exercise in synchronization without mutual exclusion, algorithms are developed to implement both a monotonic and a cyclic multiple-word clock that is updated by one process and read by one or more other processes.
Leslie Lamport
ACM Trans. Comput. Syst.1
1990 win and sin: Predicate Transformers for Concurrency
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1989 Realizable and Unrealizable Specifications of Reactive Systems
Martín Abadi, Leslie Lamport, Pierre Wolper
ICALP2
1988 The Existence of Refinement Mappings
abstract
Refinement mappings are used to prove that a lower-level specification correctly implements a higher-level one. The authors consider specifications consisting of a state machine (which may be infinite-state) that specifies safety requirements and an arbitrary supplementary property that specifies liveness requirements. A refinement mapping from a lower-level specification S/sub 1/ to higher-level one S/sub 2/ is a mapping from S/sub 1/'s state space to S/sub 2/'s state space that maps steps of S/sub 1/'s state machine steps to steps of S/sub 2/'s state machine and maps behaviors allowed by S/sub 1/ to behaviors allowed by S/sub 2/. It is shown that under reasonable assumptions about the specifications, if S/sub 1/ implements S/sub 2/, then by adding auxiliary variables to S/sub 1/ one can guarantee the existence of a refinement mapping. This provides a completeness result for a practical hierarchical specification method.>
Martín Abadi, Leslie Lamport
LICS2
1988 A Lattice-Structured Proof of a Minimum Spanning
abstract
Article Free Access Share on A lattice-structured proof of a minimum spanning Authors: Jennifer L. Welch Laboratory for Computer Science, Massachusetts Institute of Technology Laboratory for Computer Science, Massachusetts Institute of TechnologyView Profile , Leslie Lamport Digital Equipment Corporation, Systems Research Center Digital Equipment Corporation, Systems Research CenterView Profile , Nancy Lynch Laboratory for Computer Science, Massachusetts Institute of Technology Laboratory for Computer Science, Massachusetts Institute of TechnologyView Profile Authors Info & Claims PODC '88: Proceedings of the seventh annual ACM Symposium on Principles of distributed computingJanuary 1988 Pages 28–43https://doi.org/10.1145/62546.62552Published:01 January 1988Publication History 12citation368DownloadsMetricsTotal Citations12Total Downloads368Last 12 Months13Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Jennifer L. Welch, Leslie Lamport, Nancy A. Lynch
PODC2
1988 Control Predicates are Better than Dummy Variables for Reasoning about Program Control
abstract
When explicit control predicates rather than dummy variables are used, the Owicki-Gries method for proving safety properties of concurrent programs can be strengthened, making it easier to construct the required program annotations.
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1987 A Fast Mutual Exclusion Algorithm
abstract
A new solution to the mutual exclusion problem is presented that, in the absence of contention, requires only seven memory accesses. It assumes atomic reads and atomic writes to shared registers.
Leslie Lamport
ACM Trans. Comput. Syst.1
1986 On Interprocess Communication. Part I: Basic Formalism
Leslie Lamport
Distributed Comput.1
1986 On Interprocess Communication. Part II: Algorithms
Leslie Lamport
Distributed Comput.1
1986 The mutual exclusion problem: part I - a theory of interprocess communication
abstract
A novel formal theory of concurrent systems that does not assume any atomic operations is introduced. The execution of a concurrent program is modeled as an abstract set of operation executions with two temporal ordering relations: “precedence” and “can causally affect”. A primitive interprocess communication mechanism is then defined. In Part II, the mutual exclusion is expressed precisely in terms of this model, and solutions using the communication mechanism are given.
Leslie Lamport
J. ACM1
1986 The mutual exclusion problem: partII - statement and solutions
abstract
The theory developed in Part I is used to state the mutual exclusion problem and several additional fairness and failure-tolerance requirements. Four “distributed” N -process solutions are given, ranging from a solution requiring only one communication bit per process that permits individual starvation, to one requiring about N ! communication bits per process that satisfies every reasonable fairness and failure-tolerance requirement that we can conceive of.
Leslie Lamport
J. ACM1
1985 What It Means for a Concurrent Program to Satisfy a Specification: Why No One Has Specified Priority
abstract
The formal correspondence between an implementation and its specification is examined. It is shown that existing specifications that claim to describe priority are either vacuous or else too restrictive to be implemented in some reasonable situations. This is illustrated with a precisely formulated problem of specifying a first-come-first-served mutual exclusion algorithm, which it is claimed cannot be solved by existing methods.
Leslie Lamport
POPL1
1985 Constraints: A Uniform Approach to Aliasing and Typing
abstract
A constraint is a relation among program variables that is maintained throughout execution. Type declarations and a very general form of aliasing can be expressed as constraints. A proof system based upon the interpretation of Hoare triples as temporal logic formulas is given for reasoning about programs with constraints. The proof system is shown to be sound and relatively complete, and example program proofs are given.
Leslie Lamport, Fred B. Schneider
POPL1
1985 Synchronizing Clocks in the Presence of Faults
abstract
Algorithms are described for maintaining clock synchrony in a distributed multiprocess system where each process has its own clock. These algorithms work in the presence of arbitrary clock or process failures, including “two-faced clocks” that present different values to different processes. Two of the algorithms require that fewer than one-third of the processes be faulty. A third algorithm works if fewer than half the processes are faulty, but requires digital signatures.
Leslie Lamport, P. M. Melliar-Smith
J. ACM1
1985 Distributed Snapshots: Determining Global States of Distributed Systems
abstract
This paper presents an algorithm by which a process in a distributed system determines a global state of the system during a computation. Many problems in distributed systems can be cast in terms of the problem of detecting global states. For instance, the global state detection algorithm helps to solve an important class of problems: stable property detection. A stable property is one that persists: once a stable property becomes true it remains true thereafter. Examples of stable properties are “computation has terminated,” “ the system is deadlocked” and “all tokens in a token ring have disappeared.” The stable property detection problem is that of devising algorithms to detect a given stable property. Global state detection can also be used for checkpointing.
K. Mani Chandy, Leslie Lamport
ACM Trans. Comput. Syst.2
1984 Solved Problems, Unsolved Problems and Non-Problems in Concurrency (Invited Address)
abstract
This is an edited transcript of a talk given at last year's conference. To preserve the flavor of the talk and the questions, I have done very little editing—mostly eliminating superfluous words and phrases, correcting especially atrocious grammar, and making the obvious changes needed when replacing slides by figures. The tape recorder was not functioning for the first few minutes, so I had to recreate the beginning of the talk.
Leslie Lamport
PODC1
1984 Byzantine Clock Synchronization
abstract
An informal description is given of three fault-tolerant clock-synchronization algorithms. These algorithms work in the presence of arbitrary kinds of failure, including “two-faced” clocks. Two of the algorithms are derived from Byzantine Generals solutions.
Leslie Lamport, P. M. Melliar-Smith
PODC1
1984 Using Time Instead of Timeout for Fault-Tolerant Distributed Systems
abstract
A general method is described for implementing a distributed system with any desired degree of faulttolerance.Instead of relying upon explicit timeouts, processes execute a simple clock-driven algorithm.Reliable clock synchronization and a solution to the Byzantine Generals Problem are assumed.
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1984 The "Hoare Logic" of CSP, and All That
abstract
Generalized Hoare Logic is a formal logical system for deriving invariance properties of programs.It provides a uniform way to describe a variety of methods for reasoning about concurrent programs, including noninterference, satisfaction, and cooperation proofs.We describe a simple recta-rule of the Generalized Hoare Logic--the Decomposition Principle--and show how all these methods can be derived using it.
Leslie Lamport, Fred B. Schneider
ACM Trans. Program. Lang. Syst.1
1983 Reasoning About Nonatomic Operations
abstract
A method is presented that permits assertional reasoning about a concurrent program even though the atomicity of the elementary operations is left unspecified. It is based upon a generalization of the dynamic logic operator [α]. The method is illustrated by verifying the mutual exclusion property for a two-process version of the bakery algorithm.
Leslie Lamport
POPL1
1983 The Weak Byzantine Generals Problem
abstract
The Byzantine Generals Problem requires processes to reach agreement upon a value even though some of them may fad.It is weakened by allowing them to agree upon an "incorrect" value if a failure occurs.The transaction eormmt problem for a distributed database Js a special case of the weaker problem.It is shown that, like the original Byzantine Generals Problem, the weak version can be solved only ff fewer than one-third of the processes may fad.Unlike the onginal problem, an approximate solution exists that can tolerate arbaranly many failures.
Leslie Lamport
J. ACM1
1983 Specifying Concurrent Program Modules
abstract
Concurrent Program ModulesA method for specifying program modules in a concurrent program is described.It is based upon temporal logic, but uses new kinds of temporal assertions to make the specifications simpler and easier to understand.The semantics of the specifications is described informally, and a sequence of examples are given culminating in a specification of three modules comprising the alternating-bit communication protocol.A formal semantics is given in the appendix.
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1982 An Assertional Correctness Proof of a Distributed Algorithm
Leslie Lamport
Sci. Comput. Program.1
1982 The Byzantine Generals Problem
abstract
Reliable computer systems must handle malfunctioning components that give conflicting information to different parts of the system.This situation can be expressed abstractly in terms of a group of generals of the Byzantine army camped with their troops around an enemy city.Communicating only by messenger, the generals must agree upon a common battle plan.However, one or more of them may be traitors who will try to confuse the others.The problem is to find an algorithm to ensure that the loyal generals will reach agreement.It is shown that, using only oral messages, this problem is solvable if and only if more than two-thirds of the generals are loyal; so a single traitor can confound two loyal generals.With unforgeable written messages, the problem is solvable for any number of generals and possible traitors.Applications of the solutions to reliable computer systems are then discussed.
Leslie Lamport, Robert E. Shostak, Marshall C. Pease
ACM Trans. Program. Lang. Syst.1
1982 Proving Liveness Properties of Concurrent Programs
abstract
A liveness property asserts that program execution eventually reaches some desirable state.While termination has been studied extensively, many other liveness properties are important for concurrent programs.A formal proof method, based on temporal logic, for deriving liveness properties is presented.It allows a rigorous formulation of simple informal arguments.How to reason with temporal logic and how to use safety (invariance) properties in proving liveness is shown.The method is illustrated using, first, a simple programming language without synchronization primitives, then one with semaphores.However, it is applicable to any programming language.
Susan S. Owicki, Leslie Lamport
ACM Trans. Program. Lang. Syst.2
1980 "Sometime" is Sometimes "Not Never" - On the Temporal Logic of Programs
abstract
Pnueli [15] has recently introduced the idea of using temporal logic [18] as the logical basis for proving correctness properties of concurrent programs. This has permitted an elegant unifying formulation of previous proof methods. In this paper, we attempt to clarify the logical foundations of the application of temporal logic to concurrent programs. In doing so, we will also clarify the relation between concurrency and nondeterminism, and identify some problems for further research.In this paper, we consider logics containing the temporal operators "henceforth" (or "always") and "eventually" (or "sometime"). We define the semantics of such a temporal logic in terms of an underlying model that abstracts the fundamental concepts common to almost all the models of computation which have been used. We are concerned mainly with the semantics of temporal logic, and will not discuss in any detail the actual rules for deducing theorems.We will describe two different temporal logics for reasoning about a computational model. The same formulas appear in both logics, but they are interpreted differently. The two interpretations correspond to two different ways of viewing time: as a continually branching set of possibilities, or as a single linear sequence of actual events. The temporal concepts of "sometime" and "not never" ("not always not") are equivalent in the theory of linear time, but not in the theory of branching time -- hence, our title. We will argue that the logic of linear time is better for reasoning about concurrent programs, and the logic of branching time is better for reasoning about nondeterministic programs.The logic of linear time was used by Pnueli in [15], while the logic of branching time seems to be the one used by most computer scientists for reasoning about temporal concepts. We have found this to cause some confusion among our colleagues, so one of our goals has been to clarify the formal foundations of Pnueli's work.The following section gives an intuitive discussion of temporal logic, and Section 3 formally defines the semantics of the two temporal logics. In Section 4, we prove that the two temporal logics are not equivalent, and discuss their differences. Section 5 discusses the problems of validity and completeness for the temporal logics. In Section 6, we show that there are some important properties of the computational model that cannot be expressed with the temporal operators "henceforth" and "eventually", and define more general operators.
Leslie Lamport
POPL1
1980 The 'Hoare Logic' of Concurrent Programs
Leslie Lamport
Acta Informatica1
1980 Reaching Agreement in the Presence of Faults
abstract
The problem addressed here concerns a set of isolated processors, some unknown subset of which may be faulty, that communicate only by means of two-party messages. Each nonfaulty processor has a private value of information that must be communicated to each other nonfaulty processor. Nonfaulty processors always communicate honestly, whereas faulty processors may lie. The problem is to devise an algorithm in which processors communicate their own values and relay values received from others that allows each nonfaulty processor to infer a value for each other processor. The value inferred for a nonfaulty processor must be that processor's private value, and the value inferred for a faulty one must be consistent with the corresponding value inferred by each other nonfaulty processor. It is shown that the problem is solvable for, and only for, n ≥ 3 m + 1, where m is the number of faulty processors and n is the total number. It is also shown that if faulty processors can refuse to pass on information but cannot falsely relay information, the problem is solvable for arbitrary n ≥ m ≥ 0. This weaker assumption can be approximated in practice using cryptographic methods.
Marshall C. Pease, Robert E. Shostak, Leslie Lamport
J. ACM3
1979 How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
abstract
Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.
Leslie Lamport
IEEE Trans. Computers1
1979 A New Approach to Proving the Correctness of Multiprocess Programs
abstract
A new, nonassertional approach to proving multiprocess program correctness is described by proving the correctness of a new algorithm to solve the mutual exclusion problem. The algorithm is an improved version of the bakery algorithm. It is specified and proved correct without being decomposed into indivisible, atomic operations. This allows two different implementations for a conventional, nondistributed system. Moreover, the approach provides a sufficiently general specification of the algorithm to allow nontrivial implementations for a distributed system as well.
Leslie Lamport
ACM Trans. Program. Lang. Syst.1
1978 The Implementation of Reliable Distributed Multiprocess Systems
Leslie Lamport
Comput. Networks1
1977 Proving the Correctness of Multiprocess Programs
abstract
The inductive assertion method is generalized to permit formal, machine-verifiable proofs of correctness for multiprocess programs. Individual processes are represented by ordinary flowcharts, and no special synchronization mechanisms are assumed, so the method can be applied to a large class of multiprocess programs. A correctness proof can be designed together with the program by a hierarchical process of stepwise refinement, making the method practical for larger programs. The resulting proofs tend to be natural formalizations of the informal proofs that are now used.
Leslie Lamport
IEEE Trans. Software Eng.1
1976 The Synchronization of Independent Processes
Leslie Lamport
Acta Informatica1
1976 Comments on "A Synchronization Anomaly"
Leslie Lamport
Inf. Process. Lett.1