Abstract
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 there is a sense in which we can use refinement types to express properties of terms whilst staying within the higher-order constrained Horn clause framework.
Highlights
1 INTRODUCTION There is evidence to suggest that many first-order program verification problems can be framed as solvability problems for systems of constrained Horn clauses, see Beyene, Popeea, and Rybalchenko [2013], Bjùrner, McMillan, and Rybalchenko [2013b] and Bjùrner, Gurfinkel, McMillan, and Rybalchenko [2015]
We propose to investigate higher-order program verification based around the higher-order constrained Horn clause problem
We have presented our notion of higher-order constrained Horn clauses and the first foundational results, with an emphasis on making connections to existing work in the verification of higher-order programs
Summary
There is evidence to suggest that many first-order program verification problems can be framed as solvability problems for systems of constrained Horn clauses, see Beyene, Popeea, and Rybalchenko [2013], Bjùrner, McMillan, and Rybalchenko [2013b] and Bjùrner, Gurfinkel, McMillan, and Rybalchenko [2015]. The idea is to express the problem of finding such a program invariant logically, as a satisfiability problem for the following set of higher-order constrained Horn clauses:. One model of the above set of clauses is the following assignment of relations (expressed in higher-order logic): Add → λx y z. Is derivable, from which we may conclude that n ≤ m is a sound abstraction of Iter Add 0 n m in any interpretation of Iter and Add that satisfies ΓI This is a powerful assertion for automated reasoning because the formula φ in refinement type o⟨φ⟩ is a simple first-order constraint formula (typically belonging to a decidable theory) whereas the formula G in the subject is a complicated higher-order formula, possibly containing relational variables whose meanings are a function of the whole system. The relative advantages of circuit design description using higher-order combinator libraries or specification languages based on higher-order programming, such as that of Bjesse, Claessen, Sheeran, and Singh [1998], are well documented, and systems of higher-order of constrained Horn clauses would be a natural setting in which to verify the properties of such designs
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.