Apr 6, 2014 Comments Off on Reiner Hähnle: Fully Abstract Method Contracts
Reiner Hähnle: Fully Abstract Method Contracts
A major obstacle facing adoption of formal software verification is the difficulty to track changes in the target code and to accomodate them in specifications and in verification arguments. We introduce fully abstract method contracts, a new verification rule for method calls that can be used in most contract-based verification settings. The rule makes it possible to reason about programs without having to know the implementation of called methods. By combining abstract method contracts and caching of verification conditions, it is possible to detect reusability of contracts automatically via first-order reasoning. This is the basis for a verification framework able to deal with code undergoing frequent changes. Fully abstract contracts have been implemented in the Java verification tool KeY. We report on experiments that show their saving potential.