The Larch family of formal specification languages and tools was originally developed in the USA. Its user community has now spread to Europe and several industrial firms are interested in using it in their system development programs. It differs from the other "higher profile" languages such as Z and VDM in three respects: firstly, it was designed to specify programs rather than mathematical models and therefore addresses the complexities of real programs; secondly, it has been specifically developed as a practical tool for use in several major application domains; finally, it has a state-of-the-art semantic analysis tool in the form of the Larch Prover. This volume contains the papers presented at the First International Workshop on Larch, held in Dedham, USA, 13-15 July 1992. The workshop brought together for the first time those who have designed the Larch languages, built tool support for them, and used them to specify and reason about soft- and hardware systems. It encouraged discussion about how the Larch languages and Prover are being used, and assessed plans for developing them. The aim of the workshop was to raise the profile of Larch, and to provide impetus for continued research into its tools and languages. Among the topics covered in this volume are: the mechanical verification of concurrent systems with TLA; the DECspec project; the preliminary design of Larch/C++; generating proof obligations for circuits; lock-level verification; checking software design using formal specifications; optimizing programs with specifications; a report on the formal basis of generics. First International Workshop on Larch provides a comprehensive overview of the international use and development of Larch. It will be invaluable to researchers and practitioners who are already involved with, or who wish to know more about, this important specification language.
Is Engineering Software Amenable to Formal Specification?.- How to Prove Observational Theorems with LP.- Using SOS Definitions in Term Rewriting Proofs.- An exercise in LP: The Proof of a Non Restoring Division circuit.- Integrating ASSPEGIQUE and LP.- Mechanical Verification of Concurrent Systems with TLA.- The DECspec Project: Tools for Larch/C.- Formal Verification of Ada Programs.- A Semantics for a Larch/Modula-3 Interface Language.- Preliminary Design of Larch/C++.- Generating Proof Obligations for Circuits.- Using Transformations and Verification in Circuit Design.- Using LP to Study the Language PL 0 + .- Semantic Analysis of Larch Interface Specifications.- Optimizing Programs with Partial Specifications.- A new Front-End for the Larch Prover.- Thoughts on a Larch/ML and a New Application for LP.