skip to main content
article

Statically relating program properties for efficient verification (short WIP paper)

Published:19 June 2018Publication History
Skip Abstract Section

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.

References

  1. 2014. TCS Embedded Code Analyzer (TCS ECA). https://www.tcs.com/tcs-embedded-code-analyzer.Google ScholarGoogle Scholar
  2. 2018. SV-COMP 2018 - 7th Competition on Software Verification. http://sv-comp.sosy-lab.org/2018/.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. D. Ullman, A. V. Aho, and R. Sethi. 1986. Compilers-Principles, Techniques and Tools. (1986). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Statically relating program properties for efficient verification (short WIP paper)

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 53, Issue 6
      LCTES '18
      June 2018
      112 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/3299710
      Issue’s Table of Contents
      • cover image ACM Conferences
        LCTES 2018: Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems
        June 2018
        112 pages
        ISBN:9781450358033
        DOI:10.1145/3211332

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 19 June 2018

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!