Constraint Solving with Deep Learning for Symbolic Execution

03/18/2020
by   Junye Wen, et al.
0

Symbolic execution is a powerful systematic software analysis technique, but suffers from the high cost of constraint solving, which is the key supporting technology that affects the effectiveness of symbolic execution. Techniques like Green and GreenTrie reuse constraint solutions to speed up constraint solving for symbolic execution; however, these reuse techniques require syntactic/semantic equivalence or implication relationship between constraints. This paper introduces DeepSover, a novel approach to constraint solving with deep learning for symbolic execution. Our key insight is to utilize the collective knowledge of a set of constraint solutions to train a deep neural network, which is then used to classify path conditions for their satisfiability during symbolic execution. Experimental evaluation shows DeepSolver is highly accurate in classifying path conditions, is more efficient than state-of-the-art constraint solving and constraint solution reuse techniques, and can well support symbolic execution tasks.

READ FULL TEXT
research
07/02/2018

Neuro-Symbolic Execution: The Feasibility of an Inductive Approach to Symbolic Execution

Symbolic execution is a powerful technique for program analysis. However...
research
08/23/2023

State Merging with Quantifiers in Symbolic Execution

We address the problem of constraint encoding explosion which hinders th...
research
02/28/2023

Semantic Strengthening of Neuro-Symbolic Learning

Numerous neuro-symbolic approaches have recently been proposed typically...
research
01/22/2020

Benchmarking Symbolic Execution Using Constraint Problems – Initial Results

Symbolic execution is a powerful technique for bug finding and program t...
research
12/08/2016

Coupling Distributed and Symbolic Execution for Natural Language Queries

Building neural networks to query a knowledge base (a table) with natura...
research
09/06/2022

Scalable Regularization of Scene Graph Generation Models using Symbolic Theories

Several techniques have recently aimed to improve the performance of dee...
research
06/03/2021

Distributed Symbolic Execution using Test-Depth Partitioning

Symbolic execution is a classic technique for systematic bug finding, wh...

Please sign up or login with your details

Forgot password? Click here to reset