Bottoms Up for CHCs: Novel Transformation of Linear Constrained Horn Clauses to Software Verification
Márk Somorjai, Mihály Dobos-Kovács, Zsófia Ádám, Levente Bajczi, András Vörös
TL;DR
This work reframes Constrained Horn Clauses ($CHCs$) as a frontier for software verification by introducing a forward, bottom-up transformation of linear $CHCs$ into a Control Flow Automaton ($CFA$). By converting CHC satisfiability into reachability problems in the $CFA$, the authors leverage standard model checking workflows, specifically within the THETA framework, and compare against the existing top-down approach. Empirical results on 585 linear $CHCs$ from the CHC-COMP21 $LIA$-Lin track show that the forward transformation substantially increases solvable tasks (over a twofold improvement) and that a boolean predicate-based abstraction with sub-state splitting yields the best performance. The study demonstrates that CHC solving can benefit from traditional software verification techniques, suggesting broader adoption of forward transformations in verification toolchains and competitive performance relative to leading solvers like Z3, Eldarica, and Unihorn.
Abstract
Constrained Horn Clauses (CHCs) have conventionally been used as a low-level representation in formal verification. Most existing solvers use a diverse set of specialized techniques, including direct state space traversal or under-approximating abstraction, necessitating purpose-built complex algorithms. Other solvers successfully simplified the verification workflow by translating the problem to inputs for other verification tasks, leveraging the strengths of existing algorithms. One such approach transforms the CHC problem into a recursive program roughly emulating a top-down solver for the deduction task; and verifying the reachability of a safety violation specified as a control location. We propose an alternative bottom-up approach for linear CHCs, and evaluate the two options in the open-source model checking framework THETA on both synthetic and industrial examples. We find that there is a more than twofold increase in the number of solved tasks when the novel bottom-up approach is used in the verification workflow, in contrast with the top-down technique.
