English

Solving non-linear Horn clauses using a linear Horn clause solver

Programming Languages 2016-07-18 v1 Logic in Computer Science

Abstract

In this paper we show that checking satisfiability of a set of non-linear Horn clauses (also called a non-linear Horn clause program) can be achieved using a solver for linear Horn clauses. We achieve this by interleaving a program transformation with a satisfiability checker for linear Horn clauses (also called a solver for linear Horn clauses). The program transformation is based on the notion of tree dimension, which we apply to a set of non-linear clauses, yielding a set whose derivation trees have bounded dimension. Such a set of clauses can be linearised. The main algorithm then proceeds by applying the linearisation transformation and solver for linear Horn clauses to a sequence of sets of clauses with successively increasing dimension bound. The approach is then further developed by using a solution of clauses of lower dimension to (partially) linearise clauses of higher dimension. We constructed a prototype implementation of this approach and performed some experiments on a set of verification problems, which shows some promise.

Cite

@article{arxiv.1607.04459,
  title  = {Solving non-linear Horn clauses using a linear Horn clause solver},
  author = {Bishoksan Kafle and John P. Gallagher and Pierre Ganty},
  journal= {arXiv preprint arXiv:1607.04459},
  year   = {2016}
}

Comments

In Proceedings HCVS2016, arXiv:1607.04033

R2 v1 2026-06-22T14:55:39.915Z