Results 21  30
of
87
Rewriting Logic as a Metalogical Framework
 Lecture Notes in Computer Science
, 2000
"... A metalogical framework is a logic with an associated methodology that is used to represent other logics and to reason about their metalogical properties. We propose that logical frameworks can be good metalogical frameworks when their logics support reective reasoning and their theories always ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
A metalogical framework is a logic with an associated methodology that is used to represent other logics and to reason about their metalogical properties. We propose that logical frameworks can be good metalogical frameworks when their logics support reective reasoning and their theories always have initial models. We present a concrete realization of this idea in rewriting logic. Theories in rewriting logic always have initial models and this logic supports reective reasoning. This implies that inductive reasoning is valid when proving properties about the initial models of theories in rewriting logic, and that we can use reection to reason at the metalevel about these properties. In fact, we can uniformly reect induction principles for proving metatheorems about rewriting logic theories and their parameterized extensions. We show that this reective methodology provides an eective framework for dierent, nontrivial, kinds of formal metatheoretic reasoning; one can...
A mixed modal/linear lambda calculus with applications to BellantoniCook safe recursion
, 1998
"... . This paper introduces a simplytyped lambda calculus with both modal and linear function types. Through the use of subtyping extra term formers associated with modality and linearity are avoided. We study the basic metatheory of this system including existence and inference of principal types. The ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
. This paper introduces a simplytyped lambda calculus with both modal and linear function types. Through the use of subtyping extra term formers associated with modality and linearity are avoided. We study the basic metatheory of this system including existence and inference of principal types. The system serves as a platform for certain higherorder generalisations of BellantoniCook's function algebra capturing polynomial time using a separation of the variables into "safe" and "normal" ones. The distinction between and the syntactic restrictions involved with the safe and normal variables in the BellantoniCook framework are captured by the modal function space and the associated typing rules. The linear function spaces on the other hand are used to enable a certain form of primitive recursion with functional result type which is conservative over polynomial time. The proofs associated with these applications are based on an interpretation of the lambda calculus in a categorytheor...
DSL Implementation Using Staging and Monads
 In Second Conference on DomainSpecific Languages (DSL'99
, 1999
"... The impact of Domain Specific Languages (DSLs) on software design is considerable. They allow programs to be more concise than equivalent programs written in a highlevel programming languages. They relieve programmers from making decisions about datastructure and algorithm design, and thus allows ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
The impact of Domain Specific Languages (DSLs) on software design is considerable. They allow programs to be more concise than equivalent programs written in a highlevel programming languages. They relieve programmers from making decisions about datastructure and algorithm design, and thus allows solutions to be constructed quickly. Because DSL's are at a higher level of abstraction they are easier to maintain and reason about than equivalent programs written in a highlevel language, and perhaps most importantly they can be written by domain experts rather than programmers. The problem is that DSL implementation is costly and prone to errors, and that high level approaches to DSL implementation often produce inefficient systems. By using two new programming language mechanisms, program staging and monadic abstraction, we can lower the cost of DSL implementations by allowing reuse at many levels. These mechanisms provide the expressive power that allows the construction of many compil...
Recursion over Objects of Functional Type
, 1999
"... This paper presents an extension of the simpletyped lambdacalculus allowing iteration and case... ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
This paper presents an extension of the simpletyped lambdacalculus allowing iteration and case...
A Definitional TwoLevel Approach to Reasoning with HigherOrder Abstract Syntax
 Journal of Automated Reasoning
, 2010
"... Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. The idea is to have a de Bruijn representation of syntax, while offering tools for reasoning about them at the higher level. In this paper we describe how to use it in a multilevel reasoning fashion, similar in spirit to other metalogics such as Linc and Twelf. By explicitly referencing provability in a middle layer called a specification logic, we solve the problem of reasoning by (co)induction in the presence of nonstratifiable hypothetical judgments, which allow very elegant and succinct specifications of object logic inference rules. We first demonstrate the method on a simple example, formally proving type soundness (subject reduction) for a fragment of a pure functional language, using a minimal intuitionistic logic as the specification logic. We then prove an analogous result for a continuationmachine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that serves as the specification layer. This example demonstrates the ease with which we can incorporate new specification logics, and also illustrates a significantly
Recursive function definition for types with binders
 In Proc. TPHOLS 2004
, 2004
"... Abstract. This work describes the proof and uses of a theorem allowing definition of recursive functions over the type of λcalculus terms, where terms with bound variables are identified up to αequivalence. The theorem embodies what is effectively a principle of primitive recursion, and the analog ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
Abstract. This work describes the proof and uses of a theorem allowing definition of recursive functions over the type of λcalculus terms, where terms with bound variables are identified up to αequivalence. The theorem embodies what is effectively a principle of primitive recursion, and the analogues of this theorem for other types with binders are clear. The theorem’s sideconditions require that the putative definition be wellbehaved with respect to fresh name generation and name permutation. A number of examples over the type of λcalculus terms illustrate the use of the new principle. 1
A Computational Approach to Reflective MetaReasoning about Languages with Bindings
 In MERLIN ’05: Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized
, 2005
"... We present a foundation for a computational metatheory of languages with bindings implemented in a computeraided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, openended languages, classes of languages, etc. The theory is based on th ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
We present a foundation for a computational metatheory of languages with bindings implemented in a computeraided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, openended languages, classes of languages, etc. The theory is based on the ideas of higherorder abstract syntax, with an appropriate induction principle parameterized over the language (i.e. a set of operators) being used. In our approach, both the bound and free variables are treated uniformly and this uniform treatment extends naturally to variablelength bindings. The implementation is reflective, namely there is a natural mapping between the metalanguage of the theoremprover and the object language of our theory. The object language substitution operation is mapped to the metalanguage substitution and does not need to be defined recursively. Our approach does not require designing a custom type theory; in this paper we describe the implementation of this foundational theory within a generalpurpose type theory. This work is fully implemented in the MetaPRL theorem prover, using the preexisting NuPRLlike MartinL ofstyle computational type theory. Based on this implementation, we lay out an outline for a framework for programming language experimentation and exploration as well as a general reflective reasoning framework. This paper also includes a short survey of the existing approaches to syntactic reflection. 1
Combining de Bruijn indices and higherorder abstract syntax in Coq
 Proceedings of TYPES 2006, volume 4502 of Lecture Notes in Computer Science
, 2006
"... Abstract. The use of higherorder abstract syntax is an important approach for the representation of binding constructs in encodings of languages and logics in a logical framework. Formal metareasoning about such object languages is a particular challenge. We present a mechanism for such reasoning, ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
Abstract. The use of higherorder abstract syntax is an important approach for the representation of binding constructs in encodings of languages and logics in a logical framework. Formal metareasoning about such object languages is a particular challenge. We present a mechanism for such reasoning, formalized in Coq, inspired by the Hybrid tool in Isabelle. At the base level, we define a de Bruijn representation of terms with basic operations and a reasoning framework. At a higher level, we can represent languages and reason about them using higherorder syntax. We take advantage of Coq’s constructive logic by formulating many definitions as Coq programs. We illustrate the method on two examples: the untyped lambda calculus and quantified propositional logic. For each language, we can define recursion and induction principles that work directly on the higherorder syntax. 1
An Application of CategoryTheoretic Semantics to the Characterisation of Complexity Classes Using HigherOrder Function Algebras
, 1997
"... We use the category of presheaves over PTIMEfunctions in order to show that Cook and Urquhart's higherorder function algebra PV ! defines exactly the PTIMEfunctions. As a byproduct we obtain a syntaxfree generalisation of PTIMEcomputability to higher types. By restricting to sheaves for a sui ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
We use the category of presheaves over PTIMEfunctions in order to show that Cook and Urquhart's higherorder function algebra PV ! defines exactly the PTIMEfunctions. As a byproduct we obtain a syntaxfree generalisation of PTIMEcomputability to higher types. By restricting to sheaves for a suitable topology we obtain a model for intuitionistic predicate logic with \Sigma b 1 induction over PV ! and use this to reestablish that the provably total functions in this system are in polynomial time computable. Finally, we apply the categorytheoretic approach to a new higherorder extension of BellantoniCook's system BC of safe recursion. 1 Introduction Cook and Urquhart's system PV ! [3] is a simplytyped lambda calculus providing constants to denote natural numbers and an operator for bounded recursion on notation like in Cobham's characterisation of polynomialtime computability. 1 Although functionals of arbitrary type can be defined in this system one can show that thei...