Higher-Order Constrained Horn Clauses and Refinement Types

05/17/2017
by   Toby Cathcart Burn, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/26/2022

Higher-Order MSL Horn Constraints

The monadic shallow linear (MSL) class is a decidable fragment of first-...
research
10/08/2018

Defunctionalization of Higher-Order Constrained Horn Clauses

Building on the successes of satisfiability modulo theories (SMT), Bjørn...
research
05/05/2021

Refinements of Futures Past: Higher-Order Specification with Implicit Refinement Types (Extended Version)

Refinement types decorate types with assertions that enable automatic ve...
research
03/03/2021

Functional Extensionality for Refinement Types

Refinement type checkers are a powerful way to reason about functional p...
research
06/24/2017

Local Refinement Typing

We introduce the Fusion algorithm for local refinement type inference, y...
research
02/18/2021

Refinement Type Directed Search for Meta-Interpretive-Learning of Higher-Order Logic Programs

The program synthesis problem within the Inductive Logic Programming (IL...
research
05/20/2019

Desfuncionalizar para Provar

This paper explores the idea of using defunctionalization as a proof tec...

Please sign up or login with your details

Forgot password? Click here to reset