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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Automated Sisal program verification using proof strategy for ACL2. https://bitbucket.org/Kondratyev/verify-sisal. Accessed 29 Apr 2019
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)
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)
Gotlieb, A.: Euclide: a constraint-based testing framework for critical C programs. In: ICST, pp. 151–160. IEEE Computer Society (2009)
Kalyanasundaram, K., Marché, C.: Automated generation of loop invariants using predicate abstraction. Research Report 7714, p. 32. INRIA (2011)
Kasyanov, V., Kasyanova, E.: A system of functional programming for supporting of cloud supercomputing. WSEAS Trans. Inf. Sci. Appl. 15(9), 81–90 (2018)
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)
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)
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
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
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)
Nepomniaschy, V.A.: Symbolic method of verification of definite iterations over altered data structures. Program. Comput. Softw. 31(1), 1–9 (2005)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)