Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Correct and Complete Symbolic Execution for Free

  • Conference paper
  • First Online:
Integrated Formal Methods (IFM 2024)

Abstract

Symbolic execution is a powerful technique for program analysis. However, the formal semantics underlying symbolic execution is often developed on an ad-hoc basis and decoupled from the concrete semantics of the programming language. To overcome this issue, we introduce symbolic SOS: a rule format that allows us to simultaneously specify concrete and symbolic operational semantics. We prove that symbolic semantics, when generated from symbolic SOS, is both correct and complete with respect to the corresponding concrete semantics. The approach relies only on an algebraic signature of the source language, and is thus language-independent.

This research is partially supported by the NWO grant No. OCENW.M20.053, ERC grant Autoprobe (no. 101002697) and a Royal Society Wolfson fellowship.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 119.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.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

Similar content being viewed by others

Notes

  1. 1.

    We assume that this always results in a Boolean expression; abstracting from program-level type correctness.

  2. 2.

    Not to be confused with substitutions of values or expressions.

References

  1. Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P.H., Ulbrich, M. (eds.): Deductive Software Verification - The KeY Book - From Theory to Practice. LNCS, vol. 10001. Springer (2016). https://doi.org/10.1007/978-3-319-49812-6

  2. Arusoaie, A., Lucanu, D., Rusu, V.: A generic framework for symbolic execution. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds.) SLE 2013. LNCS, vol. 8225, pp. 281–301. Springer, Cham (2013). https://doi.org/10.1007/978-3-319-02654-1_16

    Chapter  MATH  Google Scholar 

  3. Baldoni, R., Coppa, E., D’elia, D.C., Demetrescu, C., Finocchi, I.: A survey of symbolic execution techniques. ACM Comput. Surv. (CSUR) 51(3), 1–39 (2018)

    Article  MATH  Google Scholar 

  4. Berdine, J., Calcagno, C., O’Hearn, P.W.: Symbolic execution with separation logic. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 52–68. Springer, Heidelberg (2005). https://doi.org/10.1007/11575467_5

    Chapter  MATH  Google Scholar 

  5. Bloom, B., Istrail, S., Meyer, A.R.: Bisimulation can’t be traced. J. ACM 42(1), 232–268 (1995). https://doi.org/10.1145/200836.200876

    Article  MathSciNet  MATH  Google Scholar 

  6. Bodin, M., Gardner, P., Jensen, T., Schmitt, A.: Skeletal semantics and their interpretations. Proc. ACM Program. Lang. 3(POPL) (2019). https://doi.org/10.1145/3290357

  7. Bodin, M., Jensen, T., Schmitt, A.: Certified abstract interpretation with pretty-big-step semantics. In: Proceedings of the 2015 Conference on Certified Programs and Proofs, CPP 2015, pp. 29–40. Association for Computing Machinery (2015). https://doi.org/10.1145/2676724.2693174

  8. de Boer, F.S., Bonsangue, M.: On the nature of symbolic execution. In: ter Beek, M.H., McIver, A., Oliveira, J.N. (eds.) Formal Methods - The Next 30 Years, pp. 64–80. Springer, Cham (2019)

    Chapter  MATH  Google Scholar 

  9. de Boer, F.S., Bonsangue, M.: Symbolic execution formally explained. Formal Aspects Comput.33(4), 617–636 (2021)

    Google Scholar 

  10. Boyer, R.S., Elspas, B., Levitt, K.N.: SELECT - a formal system for testing and debugging programs by symbolic execution. In: Shooman, M.L., Yeh, R.T. (eds.) Proc. International Conference on Reliable Software 1975, pp. 234–245. ACM (1975). https://doi.org/10.1145/800027.808445

  11. Fragoso Santos, J., Maksimović, P., Ayoun, S.É., Gardner, P.: Gillian, part i: a multi-language platform for symbolic execution. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 927–942 (2020)

    Google Scholar 

  12. van Glabbeek, R.J.: The meaning of negative premises in transition system specifications II. J. Log. Algebraic Methods Program. 60-61, 229–258 (2004). https://doi.org/10.1016/J.JLAP.2004.03.007

  13. Goncharov, S., Milius, S., Schröder, L., Tsampas, S., Urbat, H.: Stateful Structural Operational Semantics. In: Felty, A.P. (ed.) 7th International Conference on Formal Structures for Computation and Deduction (FSCD 2022). Leibniz International Proceedings in Informatics (LIPIcs), vol. 228, pp. 30:1–30:19. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany (2022). https://doi.org/10.4230/LIPIcs.FSCD.2022.30

  14. Groote, J.F.: Transition system specifications with negative premises. Theor. Comput. Sci. 118(2), 263–299 (1993). https://doi.org/10.1016/0304-3975(93)90111-6

  15. Katz, S., Manna, Z.: Towards automatic debugging of programs. ACM SIGPLAN Notices 10(6), 143–155 (1975)

    Article  MATH  Google Scholar 

  16. King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  17. Klin, B., Nachyla, B.: Some undecidable properties of SOS specifications. J. Log. Algebraic Methods Program. 87, 94–109 (2017). https://doi.org/10.1016/J.JLAMP.2016.08.005

  18. Lucanu, D., Rusu, V., Arusoaie, A.: A generic framework for symbolic execution: a coinductive approach. J. Symb. Comput. 80, 125–163 (2017)

    Article  MathSciNet  MATH  Google Scholar 

  19. Maksimović, P., Ayoun, S.É., Santos, J.F., Gardner, P.: Gillian, Part II: real-world verification for JavaScript and C. In: Silva, A., Leino, K.R.M. (eds.) CAV 2021. LNCS, vol. 12760, pp. 827–850. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-81688-9_38

    Chapter  Google Scholar 

  20. Plotkin, G.D.: A structural approach to operational semantics. J. Log. Algebraic Methods Program. 60-61, 17–139 (2004). originally a tech. report from Aarhus University, 1981

    Google Scholar 

  21. Porncharoenwase, S., Nelson, L., Wang, X., Torlak, E.: A formal foundation for symbolic evaluation with merging. Proc. ACM Program. Lang. 6(POPL), January 2022. https://doi.org/10.1145/3498709

  22. Rosu, G.: K - a semantic framework for programming languages and formal analysis tools. In: Peled, D., Pretschner, A. (eds.) Dependable Software Systems Engineering. IOS Press, NATO Science for Peace and Security (2017)

    MATH  Google Scholar 

  23. Ştefănescu, A., Ciobâcă, Ş, Mereuta, 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_29

    Chapter  MATH  Google Scholar 

  24. Steinhöfel, D.: Abstract execution: automatically proving infinitely many programs. Ph.D. thesis, Technische Universität Darmstadt (2020)

    Google Scholar 

  25. Turi, D., Plotkin, G.: Towards a mathematical operational semantics. In: Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science, pp. 280–291 (1997). https://doi.org/10.1109/LICS.1997.614955

  26. Voogd, E., Johnsen, E.B., Silva, A., Susag, Z.J., Wasowski, A.: Symbolic semantics for probabilistic programs. In: Proc. 20th Intl. Conf. on Quantitative Evaluation of SysTems (QEST 2023). Lecture Notes in Computer Science, vol. 14287, pp. 329–345. Springer (2023). https://doi.org/10.1007/978-3-031-43835-6_23

Download references

Acknowledgements

The authors would like to thank the anonymous reviewers for their insightful questions and feedback.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Erik Voogd .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2025 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Voogd, E., Johnsen, E.B., Kløvstad, Å.A.A., Rot, J., Silva, A. (2025). Correct and Complete Symbolic Execution for Free. In: Kosmatov, N., Kovács, L. (eds) Integrated Formal Methods. IFM 2024. Lecture Notes in Computer Science, vol 15234. Springer, Cham. https://doi.org/10.1007/978-3-031-76554-4_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-76554-4_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-76553-7

  • Online ISBN: 978-3-031-76554-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics