Formal methods: state of the art and future directions

  title={Formal methods: state of the art and future directions},
  author={Edmund M. Clarke and Jeannette M. Wing},
  journal={ACM Comput. Surv.},
Hardware and software systems will inevitably grow in scale and functionality. Because of this increase in complexity, the likelihood of subtle errors is much greater. Moreover, some of these errors may cause catastrophic loss of money, time, or even human life. A major goal of software engineering is to enable developers to construct systems that operate reliably despite this complexity. One way of achieving this goal is by using formal methods, which are mathematically based languages… 

A Progressive Methodology for the Verification of a DSP Chip

A methodology for the formal verification using theorem proving of a DSP processor chip is described and a new progressive methodology based on the particular characteristics of the architecture of the processor and the strength of the HOL theorem prover is defined.

Model checking Circus

An operational semantics for model checking Circus is provided, which enables the representation of Circus programs as automata, as well as a search algorithm enabling us to establish refinement between two programs, in order to provide tool support for Circus.

Formal methods and automation for system verification

  • H. Krad
  • Computer Science
    2011 Fourth International Conference on Modeling, Simulation and Applied Optimization
  • 2011
This paper introduces and shows how some of those formal methods, Propositional Logic (PL) and First Order Logic (FOL), can be used in specifying and verifying the correctness of related system aspects.

The application of correctness preserving transformations to software maintenance

The authors apply a theoretical tool, the correctness preserving transformation (CPT), to a real software engineering problem: the need for optimization during the maintenance of code and shows that CPTs can facilitate generation of more efficient code while guaranteeing the preservation of original behavior.


This paper introduces and shows how some of those formal methods techniques, Propositional Logic and First Order Logic, can be used in specifying and verifying the correctness of some properties related to such systems.

Formal symbolic verification using heuristic search and abstraction techniques

This thesis investigates non-exhaustive model checking algorithms and focuses on error detection in system verification using a novel integration of symbolic model checking, heuristic search and abstraction techniques to produce a framework that is called abstractiondirected model checking.

FLAVERS: A finite state verification technique for software systems

An FSV approach that creates a compact and conservative, but imprecise, model of the system being analyzed, and then assists the analyst in adding additional details as guided by previous analysis results is described and some experimental results demonstrating scalability are provided.

Formal Verification of Generalised State Machines

This paper describes how a new logic, namely XmCTL, which extends temporal logic with memory quantifiers, facilitates model checking of X-machine models and is demonstrated through the verification of a steam-boiler system.


This paper shows how some of those automated reasoning techniques and formal proving methods, using Propositional Logic and First Order Logic, can be used in specifying and verifying the correctness of some properties related to such systems.

Formal specification and verification of safety interlock systems: A comparative case study

The design of mathematical models as a basis for the implementation of error-free software for the safety interlock system at iThemba LABS and the comparison of formal method techniques that addresses the lack of much-needed empirical studies in the field of formal methods are addressed.



An improvement in formal verification

This paper proposes a new reduction method that solves some of the problems of redundancy caused by the many possible interleavings of inde- pendent actions in a concurrent system.

Model checking, abstraction, and compositional verification

The necessary framework for using compositional verification and abstraction with model checking is developed, and it is demonstrated via a number of examples how they can be applied to realistic systems.

Fast, automatic checking of security protocols

This work presents a new approach, theory checking, to analyzing and verifying properties of security protocols, and generates the entire finite theory, Th, of a logic for reasoning about a security protocol, generating an automatic theory-checker generator.

Symbolic model checking: an approach to the state explosion problem

The symbolic model checking technique revealed subtle errors in this protocol, resulting from complex execution sequences that would occur with very low probability in random simulation runs, and an alternative method is developed for avoiding the state explosion in the case of asynchronous control circuits.

The complexity of verification

The focus of formal verification is how to verify mathematically that a system of coordinating components behaves as it should, and given a mathematical model of such a system, one seeks to verify that the model has a given attribute.

An Integration of Model Checking with Automated Proof Checking

An approach where a BDD-based model checker for the propositional mu-calculus has been used as a decision procedure within the framework of the PVS proof checker is described, arguing that it fits in nicely with the design philosophy of PVS of providing highly effective mechanical reasoning capability by using efficient decision procedures as the workhorses of an interactiveProof checker.

Modular Verification of SRT Division

This example demonstrates that the resources of an expressive specification language and of a general-purpose theorem prover are not inimical to highly automated verification in this domain, and can contribute to clarity, generality, and reuse.

Automatic Verification of Sequential Circuits Using Temporal Logic

An automatic verification system for sequential circuits in which specifications are expressed in a propositional temporal logic, which does not require any user assistance and is quite fast—experimental results show that state machines with several hundred states can be checked for correctness in a matter of seconds.

Automated proofs of object code for a widely used microprocessor

This thesis formally described a substantial subset of the MC68020, a widely used microprocessor built by Motorola, within the mathematical logic of the automated reasoning system Nqthm, a.k.a. the Boyer-Moore Theorem Proving System, and mechanized a mathematical theory to facilitate automated reasoning about object code programs.

Error-free software development for critical systems using the B-Methodology

The author explains the insights of the B formal development process: specification and implementation through refinements where each refinement step is proved using axioms based on the first-order predicate logic and an extension of the Zermelo set theory.