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

Read more

Summary

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]. 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

MONOTONE MODELS
Logic Programs
Canonical Embedding
REFINEMENT TYPE ASSIGNMENT
Syntax
Semantics
Soundness
Automation
Expressibility of Type Assertions
RELATED WORK
CONCLUSION AND FUTURE WORK
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call