Results 1 -
6 of
6
Elf: A Meta-Language for Deductive Systems (System Description)
- In 12th International Conference on Automated Deduction
, 1994
"... ce describing the Elf language is [10]. Gentler introductions can be found in [12] and [6]. Elf has also been used in a graduate course on the theory of programming languages. A draft of the course notes may be available from the author upon request. Below we provide a brief overview of how specific ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
ce describing the Elf language is [10]. Gentler introductions can be found in [12] and [6]. Elf has also been used in a graduate course on the theory of programming languages. A draft of the course notes may be available from the author upon request. Below we provide a brief overview of how specification, implementation, and meta-theory tasks are supported in the Elf language. The subsequent sections list some case studies and describe the implementation of Elf. Object Language Specification. LF generalizes first-order terms by allowing objects from a dependently typed -calculus to represent object language expressions. This allows variables in the object language to be represented by variables in the metalanguage, using the technique of higher-order abstract syntax. Common operations ? Internet address: fp@cs.cmu.edu (e.g., renaming of bound variables or substitution) and side-conditions on infer
Comparing cubes of typed and type assignment systems
- Annals of Pure and Applied Logic
, 1997
"... We study the cube of type assignment systems, as introduced in [13], and confront it with Barendregt’s typed λ-cube [4]. The first is obtained from the latter through applying a natural type erasing function E to derivation rules, that erases type information from terms. In particular, we address th ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We study the cube of type assignment systems, as introduced in [13], and confront it with Barendregt’s typed λ-cube [4]. The first is obtained from the latter through applying a natural type erasing function E to derivation rules, that erases type information from terms. In particular, we address the question whether a judgement, derivable in a type assignment system, is always an erasure of a derivable judgement in a corresponding typed system; we show that this property holds only for the systems without polymorphism. The type assignment systems we consider satisfy the properties ‘subject reduction’ and ‘strong normalization’. Moreover, we define a new type assignment cube that is isomorphic to the typed one.
Object-Level Substitution, Unification And Generalization In Meta-Logic
, 1995
"... Meta-programming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and Knuth-Bendix completion. At the core of this difficulty is that logic programming, in particular higher-order logic programming, is often too dependent on its inherent unification ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Meta-programming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and Knuth-Bendix completion. At the core of this difficulty is that logic programming, in particular higher-order logic programming, is often too dependent on its inherent unification and resolution algorithms in providing declarative formulations of object-level theories. To free meta-programming in logic from this dependency, we provide logic programming formulations of substitution and unification on object-level expressions. This will provide a set of basic tools for meta-programming in a higher-order logic programming language, which supports the use of higher-order abstract syntax. In particular, the techniques presented here can be used in a very simple meta-language, the L restriction of Prolog.
Under consideration for publication in Math. Struct. in Comp. Science Programming proofs: a novel approach based on contextual types
, 2011
"... We present an overview of Beluga, a dependently-typed programming and proof development environment. Beluga uses a two-level approach: it supports specifying formal systems within the logical framework LF and on top of LF, it provides a dependently-typed functional language that supports manipulatin ..."
Abstract
- Add to MetaCart
We present an overview of Beluga, a dependently-typed programming and proof development environment. Beluga uses a two-level approach: it supports specifying formal systems within the logical framework LF and on top of LF, it provides a dependently-typed functional language that supports manipulating and analyzing LF objects via pattern matching. A distinct feature of Beluga is the explicit support for contexts and contextual objects, which concisely characterize objects depending on assumptions. The design of the dependently-typed functional language is generic and independent of the concrete specification language which in Beluga’s case is LF. Moreover, it is unique in its treatment of pattern matching in the presence of dependent types: it is centered around refinement substitutions which refine the types of patterns in case-expressions. This makes type checking decidable although constraint solving itself could be undecidable. In addition to a bi-directional decidable type system for Beluga we give an environment-based operational semantics and show that types are preserved. Beluga together with type reconstruction is implemented in OCaml and has been used on a wide variety of examples such as type uniqueness, proofs about compiler transformations, and preservation and progress for various ML-like languages. 1.

