Reasoning about algorithms stands out as an essential challenge
of computer science. Much work has been put into the development of formal
methods, within recent years focusing especially on concurrent algorithms.
The Temporal Logic of Actions (TLA) is one of the formal frameworks that has
been the result of such research. In TLA a system and its properties may be
specified as logical formulas, allowing the application of reasoning without
any intermediate translation. Being a linear-time temporal logic, it easily
expresses liveness as well as safety properties.
TLP, the TLA Prover, is a system developed by the author for doing mechanical reasoning in TLA. TLP is a complex system that combines different reasoning techniques to be able to handle verification of real systems. It uses the Larch Prover as its main verification back-end, but as well makes it possible to utilize results provided by other back-ends, such as an automatic linear-time temporal logic checker for finite-state systems. Specifications to be verified within the TLP system are written in a dedicated language, an extension of pure TLA. The language as well contains syntactical constructs for representing natural deduction proofs, and a separate language for defining methods to be applied during verification. With the TLP translators and interactive front-end, it is possible to write specifications and incrementally develop mechanically verifiable proofs in a fashion that has not been seen before.
Available as PostScript,PDF.