36 research outputs found
LeoPARD --- A Generic Platform for the Implementation of Higher-Order Reasoners
LeoPARD supports the implementation of knowledge representation and reasoning
tools for higher-order logic(s). It combines a sophisticated data structure
layer (polymorphically typed {\lambda}-calculus with nameless spine notation,
explicit substitutions, and perfect term sharing) with an ambitious multi-agent
blackboard architecture (supporting prover parallelism at the term, clause, and
search level). Further features of LeoPARD include a parser for all TPTP
dialects, a command line interpreter, and generic means for the integration of
external reasoners.Comment: 6 pages, to appear in the proceedings of CICM'2015 conferenc
A Case Study on Logical Relations using Contextual Types
Proofs by logical relations play a key role to establish rich properties such
as normalization or contextual equivalence. They are also challenging to
mechanize. In this paper, we describe the completeness proof of algorithmic
equality for simply typed lambda-terms by Crary where we reason about logically
equivalent terms in the proof environment Beluga. There are three key aspects
we rely upon: 1) we encode lambda-terms together with their operational
semantics and algorithmic equality using higher-order abstract syntax 2) we
directly encode the corresponding logical equivalence of well-typed
lambda-terms using recursive types and higher-order functions 3) we exploit
Beluga's support for contexts and the equational theory of simultaneous
substitutions. This leads to a direct and compact mechanization, demonstrating
Beluga's strength at formalizing logical relations proofs.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
An Open Challenge Problem Repository for Systems Supporting Binders
A variety of logical frameworks support the use of higher-order abstract
syntax in representing formal systems; however, each system has its own set of
benchmarks. Even worse, general proof assistants that provide special libraries
for dealing with binders offer a very limited evaluation of such libraries, and
the examples given often do not exercise and stress-test key aspects that arise
in the presence of binders. In this paper we design an open repository ORBI
(Open challenge problem Repository for systems supporting reasoning with
BInders). We believe the field of reasoning about languages with binders has
matured, and a common set of benchmarks provides an important basis for
evaluation and qualitative comparison of different systems and libraries that
support binders, and it will help to advance the field.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
An Improved Implementation and Abstract Interface for Hybrid
Hybrid is a formal theory implemented in Isabelle/HOL that provides an
interface for representing and reasoning about object languages using
higher-order abstract syntax (HOAS). This interface is built around an HOAS
variable-binding operator that is constructed definitionally from a de Bruijn
index representation. In this paper we make a variety of improvements to
Hybrid, culminating in an abstract interface that on one hand makes Hybrid a
more mathematically satisfactory theory, and on the other hand has important
practical benefits. We start with a modification of Hybrid's type of terms that
better hides its implementation in terms of de Bruijn indices, by excluding at
the type level terms with dangling indices. We present an improved set of
definitions, and a series of new lemmas that provide a complete
characterization of Hybrid's primitives in terms of properties stated at the
HOAS level. Benefits of this new package include a new proof of adequacy and
improvements to reasoning about object logics. Such proofs are carried out at
the higher level with no involvement of the lower level de Bruijn syntax.Comment: In Proceedings LFMTP 2011, arXiv:1110.668
Relating Nominal and Higher-order Abstract Syntax Specifications
Nominal abstract syntax and higher-order abstract syntax provide a means for
describing binding structure which is higher-level than traditional techniques.
These approaches have spawned two different communities which have developed
along similar lines but with subtle differences that make them difficult to
relate. The nominal abstract syntax community has devices like names,
freshness, name-abstractions with variable capture, and the new-quantifier,
whereas the higher-order abstract syntax community has devices like
lambda-binders, lambda-conversion, raising, and the nabla-quantifier. This
paper aims to unify these communities and provide a concrete correspondence
between their different devices. In particular, we develop a
semantics-preserving translation from alpha-Prolog, a nominal abstract syntax
based logic programming language, to G-, a higher-order abstract syntax based
logic programming language. We also discuss higher-order judgments, a common
and powerful tool for specifications with higher-order abstract syntax, and we
show how these can be incorporated into G-. This establishes G- as a language
with the power of higher-order abstract syntax, the fine-grained variable
control of nominal specifications, and the desirable properties of higher-order
judgments.Comment: To appear in PPDP 201
Proof pearl: abella formalization of lambda-calculus cube property
International audienceIn 1994 Gerard Huet formalized in Coq the cube property of lambda-calculus residuals. His development is based on a clever idea, a beautiful inductive definition of residuals. However, in his formalization there is a lot of noise concerning the representation of terms with binders. We re-interpret his work in Abella, a recent proof assistant based on higher-order abstract syntax and provided with a nominal quantifier. By revisiting Huet's approach and exploiting the features of Abella, we get a strikingly compact and natural development, which makes Huet's idea really shine
Semi-Automation of Meta-Theoretic Proofs in Beluga
We present a sound and complete focusing calculus for the core of the logic
behind the proof assistant Beluga as well as an overview of its implementation
as a tactic in Beluga's interactive proof environment Harpoon. The focusing
calculus is designed to construct uniform proofs over contextual LF and its
meta-logic in Beluga: a dependently-typed first-order logic with recursive
definitions. The implemented tactic is intended to complete straightforward
sub-cases in proofs allowing users to focus only on the interesting aspects of
their proofs, leaving tedious simple cases to Beluga's theorem prover. We
demonstrate the effectiveness of our work by using the tactic to simplify
proving weak-head normalization for the simply-typed lambda-calculus.Comment: In Proceedings LFMTP 2023, arXiv:2311.0991
On the Expressivity of Minimal Generic Quantification
AbstractWe come back to the initial design of the ∇ quantifier by Miller and Tiu, which we call minimal generic quantification. In the absence of fixed points, it is equivalent to seemingly stronger designs. However, several expected theorems about (co)inductive specifications can not be derived in that setting. We present a refinement of minimal generic quantification that brings the expected expressivity while keeping the minimal semantic, which we claim is useful to get natural adequate specifications. We build on the idea that generic quantification is not a logical connective but one that is defined, like negation in classical logics. This allows us to use the standard (co)induction rule, but obtain much more expressivity than before. We show classes of theorems that can now be derived in the logic, and present a few practical examples