Skip to main content

Proof Strategy for Automated Sisal Program Verification

  • Conference paper
  • First Online:
Software Technology: Methods and Tools (TOOLS 2019)

Abstract

The Sisal programming environment which is being developed in IIS also includes a verification module. The previously developed C-light verification system serves as its base, since the C language representations of Sisal programs are actually processed. At the moment we concentrate our efforts on verification of Sisal loop expressions which are translated into the C for-loops. Trying to avoid the well-known problem of the loop invariants we apply a symbolic method of definite iterations. This technique expresses the loop effect in symbolic form. However, the Sisal loop expressions sometimes lead to peculiar C loops. The symbolic forms of such loops in verification conditions are too complex to be proved automatically. In this paper we represent a proof strategy for such formulas. Our strategy introduces logical formula transformations which, in general, do not maintain equivalence. However, the truth of resulting formula guarantees truth of the original one. We proved the soundness of this strategy. We also describe here a verification example.

This work was carried out with a grant from the Russian Science Foundation (project 18-11-00118).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Automated Sisal program verification using proof strategy for ACL2. https://bitbucket.org/Kondratyev/verify-sisal. Accessed 29 Apr 2019

  2. De Angelis, E., Fioravanti, F., Pettorossi, A., Proietti, M.: Verification of imperative programs by constraint logic program transformation. In: Festschrift for Dave Schmidt, SAIRP 2013. Electronic Proceedings in Theoretical Computer Science, vol. 129, pp. 186–210 (2013)

    Google Scholar 

  3. Galeotti, J.P., Furia, C.A., May, E., Fraser, G., Zeller, A.: Inferring loop invariants by mutation, dynamic analysis, and static checking. IEEE Trans. Softw. Eng. 41(10), 1019–1037 (2015)

    Article  Google Scholar 

  4. Gotlieb, A.: Euclide: a constraint-based testing framework for critical C programs. In: ICST, pp. 151–160. IEEE Computer Society (2009)

    Google Scholar 

  5. Kalyanasundaram, K., Marché, C.: Automated generation of loop invariants using predicate abstraction. Research Report 7714, p. 32. INRIA (2011)

    Google Scholar 

  6. Kasyanov, V., Kasyanova, E.: A system of functional programming for supporting of cloud supercomputing. WSEAS Trans. Inf. Sci. Appl. 15(9), 81–90 (2018)

    Google Scholar 

  7. Kasyanov, V., Kasyanova, E.: Methods and system for cloud parallel programming. In: Proceedings of the 21st International Conference on Enterprise Information Systems, vol. 1, pp. 623–629. SciTePress, INSTICC, Setubal (2019)

    Google Scholar 

  8. Kaufmann, M., Moore, J.S.: An industrial strength theorem prover for a logic based on common lisp. IEEE Trans. Softw. Eng. 23(4), 203–213 (1997)

    Article  Google Scholar 

  9. Kondratyev, D.: Implementing the symbolic method of verification in the C-light project. In: Petrenko, A.K., Voronkov, A. (eds.) PSI 2017. LNCS, vol. 10742, pp. 227–240. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74313-4_17

    Chapter  Google Scholar 

  10. Kosmatov, N., Marché, C., Moy, Y., Signoles, J.: Static versus dynamic verification in Why3, Frama-C and SPARK 2014. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 461–478. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47166-2_32

    Chapter  Google Scholar 

  11. Maryasov, I.V., Nepomniaschy, V.A., Kondratyev, D.A.: Invariant elimination of definite iterations over arrays in C programs verification. Model. Anal. Inf. Syst. 24(6), 743–754 (2017)

    Article  MathSciNet  Google Scholar 

  12. Nepomniaschy, V.A.: Symbolic method of verification of definite iterations over altered data structures. Program. Comput. Softw. 31(1), 1–9 (2005)

    Article  MathSciNet  Google Scholar 

  13. Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., Promsky, A.V.: Towards verification of C programs. C-light language and its formal semantics. Program. Comput. Softw. 28(6), 314–323 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dmitry Kondratyev .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kondratyev, D., Promsky, A. (2019). Proof Strategy for Automated Sisal Program Verification. In: Mazzara, M., Bruel, JM., Meyer, B., Petrenko, A. (eds) Software Technology: Methods and Tools. TOOLS 2019. Lecture Notes in Computer Science(), vol 11771. Springer, Cham. https://doi.org/10.1007/978-3-030-29852-4_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-29852-4_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-29851-7

  • Online ISBN: 978-3-030-29852-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics