Results 11  20
of
37
T.: Compositional Data Types
 In: Proceedings of the Seventh ACM SIGPLAN Workshop on Generic Programming
, 2011
"... In previous work we have illustrated the benefits that compositional data types (CDTs) offer for implementing languages and in general for dealing with abstract syntax trees (ASTs). Based on Swierstra’s data types à la carte, CDTs are implemented as a Haskell library that enables the definition of r ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
In previous work we have illustrated the benefits that compositional data types (CDTs) offer for implementing languages and in general for dealing with abstract syntax trees (ASTs). Based on Swierstra’s data types à la carte, CDTs are implemented as a Haskell library that enables the definition of recursive data types and functions on them in a modular and extendable fashion. Although CDTs provide a powerful tool for analysing and manipulating ASTs, they lack a convenient representation of variable binders. In this paper we remedy this deficiency by combining the framework of CDTs with Chlipala’s parametric higherorder abstract syntax (PHOAS). We show how a generalisation from functors to difunctors enables us to capture PHOAS while still maintaining the features of the original implementation of CDTs, in particular its modularity. Unlike previous approaches, we avoid socalled exotic terms without resorting to abstract types: this is crucial when we want to perform transformations on CDTs that inspect the recursively computed CDTs, e.g. constant folding. 1
Proof pearl: de bruijn terms really do work
 In TPHOLs, volume 4732 of LNCS
, 2007
"... Abstract. Placing our result in a web of related mechanised results, we give a direct proof that the de Bruijn λcalculus (à laHuet,Nipkowand Shankar) is isomorphic to an αquotiented λcalculus. In order to establish the link, we introduce an “indexcarrying ” abstraction mechanism over de Bruijn t ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Abstract. Placing our result in a web of related mechanised results, we give a direct proof that the de Bruijn λcalculus (à laHuet,Nipkowand Shankar) is isomorphic to an αquotiented λcalculus. In order to establish the link, we introduce an “indexcarrying ” abstraction mechanism over de Bruijn terms, and consider it alongside a simplified substitution mechanism. Relating the new notions to those of the αquotiented and the proper de Bruijn formalisms draws on techniques from the theory of nominal sets. 1
Nominal System T
, 2010
"... This paper introduces a new recursion principle for inductive data modulo ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
This paper introduces a new recursion principle for inductive data modulo
Structural Recursion with Locally Scoped Names
"... This paper introduces a new recursion principle for inductively defined data modulo αequivalence of bound names that makes use of Oderskystyle local names when recursing over bound names. It is formulated in simply typed λcalculus extended with names that can be restricted to a lexical scope, tes ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
This paper introduces a new recursion principle for inductively defined data modulo αequivalence of bound names that makes use of Oderskystyle local names when recursing over bound names. It is formulated in simply typed λcalculus extended with names that can be restricted to a lexical scope, tested for equality, explicitly swapped and abstracted. The new recursion principle is motivated by the nominal sets notion of “αstructural recursion”, whose use of names and associated freshness sideconditions in recursive definitions formalizes common practice with binders. The new calculus has a simple interpretation in nominal sets equipped with name restriction operations. It is shown to adequately represent αstructural recursion while avoiding the need to verify freshness sideconditions in definitions and computations. The paper is a revised and expanded version of (Pitts, 2010). 1
Revisiting cutelimination: One difficult proof is really a proof
 RTA 2008
