7.7
7 Symbolic Reflection
This chapter describes symbolic reflection , a convenient mechanism for manipulating the representation of symbolic values (Section 7.1) and the state of the symbolic evaluation from within a Rosette program (Section 7.2). Symbolic reflection has three main applications: (1) lifting additional Racket constructs to work with symbolic values; (2) guiding Rosette’s symbolic virtual machine to achieve better performance; and (3) implementing advanced solver-aided functionality.