Defunctionalization of Higher-Order Constrained Horn Clauses

10/08/2018
by   Long Pham, et al.
0

Building on the successes of satisfiability modulo theories (SMT), Bjørner et al. initiated a research programme advocating Horn constraints as a suitable basis for automatic program verification. The notion of first-order constrained Horn clauses has recently been extended to higher-order logic by Cathcart Burn et al. To exploit the remarkable efficiency of SMT solving, a natural approach to solve systems of higher-order Horn constraints is to reduce them to systems of first-order Horn constraints. This paper presents a defunctionalization algorithm to achieve the reduction. Given a well-sorted higher-order constrained Horn clause (HoCHC) problem instance, the defunctionalization algorithm constructs a first-order well-sorted constrained Horn clause problem. In addition to well-sortedness of the algorithm's output, we prove that if an input HoCHC is solvable, then the result of its defunctionalization is solvable. The converse also holds, which we prove using a recent result on the continuous semantics of HoCHC. To our knowledge, this defunctionalization algorithm is the first sound and complete reduction from systems of higher-order Horn constraints to systems of first-order Horn constraints. We have constructed DefMono, a prototype implementation of the defunctionalization algorithm. It first defunctionalizes an input HoCHC problem and then feeds the result into a backend SMT solver. We have evaluated the performance of DefMono empirically by comparison with two other higher-order verification tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/17/2017

Higher-Order Constrained Horn Clauses and Refinement Types

Motivated by applications in automated verification of higher-order func...
research
06/20/2020

Dynamic Symbolic Execution of Higher-Order Functions

The effectiveness of concolic testing deteriorates as the size of progra...
research
12/05/2017

Counter Simulations via Higher Order Quantifier Elimination: a preliminary report

Quite often, verification tasks for distributed systems are accomplished...
research
03/15/2022

Automatic HFL(Z) Validity Checking for Program Verification

We propose an automated method for checking the validity of a formula of...
research
09/10/2021

Reducing Higher-order Recursion Scheme Equivalence to Coinductive Higher-order Constrained Horn Clauses

Higher-order constrained Horn clauses (HoCHC) are a semantically-invaria...
research
01/24/2023

Higher-Order Weakest Precondition Transformers via a CPS Transformation

Weakest precondition transformers are essential notions for program veri...
research
01/23/2018

Higher-Order Equational Pattern Anti-Unification [Preprint]

We consider anti-unification for simply typed lambda terms in associativ...

Please sign up or login with your details

Forgot password? Click here to reset