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 \<^emph>\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