Chapter 6

Execution

The future will be better tomorrow.

—Dan Quayle

In this Chapter, we will:

  • [INTRODUCTION] look at several ways of generating a program from a PTL specification (Section 6.1);
  • [TECHNIQUE] describe the METATEM approach to the direct execution of PTL specifications (Section 6.2);
  • [SYSTEM] examine the Concurrent MetateM system which implements the METATEM approach, bringing in deliberation, concurrency and multi-agent systems (Section 6.3); and
  • [ADVANCED] highlight a selection of more advanced work including both extensions of METATEM and alternative approaches to implementing temporal specifications (Section 6.4).

Relatively few exercises will appear in this chapter, but the solutions to those that do can, as usual, be found in Appendix B.

6.1 From Specifications to Programs

We have already seen, earlier in this book, how temporal formulae can be used to describe individual computational components. In addition, we have seen that temporal formulae can usefully describe properties of existing programs (and that these properties can sometimes be checked via model-checking techniques). However, there is a gap here between the specification of a component and its actual implementation.

As in many formal methods, there are several ways to move from a formal specification of a component to an implementation of that component (that satisfies the specification). The most common techniques for achieving this are refinement, synthesis and direct execution.

6.1.1 Refinement ...

Get An Introduction to Practical Formal Methods using Temporal Logic now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.