Neural Solving Uninterpreted Predicates with Abstract Gradient Descent

Shiwen Yu,Zengyu Liu,Ting Wang,Ji Wang
DOI: https://doi.org/10.1145/3675394
IF: 3.685
2024-07-02
ACM Transactions on Software Engineering and Methodology
Abstract:Uninterpreted predicate solving is a fundamental problem in formal verification, including loop invariant and Constrained Horn Clauses predicate solving. Existing approaches have been mostly in symbolic ways. While achieving sustainable progress, they still suffer from inefficiency and seem unable to leverage the ever-increasing computility such as GPU. Recently, Neural Relaxation has been proposed to tackle this problem. They treat the uninterpreted predicate-solving task as an optimization problem by relaxing the discrete search process into a learning process of neural networks. However, two bottlenecks keep them from being valid. First, relaxed neural networks cannot match the original semantics rigorously; second, the neural networks are difficult to train to reach global optimization. Therefore, this paper presents a novel discrete neural architecture with the Abstract Gradient Decent (AGD) algorithm to directly solve uninterpreted predicates in the discrete hypothesis space. The abstract gradient is for discrete neurons whose calculation rules are designed in an abstract domain. Our approach conforms to the original semantics, and the proposed AGD algorithm can achieve global optimization satisfactorily. We implement Dasp in the Boxes Abstract Domain to solve uninterpreted predicates in the QF-NIA SMT theory. In the experiments, Dasp has outperformed 7 state-of-the-art tools across three predicate synthesis tasks.
computer science, software engineering
What problem does this paper attempt to address?