skip to main content
10.1145/2851613.2851721acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

On verifying C++ programs with probabilities

Published:04 April 2016Publication History

ABSTRACT

In this paper, we report on successful chaining of two unique model checkers, namely DIVINE and PRISM, which, as a whole, allows for practical verification of multi-threaded C++ programs that may choose input and other actions according to a given discrete probabilistic distribution. In the paper, we discuss technical details of the extensions of the DIVINE model checker that were required to enable the chaining, in particular, we report on combination of dynamic τ+reduction used within the DIVINE state space exploration engine with the probabilistic choice operator. We also give preliminary experimental evaluation of our approach, discuss some possible applications for the tool chain, and finally, we plot some of the future steps to be done.

References

  1. J. Barnat, L. Brim, V. Havel, J. Havlíček, J. Kriho, M. Lenčo, P. Ročkai, V. Štill, and J. Weiser. DiVinE 3.0 -- An Explicit-State Model Checker for Multithreaded C & C++ Programs. In Computer Aided Verification (CAV 2013), volume 8044 of LNCS, pages 863--868. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  2. C. Cadar and K. Sen. Symbolic execution for software testing: three decades later. Commun. ACM, 56(2):82--90, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Courcoubetis and M. Yannakakis. The complexity of probabilistic verification. Journal of the ACM, 42(4):857--907, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. L. de Alfaro. Formal Verification of Stochastic Systems. PhD thesis, Stanford University, Department of Computer Science, 1997.Google ScholarGoogle Scholar
  5. C. Derman. Finite State Markovian Decision Processes. Academic Press, Inc., Orlando, FL, USA, 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Á. Díaz, C. Baier, C. Earle, and L. Fredlund. Static Partial Order Reduction for Probabilistic Concurrent Systems. In Quantitative Evaluation of Systems (QEST), pages 104--113. IEEE Computer Society, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J.-C. Filliâtre. Deductive software verification. International Journal on Software Tools for Technology Transfer, 13(5):397--403, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. O. Grumberg and H. Veith, editors. 25 Years of Model Checking: History, Achievements, Perspectives. Springer-Verlag, Berlin, Heidelberg, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Gui, J. Sun, S. Song, Y. Liu, and J. S. Dong. SCC-Based Improved Reachability Analysis for Markov Decision Processes. In International Conference on Formal Engineering Methods (ICFEM), volume 8829 of LNCS, pages 171--186. Springer, 2014.Google ScholarGoogle Scholar
  10. M. Kattenbelt, M. Z. Kwiatkowska, G. Norman, and D. Parker. Abstraction Refinement for Probabilistic Software. In Verification, Model Checking, and Abstract Interpretation (VMCAI), volume 5403 of LNCS, pages 182--197. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Kwiatkowska, G. Norman, and D. Parker. PRISM 4.0: Verification of probabilistic real-time systems. In Proc. 23rd International Conference on Computer Aided Verification (CAV'11), volume 6806 of LNCS, pages 585--591. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. L. Puterman. Markov Decision Processes-Discrete Stochastic Dynamic Programming. John Wiley & Sons, New York, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Ročkai, J. Barnat, and L. Brim. Improved State Space Reductions for LTL Model Checking of C & C++ Programs. In NASA Formal Methods (NFM 2013), volume 7871 of LNCS, pages 1--15. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  14. M. Vardi. Probabilistic linear-time model checking: an overview of the automata-theoretic approach. In Proc. Formal Methods for Real-Time and Probabilistic Systems, ARTS 1999, volume 1601 of LNCS, pages 265--276. Springer, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. On verifying C++ programs with probabilities

    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
    • Published in

      cover image ACM Conferences
      SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
      April 2016
      2360 pages
      ISBN:9781450337397
      DOI:10.1145/2851613

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 4 April 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      SAC '16 Paper Acceptance Rate252of1,047submissions,24%Overall Acceptance Rate1,650of6,669submissions,25%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader