TY - JOUR
T1 - A formal verification framework for static analysis
T2 - As well as its instantiation to the resource analyzer COSTA and formal verification tool KeY
AU - Albert, Elvira
AU - Bubel, Richard
AU - Genaim, Samir
AU - Hähnle, Reiner
AU - Puebla, Germán
AU - Román-Díez, Guillermo
N1 - Publisher Copyright:
© 2015, Springer-Verlag Berlin Heidelberg.
PY - 2016/10/1
Y1 - 2016/10/1
N2 - Static analysis tools, such as resource analyzers, give useful information on software systems, especially in real-time and safety-critical applications. Therefore, the question of the reliability of the obtained results is highly important. State-of-the-art static analyzers typically combine a range of complex techniques, make use of external tools, and evolve quickly. To formally verify such systems is not a realistic option. In this work, we propose a different approach whereby, instead of the tools, we formally verify the results of the tools. The central idea of such a formal verification framework for static analysis is the method-wise translation of the information about a program gathered during its static analysis into specification contracts that contain enough information for them to be verified automatically. We instantiate this framework with costa, a state-of-the-art static analysis system for sequential Java programs, for producing resource guarantees and KeY, a state-of-the-art verification tool, for formally verifying the correctness of such resource guarantees. Resource guarantees allow to be certain that programs will run within the indicated amount of resources, which may refer to memory consumption, number of instructions executed, etc. Our results show that the proposed tool cooperation can be used for automatically producing verified resource guarantees.
AB - Static analysis tools, such as resource analyzers, give useful information on software systems, especially in real-time and safety-critical applications. Therefore, the question of the reliability of the obtained results is highly important. State-of-the-art static analyzers typically combine a range of complex techniques, make use of external tools, and evolve quickly. To formally verify such systems is not a realistic option. In this work, we propose a different approach whereby, instead of the tools, we formally verify the results of the tools. The central idea of such a formal verification framework for static analysis is the method-wise translation of the information about a program gathered during its static analysis into specification contracts that contain enough information for them to be verified automatically. We instantiate this framework with costa, a state-of-the-art static analysis system for sequential Java programs, for producing resource guarantees and KeY, a state-of-the-art verification tool, for formally verifying the correctness of such resource guarantees. Resource guarantees allow to be certain that programs will run within the indicated amount of resources, which may refer to memory consumption, number of instructions executed, etc. Our results show that the proposed tool cooperation can be used for automatically producing verified resource guarantees.
KW - Closed-form upper bounds
KW - Cost analysis
KW - Resource analysis
KW - Resource guarantees
UR - https://www.scopus.com/pages/publications/84988446281
U2 - 10.1007/s10270-015-0476-y
DO - 10.1007/s10270-015-0476-y
M3 - Article
AN - SCOPUS:84988446281
SN - 1619-1366
VL - 15
SP - 987
EP - 1012
JO - Software and Systems Modeling
JF - Software and Systems Modeling
IS - 4
ER -