Results 1  10
of
21
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...
Reasoning with higherorder abstract syntax in a logical framework
 ACM Transactions on Computational Logic
, 2002
"... Logical frameworks based on intuitionistic or linear logics with highertype quantification have been successfully used to give highlevel, modular, and formal specifications of many important judgments in the area of programming languages and inference systems. Given such specifications, it is natu ..."
Abstract

Cited by 90 (23 self)
 Add to MetaCart
Logical frameworks based on intuitionistic or linear logics with highertype quantification have been successfully used to give highlevel, modular, and formal specifications of many important judgments in the area of programming languages and inference systems. Given such specifications, it is natural to consider proving properties about the specified systems in the framework: for example, given the specification of evaluation for a functional programming language, prove that the language is deterministic or that evaluation preserves types. One challenge in developing a framework for such reasoning is that higherorder abstract syntax (HOAS), an elegant and declarative treatment of objectlevel abstraction and substitution, is difficult to treat in proofs involving induction. In this paper, we present a metalogic that can be used to reason about judgments coded using HOAS; this metalogic is an extension of a simple intuitionistic logic that admits higherorder quantification over simply typed λterms (key ingredients for HOAS) as well as induction and a notion of definition. The latter concept of definition is a prooftheoretic device that allows certain theories to be treated as “closed ” or as defining fixed points. We explore the difficulties of formal metatheoretic analysis of HOAS encodings by considering encodings of intuitionistic and linear logics, and formally derive the admissibility of cut for important subsets
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.
Natural Semantics and Some of its MetaTheory in Elf
 PROCEEDINGS OF THE SECOND INTERNATIONAL WORKSHOP ON EXTENSIONS OF LOGIC PROGRAMMING
, 1991
"... Operational semantics provide a simple, highlevel and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as firstorder tree structures and reasoned about using natural deductionlike meth ..."
Abstract

Cited by 44 (14 self)
 Add to MetaCart
Operational semantics provide a simple, highlevel and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as firstorder tree structures and reasoned about using natural deductionlike methods. Hannan and Miller combined these methods with higherorder representations using Prolog. In this paper we go one step further and investigate the use of the logic programming language Elf to represent natural semantics. Because Elf is based on the LF Logical Framework with dependent types, it is possible to write programs that reason about their own partial correctness. We illustrate these techniques by giving type checking rules and operational semantics for MiniML, a small functional language based on a simply typed calculus with polymorphism, constants, products, conditionals, and recursive function definitions. We also partially internalize proofs for some metatheoretic properti...
Higherorder abstract syntax in Coq
, 1995
"... The terms of the simplytyped λcalculus can be used to express the higherorder abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embed ..."
Abstract

Cited by 41 (1 self)
 Add to MetaCart
The terms of the simplytyped λcalculus can be used to express the higherorder abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embedded implication, a tool which is widely used for expressing hypothetical judgments in natural deduction. In this paper, we show how a restricted form of secondorder syntax and embedded implication can be used together with induction in the Coq Proof Development system. We specify typing rules and evaluation for a simple functional language containing only function abstraction and application, and we fully formalize a proof of type soundness in the system. One difficulty we encountered is that expressing the higherorder syntax of an objectlanguage as an inductive type in Coq generates a class of terms that contains more than just those that directly represent objects in the language. We ove...
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.
A Compiler for Natural Semantics
 6TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, CC'96, LINKÖPING
, 1996
"... Natural semantics is a formalism used for specifying both semantics and implementations of programming languages. Until recently, no practical implementation of the formalism existed. We have defined the Relational MetaLanguage, RML, as an executable specification language for natural semantics. Af ..."
Abstract

Cited by 31 (2 self)
 Add to MetaCart
Natural semantics is a formalism used for specifying both semantics and implementations of programming languages. Until recently, no practical implementation of the formalism existed. We have defined the Relational MetaLanguage, RML, as an executable specification language for natural semantics. After a brief outline of the language, we describe the compilation strategy used by our rml2c compiler: transformations are applied to minimize nondeterminism, and a continuationpassing style form is produced and simplified. Finally the CPS is emitted as lowlevel C code, using an efficient technique for implementing tailcalls. We also present performance measurements that support our choice of compilation strategy.
A Proof Procedure for the Logic of Hereditary Harrop Formulas
 JOURNAL OF AUTOMATED REASONING
, 1993
"... A proof procedure is presented for a class of formulas in intuitionistic logic. These formulas are the socalled goal formulas in the theory of hereditary Harrop formulas. Proof search inintuitionistic logic is complicated by the nonexistence of a Herbrandlike theorem for this logic: formulas cann ..."
Abstract

Cited by 30 (12 self)
 Add to MetaCart
A proof procedure is presented for a class of formulas in intuitionistic logic. These formulas are the socalled goal formulas in the theory of hereditary Harrop formulas. Proof search inintuitionistic logic is complicated by the nonexistence of a Herbrandlike theorem for this logic: formulas cannot in general be preprocessed into a form such as the clausal form and the construction of a proof is often sensitive to the order in which the connectives and quantifiers are analyzed. An interesting aspect of the formulas we consider here is that this analysis can be carried out in a relatively controlled manner in their context. In particular, the task of finding a proof can be reduced to one of demonstrating that a formula follows from a set of assumptions with the next step in this process being determined by the structure of the conclusion formula. An acceptable implementation of this observation must utilize unification. However, since our formulas may contain universal and existential quantifiers in mixed order, care must be exercised to ensure the correctness of unification. One way of realizing this requirement involves labelling constants and variables and then using these labels to constrain unification. This form of unification is presented and used in a proof procedure for goal formulas in a firstorder version of hereditary Harrop formulas. Modifications to this procedure for the relevant formulas in a higherorder logic are also described. The proof procedure that we present has a practical value in that it provides the basis for an implementation of the logic programming language lambdaProlog.
Deriving algorithms from type inference systems: Application to strictness analysis
, 1994
"... The role of nonstandard type inference in static program analysis has been much studied recently. Early work emphasised the efficiency of type inference algorithms and paid little attention to the correctness of the inference system. Recently more powerful inference systems have been investigated b ..."
Abstract

Cited by 26 (8 self)
 Add to MetaCart
The role of nonstandard type inference in static program analysis has been much studied recently. Early work emphasised the efficiency of type inference algorithms and paid little attention to the correctness of the inference system. Recently more powerful inference systems have been investigated but the connection with efficient inference algorithms has been obscured. The contribution of this paper is twofold: first we show how to transform a program logic into an algorithm and, second, we introduce the notion of lazy types and show how to derive an efficient algorithm for strictness analysis. 1 Introduction Two major formal frameworks have been proposed for static analysis of functional languages: abstract interpretation and type inference. A lot of work has been done to characterise formally the correctness and the power of abstract interpretation. However the development of algorithms has not kept pace with the theoretical developments. This is now a major barrier that is preven...