# Theory README

theory README imports Main
begin
section ‹TLA: Lamport's Temporal Logic of Actions›
text ‹
TLA 🌐‹http://www.research.digital.com/SRC/personal/Leslie_Lamport/tla/tla.html›
is a linear-time temporal logic introduced by Leslie Lamport in ∗‹The
Temporal Logic of Actions› (ACM TOPLAS 16(3), 1994, 872-923). Unlike other
temporal logics, both systems and properties are represented as logical
formulas, and logical connectives such as implication, conjunction, and
existential quantification represent structural relations such as
refinement, parallel composition, and hiding. TLA has been applied to
numerous case studies.
This directory formalizes TLA in Isabelle/HOL, as follows:
▪ 🗏‹Intensional.thy› prepares the ground by introducing basic syntax for
"lifted", possible-world based logics.
▪ 🗏‹Stfun.thy› and 🗏‹Action.thy› represent the state and transition
level formulas of TLA, evaluated over single states and pairs of states.
▪ 🗏‹Init.thy› introduces temporal logic and defines conversion functions
from nontemporal to temporal formulas.
▪ 🗏‹TLA.thy› axiomatizes proper temporal logic.
Please consult the ∗‹design notes›
🌐‹http://www.pst.informatik.uni-muenchen.de/~merz/isabelle/IsaTLADesign.ps›
for further information regarding the setup and use of this encoding of TLA.
The theories are accompanied by a small number of examples:
▪ 🗀‹Inc›: Lamport's ∗‹increment› example, a standard TLA benchmark,
illustrates an elementary TLA proof.
▪ 🗀‹Buffer›: a proof that two buffers in a row implement a single buffer,
uses a simple refinement mapping.
▪ 🗀‹Memory›: a verification of (the untimed part of) Broy and Lamport's
∗‹RPC-Memory› case study, more fully explained in LNCS 1169 (the ∗‹TLA
solution› is available separately from
🌐‹http://www.pst.informatik.uni-muenchen.de/~merz/papers/RPCMemory.html›).
›
end