Abstract

Formal methods for hardware design and software engineering have become increasingly essential to avoid costly errors. But, this justification for using formal methods needs to be supported by their ease of use. Classical Higher Order Logic (HOL) has provided a foundation for formal verification. However, specification and verification in HOL is, invariably, fairly involved. Often it is desirable for the specifier to increase one's understanding of the specification by executing the specification. Evaluating specifications prior to embarking on tedious proofs may, at the very outset, lead to uncovering discrepancies, with little effort. This work attempts to provide an environment in HOL in which specifications using a subset of HOL can be executed. We accomplish this by translating HOL terms into ML programs: the translation process being totally automatic. Executing specifications as programs in a formal setting provides a way to guarantee certain properties that need to be satisfied by the specification. Furthermore, we also find that it has a potential to provide a practical insight into the evaluation semantics for classical logic.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call