Results 1  10
of
33
A Linear Logical Framework
, 1996
"... We present the linear type theory LLF as the forAppeared in the proceedings of the Eleventh Annual IEEE Symposium on Logic in Computer Science  LICS'96 (E. Clarke editor), pp. 264275, New Brunswick, NJ, July 2730 1996. mal basis for a conservative extension of the LF logical framework. LLF c ..."
Abstract

Cited by 217 (44 self)
 Add to MetaCart
We present the linear type theory LLF as the forAppeared in the proceedings of the Eleventh Annual IEEE Symposium on Logic in Computer Science  LICS'96 (E. Clarke editor), pp. 264275, New Brunswick, NJ, July 2730 1996. mal basis for a conservative extension of the LF logical framework. LLF combines the expressive power of dependent types with linear logic to permit the natural and concise representation of a whole new class of deductive systems, namely those dealing with state. As an example we encode a version of MiniML with references including its type system, its operational semantics, and a proof of type preservation. Another example is the encoding of a sequent calculus for classical linear logic and its cut elimination theorem. LLF can also be given an operational interpretation as a logic programming language under which the representations above can be used for type inference, evaluation and cutelimination. 1 Introduction A logical framework is a formal system desig...
Automating the Meta Theory of Deductive Systems
, 2000
"... not be interpreted as representing the o cial policies, either expressed or implied, of NSF or the U.S. Government. This thesis describes the design of a metalogical framework that supports the representation and veri cation of deductive systems, its implementation as an automated theorem prover, a ..."
Abstract

Cited by 81 (17 self)
 Add to MetaCart
not be interpreted as representing the o cial policies, either expressed or implied, of NSF or the U.S. Government. This thesis describes the design of a metalogical framework that supports the representation and veri cation of deductive systems, its implementation as an automated theorem prover, and experimental results related to the areas of programming languages, type theory, and logics. Design: The metalogical framework extends the logical framework LF [HHP93] by a metalogic M + 2. This design is novel and unique since it allows higherorder encodings of deductive systems and induction principles to coexist. On the one hand, higherorder representation techniques lead to concise and direct encodings of programming languages and logic calculi. Inductive de nitions on the other hand allow the formalization of properties about deductive systems, such as the proof that an operational semantics preserves types or the proof that a logic is is a proof calculus whose proof terms are recursive functions that may be consistent.M +
From operational semantics to abstract machines
 Mathematical Structures in Computer Science
, 1992
"... We consider the problem of mechanically constructing abstract machines from operational semantics, producing intermediatelevel specifications of evaluators guaranteed to be correct with respect to the operational semantics. We construct these machines by repeatedly applying correctnesspreserving t ..."
Abstract

Cited by 59 (6 self)
 Add to MetaCart
We consider the problem of mechanically constructing abstract machines from operational semantics, producing intermediatelevel specifications of evaluators guaranteed to be correct with respect to the operational semantics. We construct these machines by repeatedly applying correctnesspreserving transformations to operational semantics until the resulting specifications have the form of abstract machines. Though not automatable in general, this approach to constructing machine implementations can be mechanized, providing machineverified correctness proofs. As examples we present the transformation of specifications for both callbyname and callbyvalue evaluation of the untyped λcalculus into abstract machines that implement such evaluation strategies. We also present extensions to the callbyvalue machine for a language containing constructs for recursion, conditionals, concrete data types, and builtin functions. In all cases, the correctness of the derived abstract machines follows from the (generally transparent) correctness of the initial operational semantic specification and the correctness of the transformations applied. 1.
Refinement Types for Logical Frameworks
 Informal Proceedings of the Workshop on Types for Proofs and Programs
, 1993
"... We propose a refinement of the type theory underlying the LF logical framework by a form of subtypes and intersection types. This refinement preserves desirable features of LF, such as decidability of typechecking, and at the same time considerably simplifies the representations of many deductive s ..."
Abstract

Cited by 43 (9 self)
 Add to MetaCart
We propose a refinement of the type theory underlying the LF logical framework by a form of subtypes and intersection types. This refinement preserves desirable features of LF, such as decidability of typechecking, and at the same time considerably simplifies the representations of many deductive systems. A subtheory can be applied directly to hereditary Harrop formulas which form the basis of Prolog and Isabelle. 1 Introduction Over the past two years we have carried out extensive experiments in the application of the LF Logical Framework [HHP93] to represent and implement deductive systems and their metatheory. Such systems arise naturally in the study of logic and the theory of programming languages. For example, we have formalized the operational semantics and type system of MiniML and implemented a proof of type preservation [MP91] and the correctness of a compiler to a variant of the Categorical Abstract Machine [HP92]. LF is based on a predicative type theory with dependent t...
A Proof of the ChurchRosser Theorem and its Representation in a Logical Framework
, 1992
"... We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsast ..."
Abstract

