Abstract
Efficient automatic verification of real world embedded software with numerous properties is a challenge. Existing techniques verify a sufficient subset of properties by identifying implication relations between their verification outcomes. We believe this is expensive and propose a novel complementary approach called grouping. Grouping does not consider the verification outcomes but uses data and control flow characteristics of the program to create disjoint groups of properties verifiable one group at a time.We present three grouping techniques, a framework, and experiments over open source and industrial applications to support our thesis. The experiments show a high gain in performance of a few state-of-the-art tools. This led to the integration of grouping into the verification process of an automotive software manufacturer.
- 2014. TCS Embedded Code Analyzer (TCS ECA). https://www.tcs.com/tcs-embedded-code-analyzer.Google Scholar
- 2018. SV-COMP 2018 - 7th Competition on Software Verification. http://sv-comp.sosy-lab.org/2018/.Google Scholar
- Dirk Beyer and M. Erkan Keremoglu. 2011. CPAchecker: A Tool for Configurable Software Verification. In CAV (Lecture Notes in Computer Science), Vol. 6806. Springer, 184-190. Google Scholar
Digital Library
- Dirk Beyer and Stefan Löwe. 2015. Interpolation for Value Analysis. In Software Engineering & Management 2015, Multikonferenz der GIFachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW, 17. März - 20. März 2015, Dresden, Germany. 73-74.Google Scholar
- Gianfranco Bilardi and Keshav Pingali. 1996. A Framework for Generalized Control Dependence. In Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation (PLDI'96). ACM, New York, NY, USA, 291-300. Google Scholar
Digital Library
- Omar Chebaro, Nikolai Kosmatov, Alain Giorgetti, and Jacques Julliand. 2012. Program slicing enhances a verification technique combining static and dynamic analysis. In SAC 2012,. 1284-1291. Google Scholar
Digital Library
- Bharti Chimdyalwar, Priyanka Darke, Avriti Chauhan, Punit Shah, Shrawan Kumar, and R. Venkatesh. 2017. VeriAbs: Verification by Abstraction Competition Contribution. In Proceedings, Part II, of the 23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 10206. Springer-Verlag, Berlin, Heidelberg, 404-408. Google Scholar
Digital Library
- Edmund Clarke, Daniel Kroening, and Flavio Lerda. 2004. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems. Springer, 168-176.Google Scholar
- Edmund Clarke, Daniel Kroening, Natasha Sharygina, and Karen Yorav. 2005. SATABS: SAT-based Predicate Abstraction for ANSI-C. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2005) (Lecture Notes in Computer Science), Vol. 3440. Springer Verlag, 570-574. Google Scholar
Digital Library
- Priyanka Darke, Bharti Chimdyalwar, Avriti Chauhan, and R. Venkatesh. 2017. Efficient Safety Proofs for Industry-Scale Code Using Abstractions and Bounded Model Checking. 2017 IEEE International Conference on Software Testing, Verification and Validation (ICST) (2017), 468-475.Google Scholar
- Grigory Fedyukovich, Andrea Callia D'Iddio, Antti E. J. Hyvärinen, and Natasha Sharygina. 2015. Symbolic Detection of Assertion Dependencies for Bounded Model Checking. In FASE (Lecture Notes in Computer Science), Vol. 9033. Springer, 186-201.Google Scholar
Cross Ref
- Matthias Heizmann, Daniel Dietsch, Marius Greitschus, Jan Leike, Betim Musa, Claus Schätzle, and Andreas Podelski. 2016. Ultimate Automizer with Two-track Proofs - (Competition Contribution). In Tools and Algorithms for the Construction and Analysis of Systems - 22nd International Conference, TACAS 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016, Proceedings. 950-953. Google Scholar
Digital Library
- S. Horwitz, T. Reps, and D. Binkley. 1988. Interprocedural Slicing Using Dependence Graphs. In Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation (PLDI'88). ACM, New York, NY, USA, 35-46. Google Scholar
Digital Library
- Husni Khanfar, Björn Lisper, and Abu Naser Masud. 2015. Static Backward Program Slicing for Safety Critical Systems. In The 20th International Conference on Reliable Software Technologies. 9111-50- 9111-65. http://www.es.mdh.se/publications/3966-Google Scholar
- Thomas Lengauer and Robert Endre Tarjan. 1979. A Fast Algorithm for Finding Dominators in a Flowgraph. ACM Trans. Program. Lang. Syst.1, 1 (Jan. 1979), 121-141. Google Scholar
Digital Library
- Kenneth. L. Mcmillan. 2006. Lazy abstraction with interpolants. In Proceedings of the 18th International Conference on Computer Aided Verification (CAV'06). Springer-Verlag, Berlin, Heidelberg, 123-136. Google Scholar
Digital Library
- Tukaram Muske, Advaita Datar, Mayur Khanzode, and Kumar Madhukar. 2013. Efficient elimination of false positives using Bounded Model Checking. In VALID 2013 : The Fifth International Conference on Advances in System Testing and Validation Lifecycle.Google Scholar
- Tukaram B. Muske, Ankit Baid, and Tushar Sanas. 2013. Review efforts reduction by partitioning of static analysis warnings. In Proceedings of the 13th International Working Conference on Source Code Analysis and Manipulation. IEEE, 106-115.Google Scholar
Cross Ref
- Ondrej Sery, Grigory Fedyukovich, and Natasha Sharygina. 2012. Fun-Frog: Bounded Model Checking with Interpolation-Based Function Summarization. In ATVA (Lecture Notes in Computer Science), Vol. 7561. Springer, 203-207. Google Scholar
Digital Library
- J. D. Ullman, A. V. Aho, and R. Sethi. 1986. Compilers-Principles, Techniques and Tools. (1986). Google Scholar
Digital Library
Index Terms
Statically relating program properties for efficient verification (short WIP paper)
Recommendations
Statically relating program properties for efficient verification (short WIP paper)
LCTES 2018: Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsEfficient automatic verification of real world embedded software with numerous properties is a challenge. Existing techniques verify a sufficient subset of properties by identifying implication relations between their verification outcomes. We believe ...
Full regular temporal property verification as dynamic program execution
ICSE-C '17: Proceedings of the 39th International Conference on Software Engineering CompanionVerification of programs in code-level has attracted more and more attentions and considerable progress has been made in this area. The early research is limited to the verification of safety properties [1], [2], [3]. To do so, assertions are required ...
Temporal property verification as a program analysis task
We describe a reduction from temporal property verification to a program analysis problem. First we present a proof system that, unlike the standard formulation, is more amenable to reasoning about infinite-state systems: disjunction is treated by ...







Comments