Advertisement

A Language-Independent Program Verification Framework

  • Xiaohong ChenEmail author
  • Grigore Roşu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11245)

Abstract

This invited paper describes an approach to language-independent deductive verification using the \(\mathbb {K}\) semantics framework, in which an operational semantics of a language is defined and a program verifier together with other language tools are generated automatically, correct-by-construction.

References

  1. 1.
    Ahrendt, W., Beckert, B., Bubel, R., Hahnle, R., Schmitt, P.H., Ulbrich, M.: Deductive Software Verification-The KeY Book. Springer, Heidelberg (2016).  https://doi.org/10.1007/978-3-319-49812-6Google Scholar
  2. 2.
    Barnett, M., Chang, B.-Y.E., DeLine, R., Jacobs, B., Leino, K.R.M.: Boogie: a modular reusable verifier for object-oriented programs. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 364–387. Springer, Heidelberg (2006).  https://doi.org/10.1007/11804192_17CrossRefGoogle Scholar
  3. 3.
    Bornat, R.: Proving pointer programs in Hoare logic. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 102–126. Springer, Heidelberg (2000).  https://doi.org/10.1007/10722010_8CrossRefGoogle Scholar
  4. 4.
    Şerbănuţă, T.F., Chen, F., Roşu, G.: Maximal causal models for sequentially consistent systems. In: Qadeer, S., Tasiran, S. (eds.) RV 2012. LNCS, vol. 7687, pp. 136–150. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35632-2_16CrossRefGoogle Scholar
  5. 5.
    Ştefănescu, A., Ciobâcă, Ş., Mereuţă, R., Moore, B.M., Şerbănută, T.F., Roşu, G.: All-path reachability logic. In: Dowek, G. (ed.) RTA 2014. LNCS, vol. 8560, pp. 425–440. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-08918-8_29CrossRefGoogle Scholar
  6. 6.
    Ştefănescu, A., Park, D., Yuwen, S., Li, Y., Roşu, G.: Semantics based program verifers for all languages. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2016), pp. 74–91. ACM, November 2016Google Scholar
  7. 7.
    Daian, P., et al.: Runtime verification at work: a tutorial. In: Falcone, Y., Sánchez, C. (eds.) RV 2016. LNCS, vol. 10012, pp. 46–67. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-46982-9_5CrossRefGoogle Scholar
  8. 8.
    de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-78800-3_24CrossRefGoogle Scholar
  9. 9.
    Filliâtre, J.-C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 173–177. Springer, Heidelberg (2007).  https://doi.org/10.1007/978-3-540-73368-3_21CrossRefGoogle Scholar
  10. 10.
    Guth, D., Hathhorn, C., Saxena, M., Roşu, G.: RV-Match: practical semantics-based program analysis. In: Chaudhuri, S., Farzan, A. (eds.) CAV 2016. LNCS, vol. 9779, pp. 447–453. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-41528-4_24CrossRefGoogle Scholar
  11. 11.
    Hildenbrandt, E., et al.: KEVM: a complete semantics of the Ethereum virtual machine. In: Proceedings of the 2018 IEEE Computer Security Foundations Symposium (CSF 2018). IEEE (2018). http://jellopaper.org
  12. 12.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefGoogle Scholar
  13. 13.
    KEVM Team: KEVM: Semantics of EVM in K (2017). https://github.com/kframework/evm-semantics
  14. 14.
    Lamport, L.: The ‘Hoare logic’ of concurrent programs. Acta Inform. 14(1), 21–37 (1980)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Luo, Q., et al.: RV-Monitor: efficient parametric runtime verification with simultaneous properties. In: Bonakdarpour, B., Smolka, S.A. (eds.) RV 2014. LNCS, vol. 8734, pp. 285–300. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-11164-3_24CrossRefGoogle Scholar
  16. 16.
    The Coq development team. The Coq proof assistant reference manual. LogiCal Project (2004)Google Scholar
  17. 17.
    Régis-Gianas, Y., Pottier, F.: A Hoare logic for call-by-value functional programs. In: Audebaud, P., Paulin-Mohring, C. (eds.) MPC 2008. LNCS, vol. 5133, pp. 305–335. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-70594-9_17CrossRefGoogle Scholar
  18. 18.
    Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 55–74. IEEE (2002)Google Scholar
  19. 19.
    Roşu, G.: Matching logic. Log. Meth. Comput. Sci. 13(4), 1–61 (2017)Google Scholar
  20. 20.
    The Isabelle development team: Isabelle (2018). https://isabelle.in.tum.de/
  21. 21.
    von Oheimb, D.: Hoare logic for Java in Isabelle/HOL. In: Concurrency and Computation: Practice and Experience, pp. 1173–1214 (2001)Google Scholar
  22. 22.
    Zhao, L., Wang, S., Liu, Z.: Graph-based object-oriented Hoare logic. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) Theories of Programming and Formal Methods. LNCS, vol. 8051, pp. 374–393. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-39698-4_23CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.University of Illinois at Urbana-ChampaignChampaignUSA
  2. 2.Runtime Verification Inc.ChampaignUSA

Personalised recommendations