Solving non-linear Horn clauses using a linear solver
Bishoksan Kafle

TL;DR
This paper introduces an incremental method for solving non-linear Horn clauses by transforming them into linear forms based on tree dimension and using a linear solver iteratively, improving efficiency in verification tasks.
Contribution
The paper presents a novel approach combining program transformation and linear solving to efficiently handle non-linear Horn clauses.
Findings
The approach successfully solves some non-linear Horn clauses with small tree dimension.
Transforming non-linear clauses into linear approximations accelerates the solving process.
Experimental results show promise for verification benchmarks.
Abstract
Developing an efficient non-linear Horn clause solver is a challenging task since the solver has to reason about the tree structures rather than the linear ones as in a linear solver. In this paper we propose an incremental approach to solving a set of non-linear Horn clauses using a linear Horn clause solver. We achieve this by interleaving a program transformation and a linear solver. The program transformation is based on the notion of tree dimension, which we apply to trees corresponding to Horn clause derivations. The dimension of a tree is a measure of its non-linearity -- for example a linear tree (whose nodes have at most one child) has dimension zero while a complete binary tree has dimension equal to its height. A given set of Horn clauses can be transformed into a new set of clauses (whose derivation trees are the subset of 's derivation trees with dimension at…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Software Testing and Debugging Techniques
