View Item 
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        •   Utrecht University Student Theses Repository Home
        • UU Theses Repository
        • Theses
        • View Item
        JavaScript is disabled for your browser. Some features of this site may not work without it.

        Browse

        All of UU Student Theses RepositoryBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

        Symbolic Execution + Merging

        Thumbnail
        View/Open
        Thesis State_Merging 1.111.pdf (489.6Kb)
        Publication date
        2025
        Author
        Al-Awwadi, Hassan
        Metadata
        Show full item record
        Summary
        The Path explosion problem is a bane that haunts all symbolic execution engines. Too many programming constructs contribute to it, from the humble if statement to the noble fork statement. There are multiple methods to try and reduce it, heuristics for choosing paths, diagonalizing the search space of paths, pruning paths early, and the one we will be focusing on: State Merging. In state merging the paths get fused back together at ‘join points’, but the merging of the states causes the final state to be bigger, to contain a disjunction within its premise, and as a result its not always a win. Often, its a loss, where the combined state is harder to solve for a SMT-solver than the separate states would’ve been. So again we are forced to use heuristics to decide whether we merge or not, or prune paths. Introducing State Merging without anything is not enough. We extend state merging with abstraction, in the hope that this provides fruitful, but find that it does not. State merging in general performs quite a bit better than initially expected, however, even without the abstraction.
        URI
        https://studenttheses.uu.nl/handle/20.500.12932/49740
        Collections
        • Theses
        Utrecht university logo