Higher-Order Constrained Horn Clauses and Refinement Types

17 May 2017  ·  Toby Cathcart Burn, C. -H. Luke Ong, Steven J. Ramsay ·

Motivated by applications in automated verification of higher-order functional programs, we develop a notion of constrained Horn clauses in higher-order logic and a decision problem concerning their satisfiability. We show that, although satisfiable systems of higher-order clauses do not generally have least models, there is a notion of canonical model obtained through a reduction to a problem concerning a kind of monotone logic program. Following work in higher-order program verification, we develop a refinement type system in order to reason about and automate the search for models. This provides a sound but incomplete method for solving the decision problem. Finally, we show that an extension of the decision problem in which refinement types are used directly as guards on existential quantifiers can be reduced to the original problem. This result can be used to show that properties of higher-order functions that are definable using refinement types are also expressible using higher-order constrained Horn clauses.

PDF Abstract

Categories


Programming Languages Logic in Computer Science D.2.4; F.3.1; F.4.1

Datasets


  Add Datasets introduced or used in this paper