Abstract:
Despite the fact that modern computer systems are composed of complex hardware and software components, verifying the correctness of the software part is often a greater problem than that of the hardware. It is known that manual inspection of complex software is error-prone and expensive, therefore tool support is required.
According to practical experience, using Hoare logic for proving the correctness of computer programs is tedious, error-prone, obscure and entirely unreliable process. This is because correctness-based principles are generally not well understood. No doubt that this critical state of affairs has numerous reasons. However, there is one reason or issue that has greatly led to this problem that is the verification tools used in applying Hoare logic. These tools, in many cases, consist of a pen and papers, making it a tedious task to verify a whole program using a pen and a sheet of paper. A direct way to solve this problem is to use automated formal verification software to facilitate checking the correctness of Hoare programs. The aim of this research is to build an automated systemcalled Alneelain Verification System that maps axioms of Abstract Data Types (ADT’s) specification into verification conditions (in the form of a Hoare formula) and attempts to prove them in Hoare’s logic. Before mapping axioms into Hoare formulas, one needs to check that the specification is syntactically correct. In order to do this a specification language called Alneelain is developed based on axiomatic specification. The evaluation results show that the developed verification system provides a high degree of proof automation combined with the ability to provide feedback on failed proof attempts and thus removes the difficulty associated with the process of applying Hoare logic manually.