Results 1  10
of
11
A Coverage Checking Algorithm for LF
, 2003
"... Coverage checking is the problem of deciding whether any closed term of a given type is an instance of at least one of a given set of patterns. It can be used to verify if a function defined by pattern matching covers all possible cases. This problem has a straightforward solution for the first ..."
Abstract

Cited by 40 (12 self)
 Add to MetaCart
Coverage checking is the problem of deciding whether any closed term of a given type is an instance of at least one of a given set of patterns. It can be used to verify if a function defined by pattern matching covers all possible cases. This problem has a straightforward solution for the firstorder, simplytyped case, but is in general undecidable in the presence of dependent types. In this paper we present a terminating algorithm for verifying coverage of higherorder, dependently typed patterns.
The ∇calculus. Functional programming with higherorder encodings
 In Proceedings of the 7th International Conference on Typed Lambda Calculi and Applications
, 2005
"... Abstract. Higherorder encodings use functions provided by one language to represent variable binders of another. They lead to concise and elegant representations, which historically have been difficult to analyze and manipulate. In this paper we present the ∇calculus, a calculus for defining gener ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
Abstract. Higherorder encodings use functions provided by one language to represent variable binders of another. They lead to concise and elegant representations, which historically have been difficult to analyze and manipulate. In this paper we present the ∇calculus, a calculus for defining general recursive functions over higherorder encodings. To avoid problems commonly associated with using the same function space for representations and computations, we separate one from the other. The simplytyped λcalculus plays the role of the representationlevel. The computationlevel contains not only the usual computational primitives but also an embedding of the representationlevel. It distinguishes itself from similar systems by allowing recursion under representationlevel λbinders while permitting a natural style of programming which we believe scales to other logical frameworks. Sample programs include bracket abstraction, parallel reduction, and an evaluator for a simple language with firstclass continuations. 1
A Definitional Approach to Primitive Recursion over Higher Order Abstract Syntax
 In Proceedings of the 2003 workshop on Mechanized
, 2003
"... Syntax S. J. Ambler (S.Ambler@mcs.le.ac.uk) R. L. Crole (R.Crole@mcs.le.ac.uk) & A. Momigliano (A.Momigliano@mcs.le.ac.uk) Department of Mathematics and Computer Science, University of Leicester, Leicester, LE1 7RH, U.K. ..."
Abstract

Cited by 22 (5 self)
 Add to MetaCart
Syntax S. J. Ambler (S.Ambler@mcs.le.ac.uk) R. L. Crole (R.Crole@mcs.le.ac.uk) & A. Momigliano (A.Momigliano@mcs.le.ac.uk) Department of Mathematics and Computer Science, University of Leicester, Leicester, LE1 7RH, U.K.
Delphin: Functional Programming with Deductive Systems
, 2002
"... We present the design and implementation of the strict and pure functional programming language Delphin. Its novel and distinctive features include a twolevel design that distinguishes cleanly between the tasks of representing data and programming with data. One level is the logical framework LF [5 ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
We present the design and implementation of the strict and pure functional programming language Delphin. Its novel and distinctive features include a twolevel design that distinguishes cleanly between the tasks of representing data and programming with data. One level is the logical framework LF [5], serving as Delphin's data representation language. The other level is # [15], a type theory designed to support programming using pattern matching and recursion. The main contribution of this work is therefore Delphin, in which one can program with higherorder, dependentlytyped data structures such as proofs and typing derivations in a natural and intuitive way.
A TypeTheoretic Approach to Induction with HigherOrder Encodings
, 2001
"... Reasoning by induction is common practice in computer science and mathematics. In formal logic, however, standard induction principles exist only for a certain class of inductively defined structures that satisfy the positivity condition. This is a major restriction considering that many structures ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
Reasoning by induction is common practice in computer science and mathematics. In formal logic, however, standard induction principles exist only for a certain class of inductively defined structures that satisfy the positivity condition. This is a major restriction considering that many structures in programming languages and logics are best expressed using higherorder representation techniques that violate exactly this condition. In this paper we develop induction principles for higherorder encodings in the setting of firstorder intuitionistic logic. They differ from standard induction principles in that they rely on the concept of worlds [Sch01] which admits reasoning about open terms in regularly formed contexts. The soundness of these induction principles follows from external termination and coverage considerations about a realizability interpretation of proofs.
A Meta Linear Logical Framework
 In 4th International Workshop on Logical Frameworks and MetaLanguages (LFM’04
, 2003
"... Over the years, logical framework research has produced various type theories designed primarily for the representation of deductive systems. Reasoning about these representations requires expressive special purpose meta logics, that are in general not part of the logical framework. ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Over the years, logical framework research has produced various type theories designed primarily for the representation of deductive systems. Reasoning about these representations requires expressive special purpose meta logics, that are in general not part of the logical framework.
Verifying Uniqueness in a Logical Framework
, 2004
"... We present an algorithm for verifying that some specified arguments of an inductively defined relation in a dependently typed # calculus are uniquely determined by some other arguments. We prove it correct and also show how to exploit this uniqueness information in coverage checking, which allo ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We present an algorithm for verifying that some specified arguments of an inductively defined relation in a dependently typed # calculus are uniquely determined by some other arguments. We prove it correct and also show how to exploit this uniqueness information in coverage checking, which allows us to verify that a definition of a function or relation covers all possible cases. In combination, the two algorithms significantly extend the power of the metareasoning facilities of the Twelf implementation of LF.
A Framework for Typed HOAS and Semantics
, 2003
"... We investigate a framework for representing and reasoning about syntactic and semantic aspects of typed languages with variable binders. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We investigate a framework for representing and reasoning about syntactic and semantic aspects of typed languages with variable binders.
Towards practical functional programming with logical frameworks
, 2003
"... In this paper we show that the logical framework LF [6] extended by Σtypes serves as an excellent candidate for the representation of special syntax and hypothetical judgments. It has an elegant metatheory and Σtypes prove enormously useful in the design of a functional programming language Delph ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
In this paper we show that the logical framework LF [6] extended by Σtypes serves as an excellent candidate for the representation of special syntax and hypothetical judgments. It has an elegant metatheory and Σtypes prove enormously useful in the design of a functional programming language Delphin that permits programmers to work directly with those encodings. Applications of this work include predominantly deductive software development, special purpose theorem provers especially for proof carrying safety architectures such as proof carrying authentication PCA [2], foundational proof carrying code PCC [8, 1], and interpreters and compilers for experimental programming languages. This paper presents the underlying logical framework LF Σ and the functional programming language Delphin. 1
A temporallogic approach to programming with dependent types and higherorder encodings
, 2005
"... In this work, we propose a temporal logic with a pasttime operator, show its soundness, and establish a CurryHoward correspondence to a λcalculus. Furthermore, we illustrate how it serves as a logical foundation for programming with dependently typed data, supports programming with higherorder a ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this work, we propose a temporal logic with a pasttime operator, show its soundness, and establish a CurryHoward correspondence to a λcalculus. Furthermore, we illustrate how it serves as a logical foundation for programming with dependently typed data, supports programming with higherorder abstract syntax and hypothetical judgments. Sample programs that we discuss in this paper include bracket abstraction.