In this paper, we provide a formal definition of symbolic execution in terms of a symbolic transition system and prove its correctness with respect to an operational semantics which models the execution on concrete values. We first introduce such a formal model for a basic programming language with a statically fixed number of programming variables. This model is extended to a programming language with recursive procedures which are called by a call-by-value parameter mechanism. Finally, we show how to extend this latter model of symbolic execution to arrays and object-oriented languages which feature dynamically allocated variables.
Lecture Notes in Computer Science
International Symposium on Formal Methods
Centrum Wiskunde & Informatica, Amsterdam (CWI), The Netherlands

de Boer, F.S, & Bonsangue, M.M. (2019). On the nature of symbolic execution. In Proceedings of the International Symposium on Formal Methods (pp. 64–80). doi:10.1007/978-3-030-30942-8_6