ADI: Automatic Derivation of Invariants
- 1 January 1980
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-6 (1) , 40-48
- https://doi.org/10.1109/tse.1980.230461
Abstract
Most current systems for mechanical program verification are not fully automatic, since the user himself must provide the intermediate inductive assertions. This paper describes an interactive computer program, called ADI, which automatically generates the needed inductive assertions. ADI is also able to extend partial loop assertions supplied by the user to form complete assertions. The implementation (written in QLISP and INTERLISP) is based on both the algorithmic and the heuristic approaches introduced by Katz and Manna in "Logical Analysis of Programs" [25]. For the algorithmic subsystem ADI includes: Difference Equations Constructor, Difference Equations Solver, and Invariants from Conditional Statements Generator. The heuristic subsystem includes: Exit Rules Package, Bounding Variables Component, Strengthening Executer, Weakening Executer, and a Heuristic Invariant Matcher-which is the actual implementation of two new heuristics, MATCHPQ and MATCHPT. ADI is a small step toward interactive, practical program verification.Keywords
This publication has 17 references indexed in Scilit:
- A Note on Synthesis of Inductive AssertionsIEEE Transactions on Software Engineering, 1980
- Strong verification of programsIEEE Transactions on Software Engineering, 1975
- A view of program verificationACM SIGPLAN Notices, 1975
- Specification techniques for data abstractionsACM SIGPLAN Notices, 1975
- A synthesizer of inductive assertionsIEEE Transactions on Software Engineering, 1975
- An interactive program verification systemPublished by Association for Computing Machinery (ACM) ,1975
- Verifying programs by algebraic and logical reductionPublished by Association for Computing Machinery (ACM) ,1975
- The synthesis of loop predicatesCommunications of the ACM, 1974
- Reasoning about programsArtificial Intelligence, 1974
- Assigning meanings to programsPublished by American Mathematical Society (AMS) ,1967