Cited by 36 (8 self)
 Add to MetaCart
We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsastypes principle and takes advantage of term reconstruction as it is provided in the Elf implementation of LF. Proofs of metatheorems are represented as higherlevel judgments which relate sequences of reductions and conversions.
Implementing the MetaTheory of Deductive Systems
 Proceedings of the 11th International Conference on Automated Deduction
, 1992
"... . We exhibit a methodology for formulating and verifying metatheorems about deductive systems in the Elf language, an implementation of the LF Logical Framework with an operational semantics in the spirit of logic programming. It is based on the mechanical verification of properties of transformatio ..."
Abstract

Cited by 32 (9 self)
 Add to MetaCart
. We exhibit a methodology for formulating and verifying metatheorems about deductive systems in the Elf language, an implementation of the LF Logical Framework with an operational semantics in the spirit of logic programming. It is based on the mechanical verification of properties of transformations between deductions, which relies on type reconstruction and schemachecking. The latter is justified by induction principles for closed LF objects, which can be constructed over a given signature. We illustrate our technique through several examples, the most extensive of which is an interpretation of classical logic in minimal logic through a continuationpassingstyle transformation on proofs. 1 Introduction Formal deductive systems have become an important tool in computer science. They are used to specify logics, type systems, operational semantics and other aspects of languages. The role of such specifications is threefold. Firstly, inference rules serve as a highlevel notation w...
Mode and Termination Checking for HigherOrder Logic Programs
 In Hanne Riis Nielson, editor, Proceedings of the European Symposium on Programming
, 1996
"... . We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Jus ..."
Abstract

Cited by 32 (10 self)
 Add to MetaCart
. We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Just like other paradigms logic programming benefits tremendously from types. Perhaps most importantly, types allow the early detection of errors when a program is checked against a type specification. With some notable exceptions most type systems proposed for logic programming languages to date (see [18]) are concerned with the declarative semantics of programs, for example, in terms of manysorted, ordersorted, or higherorder logic. Operational properties of logic programs which are vital for their correctness can thus neither be expressed nor checked and errors will remain undetected. In this paper we consider how the declaration and checking of mode (such as input and output) and termina...
An Empirical Study of the Runtime Behavior of HigherOrder Logic Programs
 University of Pennsylvania. Available as
, 1992
"... this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract

Cited by 28 (7 self)
 Add to MetaCart
this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government.
Type Systems for Closure Conversions
 In The Workshop on Types for Program Analysis
, 1995
"... . We consider the problem of analyzing and proving correct simple closure conversion strategies for a higherorder functional language. We specify the conversions as deductive systems, making use of annotated types to provide constraints which guide the construction of the closures. We exploit the a ..."
Abstract

Cited by 25 (0 self)
 Add to MetaCart
. We consider the problem of analyzing and proving correct simple closure conversion strategies for a higherorder functional language. We specify the conversions as deductive systems, making use of annotated types to provide constraints which guide the construction of the closures. We exploit the ability of deductive systems to specify concisely complex relationships between source terms and closureconverted terms. The resulting specifications and proofs are relatively clear and straightforward. The use of deductive systems is central to our work as we can subsequently encode these systems in the LF type theory and then code them in the Elf programming language. The correctness proofs can also be coded in this language, providing machinechecked versions of these proofs. 1 Introduction Closure conversion is the process of transforming functions containing free variables into a closures, a representation of a function that consists of a piece of code for the function and a record con...
Higherorder abstract syntax with induction in Coq
, 1994
"... Three important properties of HigherOrder Abstract Syntax are the (higherorder) induction principle, which allows proofs by induction, the (higherorder) injection principle, which asserts that equal terms have equal heads and equal sons, and the extensionality principle, which asserts that functi ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
Three important properties of HigherOrder Abstract Syntax are the (higherorder) induction principle, which allows proofs by induction, the (higherorder) injection principle, which asserts that equal terms have equal heads and equal sons, and the extensionality principle, which asserts that functional terms which are pointwise equal are equal. Higherorder abstract syntax is implemented for instance in the Edinburgh Logical Framework and the above principles are satisfied by this implementation. But although they can be proved at the meta level, they cannot be proved at the object level and furthermore, it is not so easy to know how to formulate them in a simple way at the object level. We explain here how SecondOrder Abstract Syntax can be implemented in a more powerful type system (Coq) in such a way as to make available or provable (at the object level) the corresponding induction, injection and extensionality principles.