, 2008
"... Powerful proof techniques, such as logical relation arguments, have been developed for establishing the strong normalisation property of termrewriting systems. The first author used such a logical relation argument to establish strong normalising for a cutelimination procedure in classical logic. ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Powerful proof techniques, such as logical relation arguments, have been developed for establishing the strong normalisation property of termrewriting systems. The first author used such a logical relation argument to establish strong normalising for a cutelimination procedure in classical logic. He presented a rather complicated, but informal, proof establishing this property. The difficulties in this proof arise from a quite subtle substitution operation. We have formalised this proof in the theorem prover Isabelle/HOL using the Nominal Datatype Package, closely following the first authors PhD. In the process, we identified and resolved a gap in one central lemma and a number of smaller problems in others. We also needed to make one informal definition rigorous. We thus show that the original proof is indeed a proof and that present automated proving technology is adequate for formalising such difficult proofs.
Nominal Abstraction
, 2009
"... Recursive relational specifications are commonly used to describe the computational structure of formal systems. Recent research in proof theory has identified two features that facilitate direct, logicbased reasoning about such descriptions: the interpretation of atomic judgments through recursive ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Recursive relational specifications are commonly used to describe the computational structure of formal systems. Recent research in proof theory has identified two features that facilitate direct, logicbased reasoning about such descriptions: the interpretation of atomic judgments through recursive definitions and an encoding of binding constructs via generic judgments. However, logics encompassing these two features do not currently allow for the definition of relations that embody dynamic aspects related to binding, a capability needed in many reasoning tasks. We propose a new relation between terms called nominal abstraction as a means for overcoming this deficiency. We incorporate nominal abstraction into a rich logic also including definitions, generic quantification, induction, and coinduction that we then prove to be consistent. We present examples to show that this logic can provide elegant treatments of binding contexts that appear in many proofs, such as those establishing properties of typing calculi and of arbitrarily cascading substitutions that play a role in reducibility arguments.
Formalising the πcalculus using Nominal Logic
"... Abstract. We formalise the picalculus using the nominal datatype package, a package based on ideas from the nominal logic by Pitts et al., and demonstrate an implementation in Isabelle/HOL. The purpose is to derive powerful induction rules for the semantics in order to conduct machine checkable pro ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Abstract. We formalise the picalculus using the nominal datatype package, a package based on ideas from the nominal logic by Pitts et al., and demonstrate an implementation in Isabelle/HOL. The purpose is to derive powerful induction rules for the semantics in order to conduct machine checkable proofs, closely following the intuitive arguments found in manual proofs. In this way we have covered many of the standard theorems of bisimulation equivalence and congruence, both late and early, and both strong and weak in a unison manner. We thus provide one of the most extensive formalisations of a process calculus ever done inside a theorem prover. A significant gain in our formulation is that agents are identified up to alphaequivalence, thereby greatly reducing the arguments about bound names. This is a normal strategy for manual proofs about the picalculus, but that kind of hand waving has previously been difficult to incorporate smoothly in an interactive theorem prover. We show how the nominal logic formalism and its support in Isabelle accomplishes this and thus significantly reduces the tedium of conducting completely formal proofs. This improves on previous work using weak higher order abstract syntax since we do not need extra assumptions to filter out exotic terms and can keep all arguments within a familiar firstorder logic.
External and internal syntax of the λcalculus
 In: Buchberger, Ida, Kutsia (Eds.), Proc. of the AustrianJapanese Workshop on Symbolic Computation in Software Science, SCSS 2008. No. 08–08 in RISCLinz Report Series
"... There is growing interest in the study of the syntactic structure of expressions equipped with a variable binding mechanism. The importance of this study can be justified for various reasons, e.g. educational, scientific and engineering reasons. This study is educationally important since in logic a ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
There is growing interest in the study of the syntactic structure of expressions equipped with a variable binding mechanism. The importance of this study can be justified for various reasons, e.g. educational, scientific and engineering reasons. This study is educationally important since in logic and computer science, we cannot avoid teaching the
The Representational Adequacy of HYBRID
"... The Hybrid system (Ambler et al., 2002b), implemented within Isabelle/HOL, allows object logics to be represented using higher order abstract syntax (HOAS), and reasoned about using tactical theorem proving in general and principles of (co)induction in particular. The form of HOAS provided by Hybrid ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The Hybrid system (Ambler et al., 2002b), implemented within Isabelle/HOL, allows object logics to be represented using higher order abstract syntax (HOAS), and reasoned about using tactical theorem proving in general and principles of (co)induction in particular. The form of HOAS provided by Hybrid is essentially a lambda calculus with constants. Of fundamental interest is the form of the lambda abstractions provided by Hybrid. The user has the convenience of writing lambda abstractions using names for the binding variables. However each abstraction is actually a definition of a de Bruijn expression, and Hybrid can unwind the user’s abstractions (written with names) to machine friendly de Bruijn expressions (without names). In this sense the formal system contains a hybrid of named and nameless bound variable notation. In this paper, we present a formal theory in a logical framework which can be viewed as a model of core Hybrid, and state and prove that the model is representationally adequate for HOAS. In particular, it is the canonical translation function from λexpressions to Hybrid that witnesses adequacy. We also prove two results that characterise how Hybrid represents certain classes of λexpressions. The Hybrid system contains a number of different syntactic classes of expression, and associated abstraction mechanisms. Hence this paper also aims to provide a selfcontained theoretical introduction to both the syntax and key ideas of the system; background in automated theorem proving is not essential, although this paper will be of considerable interest to those who wish to work with Hybrid in Isabelle/HOL.