
Specifying Systems
The TLA+ Language and Tools for Hardware and Software Engineers
By: Leslie Lamport
Paperback | 19 July 2002 | Edition Number 1
At a Glance
384 Pages
18.6 x 23.3 x 2.8
Paperback
RRP $66.10
$58.75
11%OFF
or 4 interest-free payments of $14.69 with
orAvailable for Backorder. We will order this from our supplier however there isn't a current ETA.
-- Both a tutorial on specifying systems and a complete reference to TLA+ - the Temporal Logic of Actions language - by its inventor.
-- Useful for software and hardware engineers working in areas such as networking, communications, and data management.
This book is the distillation of over 25 years of work by one of the world's most renowned computer scientists. A specification is a written description of what a system is supposed to do, plus a way of checking to make sure that it works. Specifying a system helps us understand it. It's a good idea to understand a system before building it, so it's a good idea to write a specification of a system before implementing it. The most effective tool to describe a specification is the Temporal Logic of Actions, or TLA, because it provides a mathematical, i.e. precise, foundation for describing systems. TLA+ is the language the author developed to write the mathematical specifications. TLA+ is available freely on the web. It can be used for both software and hardware. In fact, Intel is using TLA+ with great success in the design of a new chip. The book is divided into four parts. The first part contains all that most programmers and engineers need to know about writing specifications. The second part contains more advanced material for more sophisticated readers. The third and fourth parts comprise a reference manual for TLA+ - both the language itself as well as its tools.
List of Figures and Tables.
Acknowledgments.
Introduction.
I. Getting Started.
1. A Little Simple Math.Propositional Logic.
Sets.
Predicate Logic.
Formulas and Language. 2. Specifying a Simple Clock.
Behaviors.
An Hour Clock.
A Closer Look at the Specification.
The Specification in TLA+.
An Alternative Specification. 3. An Asynchronous Interface.
The First Specification.
Another Specification.
Types: A Reminder.
Definitions.
Comments. 4. A FIFO.
The Inner Specification.
Instantiation Examined.
Instantiation Is Substitution.
Parametrized Instantiation.
Implicit Substitutions.
Instantiation Without Renaming.
Hiding the Queue.
A Bounded FIFO.
What We're Specifying. 5. A Caching Memory.
The Memory Interface.
Functions.
A Linearizable Memory.
Tuples as Functions.
Recursive Function Definitions.
A Write-Through Cache.
Invariance.
Proving Implementation. 6. Some More Math.
Sets.
Silly Expressions.
Recursion Revisited.
Functions versus Operators.
Using Functions.
Choose. 7. Writing a Specification: Some Advice.
Why Specify.
What to Specify.
The Grain of Atomicity.
The Data Structures.
Writing the Specification.
Some Further Hints.
When and How to Specify.
II: More Advanced Topics.
8. Liveness and Fairness.Temporal Formulas.
Temporal Tautologies.
Temporal Proof Rules.
Weak Fairness.
The Memory Specification.
The Liveness Requirement.
Another Way to Write It.
A Generalization.
Strong Fairness.
The Write-Through Cache.
Quantification.
Temporal Logic Examined.
A Review.
Machine Closure.
Machine Closure and Possibility.
Refinement Mappings and Fairness.
The Unimportance of Liveness.
Temporal Logic Considered Confusing. 9. Real Time.
The Hour Clock Revisited.
Real-Time Specifications in General.
A Real-Time Caching Memory.
Zeno Specifications.
Hybrid System Specifications.
Remarks on Real Time. 10. Composing Specifications.
Composing Two Specifications.
Composing Many Specifications.
The FIFO.
Composition with Shared State.
Explicit State Changes.
Composition with Joint Actions.
A Brief Review.
A Taxonomy of Composition.
Interleaving Reconsidered.
Joint Actions Reconsidered.
Liveness and Hiding.
Liveness and Machine Closure.
Hiding.
Open-System Specifications.
Interface Refinement.
A Binary Hour Clock.
Refining a Channel.
Interface Refinement in General.
Open-System Specifications.
Should You Compose?. 11. Advanced Examples.
Specifying Data Structures.
Local Definitions.
Graphs.
Solving Differential Equations.
BNF Grammars.
Other Memory Specifications.
The Interface.
The Correctness Condition.
A Serial Memory.
A Sequentially Consistent Memory.
The Memory Specifications Considered.
III: The Tools.
12. The Syntactic Analyzer.13. The TLATEX Typesetter.
Introduction.
Comment Shading.
How It Typesets the Specification.
How It Typesets Comments.
Adjusting the Output Format.
Output Files.
Trouble-Shooting.
Using LATEX Commands. 14. The TLC Model Checker.
Introduction to TLC.
What TLC Can Cope With.
TLC Values.
How TLC Evaluates Expressions.
Assignment and Replacement.
Evaluating Temporal Formulas.
Overriding Modules.
How TLC Computes States.
How TLC Checks Properties.
Model-Checking Mode.
Simulation Mode.
Views and Fingerprints.
Taking Advantage of Symmetry.
Limitations of Liveness Checking.
The TLC Module.
How to Use TLC.
Running TLC.
Debugging a Specification.
Hints on Using TLC Effectively.
What TLC Doesn't Do.
The Fine Print.
The Grammar of the Configuration File.
Comparable TLC Values.
IV: The TLA+ Language.
Mini-Manual 268-273.15. The Syntax of TLA+.
The Simple Grammar.
The Complete Grammar.
Precedence and Associativity.
Alignment.
Comments.
Temporal Formulas.
Two Anomalies.
The Lexemes of TLA+. 16. The Operators of TLA+.
Constant Operators.
Boolean Operators.
The Choose Operator.
Interpretations of Boolean Operators.
Conditional Constructs.
The Let/In Construct.
The Operators of Set Theory.
Functions.
Records.
Tuples.
Strings.
Numbers.
. Nonconstant Operators.
Basic Constant Expressions.
The Meaning of a State Function.
Action Operators.
Temporal Operators. 17. The Meaning of a Module.
Operators and Expressions.
The Order and Arity of an Operator.
Expressions.
Simplifying Operator Application.
Expressions.
Levels.
Contexts.
The Meaning of a Expression.
The Meaning of a Module.
Extends.
Declarations.
Operator Definitions.
Function Definitions.
Instantiation.
Theorems and Assumptions.
Submodules.
Correctness of a Module.
Finding Modules.
The Semantics of Instantiation. 18. The Standard Modules.
Module Sequences.
Module FiniteSets.
Module Bags.
The Numbers Modules. Index. 032114306XT07022002
ISBN: 9780321143068
ISBN-10: 032114306X
Published: 19th July 2002
Format: Paperback
Language: English
Number of Pages: 384
Audience: College, Tertiary and University
Publisher: Pearson Education Inc (CS)
Country of Publication: GB
Edition Number: 1
Dimensions (cm): 18.6 x 23.3 x 2.8
Weight (kg): 0.77
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Cloud Native Application Protection Platforms
A Guide to CNAPPs and the Foundations of Comprehensive Cloud Security
Paperback
RRP $125.75
$60.99
OFF























