Towards Evaluating Size Reduction Techniques for Software Model Checking

08/24/2017
by   Gyula Sallai, et al.
0

Formal verification techniques are widely used for detecting design flaws in software systems. Formal verification can be done by transforming an already implemented source code to a formal model and attempting to prove certain properties of the model (e.g. that no erroneous state can occur during execution). Unfortunately, transformations from source code to a formal model often yield large and complex models, making the verification process inefficient and costly. In order to reduce the size of the resulting model, optimization transformations can be used. Such optimizations include common algorithms known from compiler design and different program slicing techniques. Our paper describes a framework for transforming C programs to a formal model, enhanced by various optimizations for size reduction. We evaluate and compare several optimization algorithms regarding their effect on the size of the model and the efficiency of the verification. Results show that different optimizations are more suitable for certain models, justifying the need for a framework that includes several algorithms.

READ FULL TEXT

page 13

page 14

research
08/09/2022

Interpolation and SAT-Based Model Checking Revisited: Adoption to Software Verification

Interpolation-based model checking (McMillan, 2003) is a formal-verifica...
research
03/11/2019

Towards Deriving Verification Properties

Formal software verification uses mathematical techniques to establish t...
research
04/12/2019

Boost the Impact of Continuous Formal Verification in Industry

Software model checking has experienced significant progress in the last...
research
09/06/2018

Safe Execution of Concurrent Programs by Enforcement of Scheduling Constraints

Automated software verification of concurrent programs is challenging be...
research
10/19/2017

Safe Pointers in SPARK 2014

In the context of deductive software verification, programs with pointer...
research
10/10/2016

Verification of the Tree-Based Hierarchical Read-Copy Update in the Linux Kernel

Read-Copy Update (RCU) is a scalable, high-performance Linux-kernel sync...
research
08/08/2017

On-Stack Replacement à la Carte

On-stack replacement (OSR) dynamically transfers execution between diffe...

Please sign up or login with your details

Forgot password? Click here to reset